Updates the common source code for the SPI peripheral used by
Espressif's RISC-Vs SoCs. This enables newer SoCs to be supported
in the future while maintaining backwards compatibility.
Signed-off-by: Tiago Medicci Serrano <tiago.medicci@espressif.com>
Nuttx currently has 2 types of sleep interfaces:
1. Signal-scheduled sleep: nxsig_sleep() / nxsig_usleep() / nxsig_nanosleep()
Weaknesses:
a. Signal-dependent: The signal-scheduled sleep method is bound to the signal framework, while some driver sleep operations do not depend on signals.
b. Timespec conversion: Signal-scheduled sleep involves timespec conversion, which has a significant impact on performance.
2. Busy sleep: up_mdelay() / up_udelay()
Weaknesses:
a. Does not actively trigger scheduling, occupy the CPU loading.
3. New interfaces: Scheduled sleep: nxsched_sleep() / nxsched_usleep() / nxsched_msleep() / nxsched_ticksleep()
Strengths:
a. Does not depend on the signal framework.
b. Tick-based, without additional computational overhead.
Currently, the Nuttx driver framework extensively uses nxsig_* interfaces. However, the driver does not need to rely on signals or timespec conversion.
Therefore, a new set of APIs is added to reduce dependencies on other modules.
(This PR also aims to make signals optional, further reducing the code size of Nuttx.)
Signed-off-by: chao an <anchao.archer@bytedance.com>
TODO: Fix sama5 arch the same way stm32 to avoid compiling serial drivers
case no serial ports are used.
Signed-off-by: Alan C. Assis <acassis@gmail.com>
This config doesn't have any STM32_USART enabled, but because it
have CDC_ACM if we disable CONFIG_SERIAL we are getting others
dependence error. So the solution here was enable the serial port
CONFIG_STM32_USART3.
Signed-off-by: Alan C. Assis <acassis@gmail.com>
This can board profile doesn't use serial, but the syslog still
using up_putc() that doesn't exist now that stm32_serial.c is not
compiled.
Signed-off-by: Alan C. Assis <acassis@gmail.com>
After fixing stm32 to not compile stm32_serial.c when STM32_USART
is not enabled, we need fix the lwl_console driver to include the
up_putc().
Signed-off-by: Alan C. Assis <acassis@gmail.com>
Most references to the readmes have been removed.
The removed references didn't make much sense and were inconsistent with other
sections of the code. Some sections linked to the readme, others didn't.
More importantly, most boards don't have any readme references.
Let's not treat developers as fools who need to be reminded at every step
to check the readme (which doesn't exit anymore anyway).
Signed-off-by: raiden00pl <raiden00@railab.me>
When uninitializing cdcacm via a boardctl ioctl, use the instance number
instead of direct pointer to the driver. The reason for this is, that in
CONFIG_BUILD_KERNEL the applications sercon and serdis can't store the pointer;
they are separate processes which get killed.
The cdcacm driver will search up the driver from the file system when the direct
pointer is not given.
Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
clock_systime_timespec() always returns 0, so there is no need to
check the return value in the caller code, let us remove the return
value directly.
Signed-off-by: chao an <anchao.archer@bytedance.com>
fix implicit declaration of function 'board_spisd_initialize'
src/rp23xx_common_bringup.c: In function 'rp23xx_common_bringup':
Error: src/rp23xx_common_bringup.c:390:9: error: implicit declaration of function 'board_spisd_initialize'; did you mean 'board_spidev_initialize'? [-Werror=implicit-function-declaration]
390 | ret = board_spisd_initialize(0, CONFIG_RP23XX_SPISD_SPI_CH);
| ^~~~~~~~~~~~~~~~~~~~~~
Signed-off-by: simbit18 <simbit18@gmail.com>
fix error 'BOARD_HSTX_FREQ' undeclared
D:/nuttxpico/nuttx/arch/arm/src/rp23xx/rp23xx_clock.c
D:/nuttxpico/nuttx/arch/arm/src/rp23xx/rp23xx_clock.c: In function 'clocks_init':
D:/nuttxpico/nuttx/arch/arm/src/rp23xx/rp23xx_clock.c:297:26: error: 'BOARD_HSTX_FREQ' undeclared (first use in this function); did you mean 'BOARD_SYS_FREQ'?
297 | BOARD_HSTX_FREQ);
| ^~~~~~~~~~~~~~~
| BOARD_SYS_FREQ
Signed-off-by: simbit18 <simbit18@gmail.com>
- Created a file rp23xx_common_pico.h with function
prototype
int rp23xx_dev_gpio_init(void);
to allow cmake + ninja to build without errors.
- Updated file rp23xx_pico.h with
for all boards.
Signed-off-by: simbit18 <simbit18@gmail.com>
- Enable userled driver integration for the Freedom-K64F board.
- Verified functionality with the leds example app.
Signed-off-by: trns1997 <trns1997@gmail.com>
Refactor esp32s3_es8311_initialize function to accept I2C handle instead
of port number, moving I2C bus initialization responsibility to the board
bringup code. This change improves flexibility by allowing boards to
manage I2C initialization while the ES8311 driver focuses on audio
codec configuration.
* Updated function signature to accept struct i2c_master_s *i2c parameter
* Removed I2C bus initialization from ES8311 driver
* Updated function documentation to reflect new parameter
* Modified esp32s3-lcd-ev and esp32s3-korvo-2 boards to initialize I2C
before calling ES8311 initialization
* Added proper error handling for I2C initialization failures
* Moved variable declarations to function start for C89 compliance
* Fixed code style issues including line length and indentation
This change maintains backward compatibility for existing functionality
while providing better separation of concerns between I2C bus management
and audio codec configuration.
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
- Added CMake build for Raspberry Pi Pico W
- Renamed the linker files to be more consistent with other rp2040 boards.
- Fix: The relative path of the file does not match the actual file
- raspberrypi-pico-w-flash.ld
- raspberrypi-pico-w-sram.ld
Signed-off-by: simbit18 <simbit18@gmail.com>
increase stack size for ostest configuration.
The default value is too small for x86 arch.
Signed-off-by: p-szafonimateusz <p-szafonimateusz@xiaomi.com>
Added CMake build for Waveshare RP2040-LCD-1.28
Fix: The relative path of the file does not match the
actual file
- waveshare-rp2040-lcd-1-28-flash.ld
- waveshare-rp2040-lcd-1-28-sram.ld
Signed-off-by: simbit18 <simbit18@gmail.com>
Added autoled implementation for the Pi4B. Status LED is used as NuttX
start indicator, while power LED is used for panic/assert indication.
Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
A basic implementation of mailbox API with some helpers for accessing
properties implemented. Uses busy-wait due to documentation challenges
with mailbox API.
Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
Updates the common source code for the I2C peripheral used by
Espressif's RISC-Vs SoCs. This enables newer SoCs to be supported
in the future while maintaining backwards compatibility.
Signed-off-by: Tiago Medicci Serrano <tiago.medicci@espressif.com>
Introduce a new CI test to validate out-of-tree builds
and prevent regressions in the `make export` workflow.
Specifically, this change adds `test-oot-build.sh` that:
* Builds NuttX using a selected configuration.
* Runs `make export` to generate the export package.
* Copies the `nuttx-export` to the OOT build project.
* Verifies that compilation and linking succeed.
Signed-off-by: trns1997 <trns1997@gmail.com>
Added CMake build for pimoroni-tiny2040 board
Removed old file rp2040_tiny2040.h to use the existing rp2040_pico.h to align with other boards.
Signed-off-by: simbit18 <simbit18@gmail.com>
Added ioctls and functions for watchdogs 2 & 3. Modifed wdog1 functions. Needs testing.
Fixed issues with started variable.
Change to add only 3 ioctls, a config for each watchdog. Created cfg structures for watchdog1 and watchdog23. Added code to set difsel register. stop conversions before changing watchdog configs. Other logic changes.
Define AN_STM32H5_FIRST and AN_STM32H5_NCMDS in nuttx/analog/ioctl.h
Remove hardcoded AN_STM32H5_FIRST.
Style fixes.
Fix thershold for watchdog1
Got working watchdog driver with queue and signal. Needs polish.
Refined isr for watchdogs. Added value back to event. value is more accurate, but not guaranteed. It accomdates dma.
Used stm32_adc_sigcfg_s structure inside stm32_adc_sig_s structure. Used common naming for ioctls.
Added stopifstarted and startifstopped for setting watchdogs and other bits. Added adc_reset_dma, which must be run after stopping conversions in circular mode, because buffer and conversions become misaligned. Other refinements.
Added guard around adc_reset_dma, added comment blocks to new functions
NuttX style fixes.
Add return value to wdog configure functions.
Correct number of stm32h5 adc ioctls.
Minor style fix.
Reduce watchdog commit to fit NuttX standards. Remove Queue and Signal aspects. Added Kconfig to initialize watchdog.
Signed-off-by: kywwilson11 <kwilson@2g-eng.com>
Added guard around code referencing priv->circular. Added adc_watchdog config for testing watchdog1 with adc1. Added documentation about adc_watchdog config.
Adjusted documentation for adc_watchdog config. Added detailed test procedure.
Longer underline under adc_watchdog title.
Add code for differential adc calibration. Need to calibrate both single-ended and differential if a given adc has both single-ended and differential channels.
Fixed typo.
Initialize watchdog1 parameters at compile time when configured. Added comments to new elements in stm32_dev_s. Confirmed style is good.
Add proper guards around ADC WDG1 variables and functions.
Implemented feedback per raiden00. 1. Changed to use old chanlist type uint8_t. 2. Added smpr1, smpr2, and difsel variables to stm32_dev_s structure. 2. smpr1 and smpr2 are initialized to board defined values if BOARD_ADCx_SMPRx is defined, otherwise initialized to default. 3. difsel initialized to BOARD_ADCx_DIFSEL if defined, otherwise use default (0) for all single-ended.
- Created a file rp2040_common_pico.h with function
prototype
int rp2040_dev_gpio_init(void);
to allow cmake + ninja to build without errors.
- Updated file rp2040_pico.h with
for all boards.
Signed-off-by: simbit18 <simbit18@gmail.com>
- CMake added board Raspberry Pi Pico
- Added the entry:
CMake,raspberrypi-pico:bmp280
to the file arm-06.dat.
- Moved the search for the Python 3 interpreter to the
root CMakefile to avoid unnecessary repetition.
Signed-off-by: simbit18 <simbit18@gmail.com>
This commit fixes the function to select the GPIO behavior for the
pins associated to the board's button.
Signed-off-by: Tiago Medicci Serrano <tiago.medicci@espressif.com>
The `-Werror` flag should be set - if needed - to `EXTRAFLAGS` var
when compiling NuttX.
Signed-off-by: Tiago Medicci Serrano <tiago.medicci@espressif.com>
The Kconfig entry `ESPRESSIF_ESP32[C3|C6|H2]` can be removed as the
already existing `ARCH_CHIP_ESP32[C3_GENERIC|C6|H2`] fulfills its
purpose completely.
Signed-off-by: Tiago Medicci Serrano <tiago.medicci@espressif.com>
This commit introduces complete support for the WeAct STM32H750
development board, including board configuration, linker scripts, and
drivers for NSH, SD card, ST7735 LCD, SPI, USB, and other peripherals.
All necessary files and configurations are added to enable building and
running NuttX on this STM32H7-based board.
Signed-off-by: Sergey Rzhevsky <rzsa@yandex.ru>
Add STM32H7_STM32H7X0XX chip family.
Add new chip configurations for STM32H750 variants in Kconfig, update
hardware includes to support CONFIG_STM32H7_STM32H7X0XX, and modify
board configurations for stm32h750b-dk to use STM32H750XB.
This enables support for the new STM32H750 chip series with appropriate
memory and peripheral mappings.
Normalize the defconfig files for boards from stm32f7 chip family.
Signed-off-by: Sergey Rzhevsky <rzsa@yandex.ru>