Commit graph

636 commits

Author SHA1 Message Date
qiaowei
1d97b2ecee stack check: Support Stack Smashing Protector(SSP)
and enable on sim as a demo. Here is the paper:
ftp://gcc.gnu.org/pub/gcc/summit/2003/Stackguard.pdf

Signed-off-by: qiaowei <qiaowei@xiaomi.com>
Change-Id: I1926936328dad54eee16b322dcaad0b42f9c4a62
2020-08-18 09:58:21 -07:00
Xiang Xiao
3d0cdc3d95 sim/loadable: Remove CONFIG_USERMAIN_STACKSIZE from defconfig
since it isn't used for elf binary

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-08-18 13:42:05 +01:00
Xiang Xiao
acca9fcc3b sched/wdog: Remove MAX_WDOGPARMS and related stuff
since the variable arguments are error prone and seldom used.

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-08-14 08:19:50 -06:00
Huang Qi
7252275e15 boards/sim: Add duktape config based on nsh
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2020-08-14 07:27:55 -05:00
Xiang Xiao
a0ce81d659 sched/wdog: Don't dynamically allocate wdog_s
to save the preserved space(1KB) and also avoid the heap overhead

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I694073f68e1bd63960cedeea1ddec441437be025
2020-08-11 12:28:55 -06:00
Xiang Xiao
154852acb5 sched/mqueue: Reduce the initial memory consumption
Change the preallocated message and descriptor from 32/24 to 4.
The total size is reduce from 1892 to 532

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I79d199465daef678986868f773876289859f42fc
2020-08-10 08:07:50 +02:00
David Sidrane
3683a72b0e sim:Add nshcromfs 2020-08-07 09:29:44 -05:00
Xiang Xiao
e1d3627bb1 sched/wdog: Change the default value of MAX_WDOGPARMS from 4 to 2
since the maximum number of argument pass to wd_start in the whole
code base is 2 and change CONFIG_MAX_WDOGPARMS in some defconfig
from 1 to 2 oherwise pthread_condclockwait will fail

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Ib6cb28b8c0722058849e7be916e164513431d21c
2020-08-06 10:36:22 -06:00
Ouss4
172aaa5e5c .gitignore: Don't ignore directories that have the .d extenion.
.d directories are common for holding config and init scripts.
They are being ignored with the global *.d pattern which is meant to
ignore Make dependency files.
2020-07-21 23:16:13 -07:00
Xiang Xiao
4910d43ab0 build: Move the toolchain library setting to the common place
so all boards support C++ automatically
2020-07-16 15:38:08 -03:00
Xiang Xiao
ee875b2a26 boards: Move HOSTCC/HOSTCFLAGS to tools/Config.mk
Make.defs under board folder can still overwrite the default as needed

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I1c300a8ace4b54d475ef8d398661ed65ca273a2e
2020-07-15 19:14:58 +01:00
Xiang Xiao
d32e9c38df boards: Move the C/C++ search path to the common place
so all boards support uClibc++/libc++ automatically

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Ibe6fafbec57f7acb26ea6188a3e9923ea82295c5
2020-07-13 15:11:12 -03:00
Xiang Xiao
6abd03d53f libxx: Unify uClibc++ and libc++ config
code just need check CONFIG_CXX_EXCEPTION/CONFIG_CXX_LIBSUPCXX now,
instead uClibc++/libc++ specific config

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I3b00a5a6701b8bf1c70de89f2d924592ca3e38b0
2020-07-13 15:08:13 -03:00
Xiang Xiao
dc55968678 arch/sim: Don't construct global C++ objects before main
otherwise the crash will happen because NuttX doesn't initialize yet

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Icc3f3fcd842a315bc68ae436d7a7a04aca1fc546
2020-07-11 15:06:09 -03:00
Xiang Xiao
0f235bc0b0 board/sim: Don't ignore any files under src/etc/ folder
see the discussion here:
https://github.com/apache/incubator-nuttx/issues/1363
2020-07-06 20:09:49 -07:00
YAMAMOTO Takashi
749e871e15 sim: Fix 32-bit module build
Specify -mcmodel=large only on 64-bit case. (x86-64)
The code model is not available for 32-bit.

