Commit graph

636 commits

Author SHA1 Message Date
Jiuzhu Dong
3c0354aba6 net/socket: delete config CONFIG_NSOCKET_DESCRIPTORS
N/A

Change-Id: I7d10ec460c351e4fbcdc19b3a8284dcb77073722
Signed-off-by: Jiuzhu Dong <dongjiuzhu1@xiaomi.com>
2021-03-03 19:01:41 -08:00
Xiang Xiao
9473434587 Ensure the kernel component don't call userspace API
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-03-01 09:23:09 +09:00
Xiang Xiao
39f96361a3 arch/sim: Rename bthcitty driver to btuart driver
align with other soc naming style

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-01-25 08:23:23 -08:00
Xiang Xiao
503780497a board/sim: Support NuttX BLE stack through uart shim driver
and add new btuart config to test it

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-01-24 19:04:37 -08:00
Xiang Xiao
aa37399c89 arch/sim: Extend hcitty_register to accept device name
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-01-18 11:20:06 -03:00
chao.an
328b7c06bc sim/hcitty: add hcitty adapter
add support to attach the devices via HCI TTY to Bluetooth Host

Reference:

drivers/wireless/bluetooth/bt_uart_shim.c

Signed-off-by: chao.an <anchao@xiaomi.com>
2021-01-16 21:32:10 -08:00
YAMAMOTO Takashi
4e6adefc2b sim: Use c++14 for LIBCXX
The compiler default varies among the environment.
Especially, the default std version for xcode clang doesn't work
for libcxx.

This commit just ensures to use the consistent std version
among compilers.  we can come up with a more sophisticated way
to control the version later if desiable.

clang/macOS (from xcode):

    spacetanuki% c++ -dM -E -x c++ /dev/null | grep __cplusplus
    #define __cplusplus 199711L
    spacetanuki% c++ --version
    Apple clang version 11.0.0 (clang-1100.0.33.17)
    Target: x86_64-apple-darwin18.7.0
    Thread model: posix
    InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
    spacetanuki%

clang/macOS (from homebrew):

    spacetanuki% /usr/local/Cellar/llvm/11.0.0/bin/clang++ -dM -E -x c++ /dev/null | grep __cplusplus
    #define __cplusplus 201402L
    spacetanuki% /usr/local/Cellar/llvm/11.0.0/bin/clang++ --version
    clang version 11.0.0
    Target: x86_64-apple-darwin18.7.0
    Thread model: posix
    InstalledDir: /usr/local/Cellar/llvm/11.0.0/bin
    spacetanuki%

