task_spawn() and posix_spawn() are NuttX OS interfaces. In PROTECTED and KERNEL build modes, then can be reached from applications only via a system call. Currently, the number of parameters in a system call is limited to six; these spawn function have seven parameters. Rather than extend the maximum number of parameters across all architectures, I opted instead to marshal the seven parameters into a structure.
*
In order to support builtin in function in protected mode, a task_spawn() system call must be supported. Unfortunately this is overly complex because there is a (soft) limit of 6 parameters in a system call; task_spawn has seven paramters. This is a soft limit but still difficult to extend because it involves assembly language changes to numerous architectures. Better to get more creative.
Squashed commit of the following:
Correct some additional compile-related issues.
Move include/nuttx/binfmt/builtin.h to include/nuttx/lib/builtin.h. Move apps/builtin/lib_builtin_forindex.c to libs/libc/builtin/lib_builtin_forindex.c.
Move binfmt/libbuiltin to libs/libc/builtin. There are calls made directly from apps/nshlib into this logic and hence, must be part of a library that can be shared between the OS and applications.
boards: cxd56xx: add SCU sensors (2/2)
* boards: cxd56xx: add cxd56_bh1721fvc initialization
We are adding the sensor initialization for cxd56xx boards in the
common board folder.
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
* boards: cxd56xx: add cxd56_bh1745nuc initialization
We are adding the sensor initialization for cxd56xx boards in the
common board folder.
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
* boards: cxd56xx: add cxd56_bm1383glv initialization
We are adding the sensor initialization for cxd56xx boards in the
common board folder.
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
* boards: cxd56xx: add cxd56_bm1422gmv initialization
We are adding the sensor initialization for cxd56xx boards in the
common board folder.
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
* boards: cxd56xx: add cxd56_bmi160 initialization
We are adding the sensor initialization for cxd56xx boards in the
common board folder.
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
* boards: cxd56xx: add cxd56_bmp280 initialization
We are adding the sensor initialization for cxd56xx boards in the
common board folder.
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
* boards: cxd56xx: add cxd56_kx022 initialization
We are adding the sensor initialization for cxd56xx boards in the
common board folder.
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
* boards: cxd56xx: add cxd56_lt1pa01 initialization
We are adding the sensor initialization for cxd56xx boards in the
common board folder.
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
* boards: cxd56xx: add cxd56_rpr0521rs initialization
We are adding the sensor initialization for cxd56xx boards in the
common board folder.
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
* boards: cxd56xx: add cxd56_sensors initialization
We are adding the sensor initialization for cxd56xx boards in the
common board folder.
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
* arch: arm: cxd56: add Backup Log driver
The driver will be used to backup logs on crash.
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
* boards: arm: cxd56xx: common: add crashlog driver
Add Crashlog driver with support for reset on crash
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
* boards: arm: cxd56xx: move gs2200m initialization
Move the board gs2200m initalization to the common board folder
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
* boards: arm: cxd56xx: move ili9340 initialization
Move the board ili9340 initalization to the common board folder
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
* boards: arm: cxd56xx: move lpm013m091a initialization
Move the board lpm013m091a initalization to the common board folder
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
* boards: arm: cxd56xx: common: typo fixes
HEADER: Updates on file location
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
Approved-by: Gregory Nutt <gnutt@nuttx.org>
Add the sensor initialization for cxd56xx boards in the common board folder
* boards: cxd56xx: apds9930: typo fix
fix apds9930 typos
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
* boards: cxd56xx: add cxd56_ak09912 initialization
We are adding the sensor initialization for cxd56xx boards in the
common board folder.
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
* boards: cxd56xx: move cxd56_bmi160 initialization
We are adding the sensor initialization for cxd56xx boards in the
common board folder.
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
* boards: cxd56xx: add cxd56_apds9930 initialization
We are adding the sensor initialization for cxd56xx boards in the
common board folder.
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
* boards: cxd56xx: add cxd56_apds9960 initialization
We are adding the sensor initialization for cxd56xx boards in the
common board folder.
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
Approved-by: Gregory Nutt <gnutt@nuttx.org>
boards: cxd56xx: add SCU sensors
* drivers: platform: add Avago APDS9930 Proximity and Ambient light Sensor
This sensor is connected to the SCU on spresense board
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
* drivers: spresense: add Rohm BH1721FVC Ambient Light Sensor
This sensor is connected to the SCU on spresense board
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
* drivers: spresense: add Rohm BH1745NUC Color Sensor
This sensor is connected to the SCU on spresense board
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
* drivers: spresense: add Rohm BM1383GLV/BM1383AGLV Pressure Sensor
This sensor is connected to the SCU on spresense board
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
* drivers: spresense: add Rohm BM1422GMV/BM1422AGMV Magnetic Sensor
This sensor is connected to the SCU on spresense board
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
* drivers: spresense: add Bosch BMI160 Sensor support
This sensor is connected to the SCU on spresense board
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
* drivers: spresense: add Bosch BMP280 Barometic Pressure Sensor
This sensor is connected to the SCU on spresense board
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
* drivers: spresense: add Kionix KX022/KX122 Acceleration Sensor
This sensor is connected to the SCU on spresense board
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
* drivers: spresense: add Murata LT1PA01 Proximity and Ambient light Sensor
This sensor is connected to the SCU on spresense board
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
* drivers: spresense: add Rohm RPR0521RS Proximity and Ambient light Sensor
This sensor is connected to the SCU on spresense board
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
* drivers: sensors: bmi160: add optional I2C address
Add a menu option for the case when the SDO pin is pulled to VDDIO
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
Approved-by: Gregory Nutt <gnutt@nuttx.org>
boards: add stub drivers folder for later use
* boards: add stub drivers folder for later use
The board/drivers folder is added for future use.
In this folder we should place drives that are platform specific and
depend on HW that is present only on a specific platform.
NOTE: All shared drivers should go to the regular driver folder
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
* tools: shift BOARD_DIR one level up
In preparation for drivers and common folders we are moving the
BOARD_DIR path up one level.
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
* tools: add drivers/platform symlink
Link the boards/<arch>/<chip>/drivers dir to drivers/platform
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
* drivers: add platform specifc drivers extension
There are platforms that use specific drivers and we should be able to
include those drivers in the build
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
* board: cxd56xx: drivers: add AK09912 driver for SCU
This is a platform specific driver connected on the SCU unit.
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
Approved-by: Gregory Nutt <gnutt@nuttx.org>
Iobinstrumentation
* mm/iob: Introduces producer/consumer id to every iob call. This is so that the calls can be instrumented to monitor the IOB resources.
* iob instrumentation - Merges producer/consumer enumeration for simpler IOB user.
* fs/procfs: Starts adding support for /proc/iobinfo
* fs/procfs: Finishes first pass of simple IOB user stastics and /proc/iobinfo entry
Approved-by: Gregory Nutt <gnutt@nuttx.org>
serial single-wire: add possibility to specify pull-up instead of open drain
Approved-by: David Sidrane <david.sidrane@nscdg.com>
Approved-by: Gregory Nutt <gnutt@nuttx.org>
ieee802154: Support dynamic FCS length. Adds IEEE802154_ATTR_PHY_FCSLEN.
This change introduces IEEE802154_ATTR_PHY_FCSLEN which the radio layer can support to set/get the FCS length that's added to the end of the frame. One use case, in promiscuous mode, is to add back in the FCS of the received frame by increasing the iob->io_len by the FCS length.
Approved-by: Gregory Nutt <gnutt@nuttx.org>
wireless/ieee8021254: Adds support for energy detect.
Adds support for energy detect by introducing a new radio call/callback, as the PHY layer is required to perform the energy detect.
Approved-by: Gregory Nutt <gnutt@nuttx.org>
Master
* Revert "Merged in yanqil-br/feature-multi_chan_pwm (pull request #973)"
This reverts commit aef0e0b538.
* arch/arm/src/{stm32/stm32f7/stm32h7/stm32l4}/stm32_pwm.c: configure multi-channel duty only if channel specified. This allows you to update duty cycle for a single channel
* nucleo-f303re/configs: add basic NSH configuration
* nucleo-f303re/configs/pwm: enable console on UART2 and set entry point to nsh_main
Approved-by: Gregory Nutt <gnutt@nuttx.org>
Added stubbed implementations of getpwuid, getpwuid_r, getpwnam, and
getpwnam_r. These functions are essentially stubs pretending that NuttX
supported users and that the only configured user in the system was 'root'
with uid 0. The intend is not to provide meaningful new features, but to ease
porting of foreign source code to NuttX.
- Added an alphasort implementation
- Added a scandir implementation
- Added DT_* literals to include/dirent.h: Apparently those are not required by POSIX, but are part of 4.3BSD and available in glibc as well.
Libwebsockets initializes the 'sin_zero' member of sockaddr_in objects to zeros.
Apparently, judging from mailing list entries, there are platforms on which incliinclunot
doing this causes undefined behaviour.
On NuttX compiling respective code is broken, as the corresponding member
variable is called '__pad'. Neither in the 'nuttx' nor in the 'apps'
respository did I find any reference to this identifier. Thus, I believe its a
safe bet to just rename it.
UNIX Network Programming states in this regard:
"The POSIX specification requires only three members in the structure: sin_family,
sin_addr, and sin_port. It is acceptable for a POSIX-compliant implementation to
define additional structure members, and this is normal for an Internet socket
address structure. Almost all implementations add the sin_zero member so that all
socket address structures are at least 16 bytes in size."
Testing of the WiFi is minimal so far but functionality is proven. I'm specifically not happy that the driver doesn't recover elegantly from a DMA data checksum failure, but that is an issue that can be dealt with in due course ... I'm trying to get the rest of the interfaces fleshed out and the hardware proven so it can go for pre-production build. I _think_ there's only Bluetooth and USB-device left to implement now.