This fixes the following error:

    MODULECC: chardev.c
    cc1: error: code model 'large' not supported in the 32 bit mode
    Makefile:79: recipe for target 'chardev.o' failed
2020-07-03 23:48:48 -05:00
YAMAMOTO Takashi
028d0c0d15 sim: Disable stack protector for CMODULEFLAGS
On Linux, we (ab)use the host compiler to compile binaries for NuttX.
Explicitly disable features which might be default on the host while
not available on NuttX.

On macOS, this is not necessary because we use a cross compiler,
which has safer defaults for our purpose, to build binaries to
run on NuttX. But this doesn't hurt either.
2020-07-01 01:06:15 -05:00
YAMAMOTO Takashi
b8b2ac4f2c sim: Sync Linux CMODULEFLAGS with macOS
Namely, always use -mcmodel=large.

NuttX modules are loaded into the NuttX heap, which can be out of
range for 32-bit relocations generated with -mcmodel=small.

A possible alternative would be to use MAP_32BIT to allocate sim heap.
But I prefer this approach because it's very convenient for me to
be able to share modules between Linux and macOS sim.
2020-07-01 01:06:15 -05:00
Xiang Xiao
40376697d7 boards/sim: Break out the thread loop instead calling pthread_exit
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I744d06d7a669067c68b74c69f3961f34673d81a0
2020-06-06 20:14:26 +01:00
Xiang Xiao
4fe35cc87c boards: Remove OUTPUT_FORMAT and OUTPUT_ARCH from ld script
let toolchain decide the correct value base on the command line

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I342db6a88e4a161a322a8fea48a59e6ca7617ae6
2020-06-02 07:11:54 -06:00
Xiang Xiao
b932b653dd arch: Select 64bit elf base on the architecture characteristic
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I09eec5a76f255016a910cfec3b3f70cd7577525e
2020-05-31 21:38:32 -07:00
Xiang Xiao
8b20b97d26 build: Remove the dummy drivers folder under boards
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-24 20:20:12 +01:00
Xiang Xiao
e83c1400b6 build: Move BOARD_DIR definition to common place
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-24 20:20:12 +01:00
Xiang Xiao
7e5b0f81e9 build: Replace -I with INCDIR
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-24 20:20:12 +01:00
Xiang Xiao
23668a4b9b build: Remove the empty variable assignment
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-24 08:24:13 -06:00
Xiang Xiao
dd61d3d9f9 build: Remve the unnecessary .gitignore
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-23 18:00:40 +01:00
Xiang Xiao
7faf3c0254 build: replace ${TOPDIR} with $(TOPDIR) in Makefile
make the usage consistence

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-19 19:23:18 +01:00
Xiang Xiao
567962bd62 build: Move the extension definition to common place
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-19 19:23:18 +01:00
Xiang Xiao
8b42ee421a build: Move MKDEP definition to common place
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-19 19:23:18 +01:00
Xiang Xiao
9ec9431706 build: Move DIRLINK/DIRUNLINK definition to common place
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-19 19:23:18 +01:00
Xiang Xiao
bd656888f2 build: Replace WINTOOL with CYGWIN_WINTOOL Kconfig
so the correct value can be determinated by Kconfig system automatically

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-18 15:02:55 -06:00
Nathan Hartman
8d985819b3 Fix typos
Comments only. No functional changes.
2020-05-14 10:49:44 -06:00
Xiang Xiao
92c721a532 boards: Fix the wrong order in some defconfig
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-11 12:24:58 -06:00
Gregory Nutt
153eee6de2 Make more OS internal names consistent
1. Internal scheduler functions should begin with nxsched_, not sched_
2. Follow the consistent naming patter of https://cwiki.apache.org/confluence/display/NUTTX/Naming+of+OS+Internal+Functions

    # clock_systimer -> clock_systime_tick
    # clock_systimespec -> clock_systime_timespec
    sched_oneshot_extclk -> nxsched_oneshot_extclk
    sched_period_extclk -> nxsched_period_extclk
    # nxsem_setprotocol -> nxsem_set_protocol
    # nxsem_getprotocol -> nxsem_get_protocol
    # nxsem_getvalue -> nxsem_get_value
    nxsem_initholders -> nxsem_initialize_holders
    nxsem_addholder -> nxsem_add_holder
    nxsem_addholder_tcb -> nxsem_add_holder_tcb
    nxsem_boostpriority -> nxsem_boost_priority
    nxsem_releaseholder -> nxsem_release_holder
    nxsem_restorebaseprio -> nxsem_restore_baseprio