gcc/ubuntu:

    root@477d94753e9b:/# c++ -dM -E -x c++ /dev/null | grep __cplusplus
    #define __cplusplus 201402L
    root@477d94753e9b:/# c++ --version
    c++ (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
    Copyright (C) 2019 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

    root@477d94753e9b:/#
2021-01-14 04:26:12 -06:00
YAMAMOTO Takashi
3fc06ff2d1 sim: Specify -fshort-wchar as NuttX wchar_t is 16-bit
* For C, wchar_t is provided by the OS. On NuttX, it's uint16_t.
  (Except wide character literals, which uses the compiler
   built-in knowledge of wchar_t.)

* For C++, wchar_t is a built-in type. It's provided by the compiler.

* The compilers built-in wchar depends on the compiler configuration.
  For the sim, the compilers are usually configured with wchar_t == int,
  which is 32-bit.

* wchar_t should be compatible between C and C++.

This commit fixes the mismatches by telling the compiler to use
16-bit wchar_t.

An alternative is to make NuttX use 32-bit wchar_t if the compiler
is configured with 32-bit wchar_t. It can increase the runtime
footprint. While it might be ok for the sim, it might be a problem
for real devices.
2021-01-14 04:26:12 -06:00
YAMAMOTO Takashi
374d05a05a Revert "board/sim: Remove the too strict warning"
This reverts commit e70bff723b.

* These warnings sometimes find real bugs. There are ways to disable
  the specific warnings for the specific code (eg. libcxx) selectively.

* It doesn't make much sense to disable these warnings only on sim.
  There are many boards with -Wall -Wshadow. Because the sim is
  mainly for development and testing, it should be less forgiving
  than real boards.
2020-12-24 21:57:39 -06:00
YAMAMOTO Takashi
d5a1c8cae8 boards/sim/sim/sim/src/etc/init.d/rcS: Make it conditional with FS_FAT
ifdef out the guts of the script because it doesn't make sense
without FAT enabled.
2020-12-21 20:12:05 -08:00
YAMAMOTO Takashi
ecd66eb90c sim: libcxx: Use __GLIBCXX__ ABI for non macOS 2020-12-20 23:16:11 -06:00
YAMAMOTO Takashi
f0e0e6ab4d sim: Make.defs: tweak CXXFLAGS for LIBCXX 2020-12-20 23:16:11 -06:00
Matias N
91c8d2bac6 sim: add "nimble" config, to test nimBLE on top of bthcisock 2020-12-19 08:00:38 -06:00
Masayuki Ishikawa
f3a81cb1b7 sim: Fix interrupt handling for SMP
Summary
- This commit fixes interrupt handling for SMP
- The following are the changes
- Introduce up_copyfullstate.c
- Add enter_critical_section() to up_exit()
- Add a critical section to up_schedule_sigaction()
- Introduce pseudo timer thread to send periodic events
- UART and interval timer are now handled in the pause handler
- Apply the same SMP related code as other CPU architectures
- However, signal handling and context switching are not changed
- Also enable debug features and some tools in smp/defconfig

Imact
- SMP only

Testing
- Tested with sim:smp on ubuntu18.04 x86_64
- Tested with hello, taskset, smp, ostest

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2020-12-10 08:33:42 +01:00
Matias N
f3712d2b8c sim: add support for simulated button device via mouse click 2020-11-30 03:35:37 -06:00
dongjiuzhu
630d5a5851 configs/rc: enable irtest tool
Signed-off-by: dongjiuzhu <dongjiuzhu1@xiaomi.com>
2020-11-28 02:54:22 -06:00
Brennan Ashton
8d02bce8e5 Disable smp selftest for bt_null driver
Signed-off-by: Brennan Ashton <bashton@brennanashton.com>
2020-11-15 22:26:25 +01:00
Xiang Xiao
e70bff723b board/sim: Remove the too strict warning
The variable shadow is a frequently-used feature
(especially in c++), so let's disable this warning

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-11-15 08:28:36 -03:00
YAMAMOTO Takashi
3ccbcf3c28 sim: Add a config to test libcxx 2020-11-15 08:28:36 -03:00
Xiang Xiao
b827565396 [libc++] Move the toolchain's macros undefinition to Make.defs
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-11-15 08:28:36 -03:00
Xiang Xiao
e5ab2e56f8 sim: Remove cxxtest specifial Make.defs
since the special c++ setup doesn't need anymore

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-11-12 14:37:59 +08:00
dongjiuzhu
2482052228 driver/sensor: user specifies device register number
N/A

Change-Id: Idd11461f933dd21b7271cd3ca87a2e33127a9d34
Signed-off-by: dongjiuzhu <dongjiuzhu1@xiaomi.com>
2020-11-11 18:25:22 -08:00
dongjiuzhu
0d92e50c42 sim/sensor: add sensor defconfig
Change-Id: Ib9b6866951b46f34aa9faaa1c9a6edb0b217b719
Signed-off-by: dongjiuzhu <dongjiuzhu1@xiaomi.com>
2020-11-11 18:25:22 -08:00
chao.an
c6fe82bfa1 boards/sim: enable run-time type identification
BTW, correct some cxx compilation options

Change-Id: Id3e3eab2020ef1991d2760426d81b40e6e5eff4e
Signed-off-by: chao.an <anchao@xiaomi.com>
2020-11-09 18:52:28 -08:00
chao.an
80e372ad14 boards/sim: correct the ARCHDEFINES definition
ARCHDEFINESXX -> ARCHDEFINES

Signed-off-by: chao.an <anchao@xiaomi.com>
2020-11-09 18:51:21 -08:00
Juha Niskanen
5849d88288 boards/sim/sim/sim/src/sim_touchscreen.c: add missing nx_disconnect
Signed-off-by: Juha Niskanen <juha.niskanen@haltian.com>
2020-11-08 15:25:10 -03:00
Brennan Ashton
ab176cf1d3 sim: Enable required CONFIG_SIM_FRAMEBUFFER 2020-11-07 22:59:42 -08:00
Brennan Ashton
05dc66ed29 Fix issue #2098 non functional sim:touchscreen
Signed-off-by: Brennan Ashton <bashton@brennanashton.com>
2020-11-07 22:59:42 -08:00
dongjiuzhu
9c19db6e14 rc/dummy: enable dummy driver and add rc defconfig
N/A

Change-Id: I760593ec578361deffea2db6d7c8a02d47c6f83b
Signed-off-by: dongjiuzhu <dongjiuzhu1@xiaomi.com>
2020-11-05 11:38:28 -03:00
Brennan Ashton
54832f37f2 sim: Initial Linux i2c bus support
This adds the inital wiring for i2c bus support in the sim target
and for Linux host adds the lower half that uses the i2c chardev.

Signed-off-by: Brennan Ashton <bashton@brennanashton.com>
2020-11-04 23:51:09 -08:00
ligd
73282fe2d8 arch/sim: add sim alsa support
Squashed commit of the following:

sim audio: call alsa to playback/capture data
sim/audio: correct the format capability
sim/audio: add pause/resume support
sim/audio: add auto stop when meet AUDIO_APB_FINAL
sim/audio: fix abort when set small buffer_size
sim/audio: move sim_audio.c to sim_alsa.c

Change-Id: I8e00ece79159e844ca17fd4c363480b985ee0490
Signed-off-by: ligd <liguiding1@xiaomi.com>
2020-11-04 05:48:14 -08:00
Matias N
fea3ee28f7 sim: support LCD emulation over X11; correctly decouple LCD/FB from X11/NX 2020-11-02 19:22:05 -08:00
chao.an
b88561299b make/expression: improving up asm/C/C++ compile times
In the current compilation environment, the recursive assignment(=) for compile
flags will be delayed until every file is actually need to be compile.

For example:
--------------------------------------------------------------------------------
arch/arm/src/Makefile:

INCLUDES += ${shell $(INCDIR) "$(CC)" $(ARCH_SRCDIR)$(DELIM)chip}
INCLUDES += ${shell $(INCDIR) "$(CC)" $(ARCH_SRCDIR)$(DELIM)common}
INCLUDES += ${shell $(INCDIR) "$(CC)" $(ARCH_SRCDIR)$(DELIM)$(ARCH_SUBDIR)}
INCLUDES += ${shell $(INCDIR) "$(CC)" $(TOPDIR)$(DELIM)sched}

CPPFLAGS += $(INCLUDES) $(EXTRAFLAGS)
CFLAGS += $(INCLUDES) $(EXTRAFLAGS)
CXXFLAGS += $(INCLUDES) $(EXTRAFLAGS)
AFLAGS += $(INCLUDES) $(EXTRAFLAGS)
--------------------------------------------------------------------------------

All compilation options will be included recursively,
which will be delayed until the compilation options are actually used:

tools/Config.mk:

--------------------------------------------------------------------------------
define COMPILE
  @echo "CC: $1"
  $(Q) $(CC) -c $(CFLAGS) $($(strip $1)_CFLAGS) $1 -o $2
endef
--------------------------------------------------------------------------------

All compile flags to be reexecuted $(INCDIR) as long as one file needs to be compiled,
but in fact, the compilation options have not changed in the current directory.

So the we recommand to change the syntax of assignment
From
    Recursive (=)
To
    Simple    (:=)

In this way, we can ensure that all compilation options are expanded only once and reducing repeated works.

Signed-off-by: chao.an <anchao@xiaomi.com>
2020-11-02 07:53:53 -08:00
Sebastian Ene
2073730d1a arch/sim: Update defconfig for NXWM and disable CONFIG_NSH_ARCHINIT
## Summary of changes

Disable CONFIG_NSH_ARCHINIT to prevent the boardctl() logic to call
multiple times the oneshot_register() function. The boardctl logic is
already called from nxwm_main.

Signed-off-by: Sebastian Ene <sene@apache.org>
2020-10-31 07:17:15 -07:00
Matias N
3f21d902bc sim: add LVGL configuration which uses the X11 framebuffer and mouse 2020-10-29 23:48:12 -07:00
Yoshinori Sugino
c13f869432 Modify SIGSTP to SIGTSTP
Follow the POSIX description.
SIGTSTP should be sent when the Ctrl-Z characters is encountered, not SIGSTP.

Testing:
Built with hifive1-revb:nsh (CONFIG_SERIAL_TERMIOS=y, CONFIG_SIG_DEFAULT=y and CONFIG_TTY_SIGTSTP=y)
2020-10-29 01:12:43 -07:00
zhongan
c9dd19f4c9 sim:rpproxy/rpserver: force use 'CONFIG_SIM_M32' for 64bit system.
Change-Id: I3f240bd7761b42bddfb8c899dad63a0df5a6ac7f
Signed-off-by: zhongan <zhongan@xiaomi.com>
2020-10-28 10:08:47 -07:00
liuhaitao
8342d2932f sim: update loadable/module/sotest configs readme
Signed-off-by: liuhaitao <liuhaitao@xiaomi.com>
2020-10-26 21:42:59 -07:00
Huang Qi
15d658403a sim/duktape: Increase stack size to fix broken
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2020-10-26 18:20:02 -03:00
Sebastian Ene
efbcb2cd31 arch/sim: Enable SIM_WALLTIME option by default
### Summary of Changes ###

Running the NuttX simulation 'as fast as possible' breaks the features
that depend on timing: eg. the Bluetooth stack. Enabling this option by
default SIM_WALLTIME=y will introduce delays and will tick the simulation at
a real pace.
Refresh defconfigs for sim targets and add depends on SIM_WALLTIME for
SIM_HCISOCKET.

Signed-off-by: Sebastian Ene <sene@apache.org>
2020-10-26 11:01:40 -07:00
Masayuki Ishikawa
72b182d3d3 boards: sim: Update smp/defconfig
Summary:
- Add CONFIG_DRIVER_NOTE=y
- Add CONFIG_NSH_READLINE=y
- Add CONFIG_READLINE_CMD_HISTORY=y
- Add CONFIG_SCHED_INSTRUMENTATION=y

Impact:
- Affects sim:smp only

Testing:
- Tested with uname/ps/free/hello/smp/ostest

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2020-10-26 03:06:46 -07:00
dongjiuzhu
8bd163325b sensor: add wtgahrs2 init and enable config
Change-Id: I0521098d6157c59d4e0d463e43a2d202797577b6
Signed-off-by: dongjiuzhu <dongjiuzhu1@xiaomi.com>
2020-10-22 10:17:36 -03:00
Sebastian Ene
c47ad0c909 arch/sim: Add host timer to oneshot timer logic
## Summary of Changes

Add a host timer that generates periodic signals and sends SIGALRM to
the process that runs the NuttX simulation. This logic is integrated as
part of the existing NuttX oneshot timer. The host timer installs an
irq handler which is expected to run every CONFIG_USEC_PER_TICK .

Signed-off-by: Sebastian Ene <nuttx@fitbit.com>
2020-09-25 17:36:16 -03:00
ligd
a9830254cf SIM in MacOS: make MacOS link process same with Linux
1. There is difference about symbol replace on nuttx-names.in
   between MacOS & Linux
2. For MacOS, if open '-fvisibility=hidden' and adjust nuttx-names.in,
   it will meet symbol link-back-to-nuttx error.
3. Make the MacOS replace behaviour, same with Linux

Note:
MacOS should install objcopy with command:
$ brew install binutils
$ export PATH=$PATH:/usr/local/opt/binutils/bin

already check in to cibuild.sh

Change-Id: If78b784cc0ecb98cdbf7091de38acef00a8a02f3
Signed-off-by: ligd <liguiding1@xiaomi.com>
2020-09-18 18:58:32 +09:00
Xiang Xiao
b0797263ca libc/stdio: Allocate file_struct dynamically
1.Reduce the default size of task_group_s(~512B each task)
2.Scale better between simple and complex application

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Ia872137504fddcf64d89c48d6f0593d76d582710
2020-09-11 17:58:17 +08:00
ligd
21cff9fc4f sim/Make.defs: add -fvisibility=hidden to CFLAGS
This can hidden all nuttx's symbols,
and DO NOT export nuttx's symbols to share libraries.

e.g.
wrong:

NUTTX       PC       NUTTX
ffmpeg -> asound -> sysconf

right:

NUTTX       PC       PC
ffmpeg -> asound -> sysconf

Signed-off-by: ligd <liguiding1@xiaomi.com>
2020-09-09 17:04:39 +08:00
Xiang Xiao
165e55f92c board/sim: Add a new config for SMP
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-09-02 12:37:34 +09:00
liuhaitao
c10a6789c4 configs: add sim sotest/sotest32 example configs
Add sotest/sotest32 example configs since they are removed
from module/module32 defconfigs in former commit.

Change-Id: I22808d06ef9e4231979a4467672c86386d216b83
Signed-off-by: liuhaitao <liuhaitao@xiaomi.com>
2020-08-31 21:10:28 +08:00
liuhaitao
9fd09d6314 configs: remove sotest example configs from module defconfigs
Sotest and module examples could not co-exist since there is only
one romfs_img array exist meantime. Or one of them would fail to
run.

Change-Id: I73e3b6791678f4e801181552c56af50e6d0e47c3
Signed-off-by: liuhaitao <liuhaitao@xiaomi.com>
2020-08-31 21:10:28 +08:00
Brennan Ashton
8934f2ed79 SIM: Add support Linux HCI Socket as BLE adaptor
Signed-off-by: Brennan Ashton <bashton@brennanashton.com>
2020-08-28 01:01:29 -07:00