Some planned name changed were skipped for now because they effect too many files (and would require many hours of coding style fixups).
2020-05-10 22:47:07 +08:00
Gregory Nutt
4b44b628ea Run nxstyle against all .c and .h files modified by this PR.
All complaints fixed except for those that were not possible to fix:

- Used of Mixed case identifier in ESP32 files.  These are references to Expressif ROM functions which are outside of the scope of NuttX.
2020-05-09 14:19:08 -03:00
Gregory Nutt
a4218e2144 include/nuttx/sched.h: Make naming of all internal names consistent:
1. Add internal scheduler functions should begin with nxsched_, not sched_
2. Follow the consistent naming patter of https://cwiki.apache.org/confluence/display/NUTTX/Naming+of+OS+Internal+Functions
2020-05-09 14:19:08 -03:00
Xiang Xiao
7fa20cf40e board/sim: Change CONFIG_SYSTEM_USRSOCK_RPMSG to CONFIG_NETUTILS_USRSOCK_RPMSG
follow up the apps side change

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-06 08:59:07 -06:00
YAMAMOTO Takashi
19cc84ed4a sim: Suppress no symbol warnings for macOS 2020-05-05 21:40:16 +08:00
YAMAMOTO Takashi
1195228109 Revert "sim: Suppress "has no symbols" warnings for macOS"
This reverts commit c1beda50f8.

IMO, it's too ugly hack just to surpress warnings.
2020-05-05 21:40:16 +08:00
Xiang Xiao
c1beda50f8 sim: Suppress "has no symbols" warnings for macOS
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-01 10:48:17 -06:00
Xiang Xiao
2ec8f60e53 Run refresh.sh --silent all
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-04-18 07:17:38 -06:00
YAMAMOTO Takashi
0e9b0d7603 sim: Don't generate romfs image if CONFIG_NSH_CUSTOMROMFS=y 2020-04-18 19:32:08 +08:00
YAMAMOTO Takashi
15d328c3ab sim: Fix config check for romfs image generation 2020-04-18 19:32:08 +08:00
chao.an
43989ee36f sim/nsh2: fix nxserver stack overflow
increase nxserver stack size to 4K

Signed-off-by: chao.an <anchao@xiaomi.com>
2020-04-17 09:24:49 -06:00
chao.an
3776bf6850 sim/configs: update the defconfig
Signed-off-by: chao.an <anchao@xiaomi.com>
2020-04-17 09:24:49 -06:00
chao.an
3dd094520c sim/nsh2: remove the specific Make.defs
Change-Id: If9204619c343993cecbf92c1b8d64a48480110e8
Signed-off-by: chao.an <anchao@xiaomi.com>
2020-04-17 09:24:49 -06:00
chao.an
c758cb8341 sim/romfs: add etctmp into ignore list
Signed-off-by: chao.an <anchao@xiaomi.com>
Change-Id: I8d6828882a7a52cb7ec61af8f288c1910167cd0b
2020-04-17 09:24:49 -06:00
YAMAMOTO Takashi
366c446003 sim: Provide MODULESTRIP for macOS 2020-04-16 16:04:11 -06:00
YAMAMOTO Takashi
c61d959655 sim: macOS's strip doesn't have --strip-unneeded option 2020-04-16 16:04:11 -06:00
chao.an
0668a1552d sim/nsh: dynamic rcS/rcRAW generation support
1. RCSRCS: Remove the fixed array definition and preprocessing
   dynamic configuration makes the RC script more flexible.

2. RCRAWS: Add preinstalled file support.

Change-Id: Id7c1640962b12101fb85013bc2cfbd60ee08cd2f
Signed-off-by: chao.an <anchao@xiaomi.com>
2020-04-16 13:20:56 -06:00