Commit graph

2669 commits

Author SHA1 Message Date
simbit18
e86c048d15 boards/arm/gd32f4: nxstyle fix Relative files path
- fix Relative file path does not match actual file.

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-10-29 22:04:25 +08:00
simbit18
dfc9f6c2a2 boards/arm: nxstyle fix Relative files path
- fix Relative file path does not match actual file.

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-10-28 13:38:04 -04:00
kywwilson11
35d1aaafda arch/arm/stm32h5: STM32H5 PWM Driver (STM32H7 port)
Adding the stm32h5 pwm driver. This is almost an exact copy of the stm32h7 pwm driver. I confirmed the timers for the h5 are version v2 and added the preprocessor definition. This commit was tested on a stm32h5 nucleo-h563zi development board. Necessary board files and a pwm config have been added. Added pin mappings for all timer outputs.

Signed-off-by: kywwilson11 <kwilson@2g-eng.com>

Added documentation regarding nucleo-h563zi:pwm config.

Removed CONFIG_STM32H5_PWM guard at the top. Fixed IRQs for tim1 and tim8. Added H5 to list of Timer IP v2 timers.

Conditionally compile stm32_serial.c.

Add stm32_pwm.c to CMakeLists.txt
2025-10-25 12:48:34 +08:00
simbit18
14a0780ff5 board/arm/stm32h5: Added CMake build for NUCLEO-H563ZI board
- CMake added board STM32 NUCLEO-H563ZI

https://www.st.com/en/evaluation-tools/nucleo-h563zi.html

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-10-24 12:17:07 -04:00
wangchengdong
590ea0567d board/sam3u-ek: Adjust memory.ld to fix build error
Enlarge kflash memory size for the sam3u-ek board
    to resolve the build error.

Signed-off-by: Chengdong Wang <wangchengdong@lixiang.com>
2025-10-18 20:07:59 +08:00
chao an
2909b1dadd sam3u-ek/knsh: disable LIBC_TEMPBUFFER to save code size
Fix build break:

| arm-none-eabi-ld: /home/archer/code/nuttx/nuttx section `.data' will not fit in region `kflash'
| arm-none-eabi-ld: region `kflash' overflowed by 96 bytes
| Memory region         Used Size  Region Size  %age Used
|           kflash:       65632 B        64 KB    100.15%
|           uflash:           0 B        64 KB      0.00%
|           xflash:           0 B       128 KB      0.00%
|           ksram1:        4716 B         6 KB     76.76%
|           usram1:           0 B         4 KB      0.00%
|           xsram1:           0 B        22 KB      0.00%
|            sram2:           0 B        16 KB      0.00%
| make[1]: *** [Makefile:217: nuttx] Error 1
| make: *** [tools/Unix.mk:542: nuttx] Error 2

Signed-off-by: chao an <anchao.archer@bytedance.com>
2025-10-17 14:05:02 +08:00
chao an
87f134cfaa sched/sleep: replace all Signal-based sleep implement to Scheduled sleep
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>
2025-10-17 14:05:02 +08:00
Alan Carvalho de Assis
2b2afeec4c sama5d3-xplained: Disable semihosting syslog
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>
2025-10-14 08:36:44 -04:00
Alan Carvalho de Assis
82e4a715e6 boards/stm32/clicker2-stm32: Fix compilation after stm32_serial
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>
2025-10-14 08:36:44 -04:00
Alan Carvalho de Assis
cf8b8355b8 boards/stm32/nucleo-f303re: Remove syslog for can example
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>
2025-10-14 08:36:44 -04:00
Alan Carvalho de Assis
676f4cb111 boards/arm/stm32: Fix board configs which use LWL_CONSOLE
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>
2025-10-14 08:36:44 -04:00
raiden00pl
f809985e5b boards: remove reference to non-existent readme
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>
2025-10-11 17:07:51 -04:00
chao an
4c7deedd27 sched/clock: remove return value of clock_systime_timespec()
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>
2025-10-10 23:15:27 +08:00
simbit18
3a878cacf6 boards/arm/rp23xx/pimoroni-pico-2-plus: Corrected all defconfig files
Correct these configuration entries

 CONFIG_ARCH_BOARD="raspberrypi-pico-2" -> "pimoroni-pico-2-plus"

 CONFIG_ARCH_BOARD_RASPBERRYPI_PICO_2 -> CONFIG_ARCH_BOARD_PIMORONI_PICO_2_PLUS

error present in this PR #14831

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-10-08 09:01:59 -04:00
simbit18
89e9fed39e boards/arm/rp23xx/pimoroni-pico-2-plus: added ‘rp23xx_spisd.h’ in board.h
Added missing #include ‘rp23xx_spisd.h’ in board.h
(forgotten in PR #17167)

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-10-08 07:13:42 +08:00
simbit18
ee8a23071d boards/arm/rp23xx/xiao-rp2350: fix linker scripts 100% RAM usage
Compiling with --print-memory-usage always shows 100% RAM
Upstream bug raspberrypi/pico-sdk#1871

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-10-08 07:13:07 +08:00
simbit18
c1042816f3 boards/arm/rp23xx/pimoroni-pico-2-plus: Added missing header file rp23xx_spisd.h
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>
2025-10-07 15:16:10 +02:00
simbit18
61032a0ee1 boards/arm/rp23xx/pimoroni-pico-2-plus: fix linker scripts 100% RAM usage
Compiling with --print-memory-usage always shows 100% RAM
Upstream bug raspberrypi/pico-sdk#1871

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-10-07 06:57:14 +08:00
simbit18
20b172dc19 boards/arm/rp23xx/pimoroni-pico-2-plus: fix 'BOARD_HSTX_FREQ' undeclared
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>
2025-10-06 09:15:38 -04:00
simbit18
6d32818f1d boards/arm/rp23xx: CMake added Pimoroni Pico Plus 2 board
- Added CMake build for Pimoroni Pico Plus 2

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-10-05 15:04:11 -04:00
simbit18
8db94324b1 boards/arm/rp23xx: CMake added Seeed Studio XIAO RP2350 board
- Added CMake build for Seeed Studio XIAO RP2350

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-10-03 16:35:48 -03:00
simbit18
92159bbdba arm/rp23xx: CMake build for Raspberry Pi RP23xx implemented
- CMake added board Raspberry Pi Pico 2

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-10-02 14:29:19 -04:00
simbit18
8baa788484 boards/arm/rp23xx: fix implicit declaration of function rp23xx_dev_gpio_init
- 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>
2025-10-02 14:29:19 -04:00
trns1997
45b90e82e5 boards/arm/kinetis/freedom-k64f: Add userled support
- Enable userled driver integration for the Freedom-K64F board.
- Verified functionality with the leds example app.

Signed-off-by: trns1997 <trns1997@gmail.com>
2025-10-02 14:04:00 +02:00
simbit18
d598f97746 boards/arm/rp2040/raspberrypi-pico/configs/lcd1602: fix defconfig
This PR #6850 modified the correct defconfig.

74f1bfbfd7/boards/arm/rp2040/raspberrypi-pico/configs/lcd1602/defconfig

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-10-01 14:17:59 -04:00
simbit18
5a3b185c83 boards/arm/rp2040: CMake added Raspberry Pi Pico W board
- 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>
2025-10-01 14:17:59 -04:00
simbit18
9bb0beda98 boards/arm/rp2040: CMake added Waveshare RP2040-LCD-1.28 board
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>
2025-09-30 13:28:00 -04:00
simbit18
14dd308410 boards/arm/rp2040: CMake added Seeed, WIZnet and Waveshare boards
Added CMake build for:

-  seeed-xiao-rp2040
-  w5500-evb-pico
-  waveshare-rp2040-zero

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-09-29 17:35:10 -04:00
simbit18
1e5bbb437d boards/arm/rp2040: CMake added Adafruit boards
Added CMake build for:

-  adafruit-feather-rp2040
-  adafruit-kb2040
-  adafruit-qt-py-rp2040

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-09-30 01:08:57 +08:00
trns1997
d7b2df6d85 ci/cxx: Add out-of-tree build CI test.
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>
2025-09-27 21:36:22 +08:00
simbit18
0a5336a9f1 boards/arm/rp2040: CMake added pimoroni-tiny2040 board
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>
2025-09-26 21:17:06 -04:00
kywwilson11
09290b9254 arch/arm/stm32h5: ADC Driver Improvements
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.
2025-09-26 17:35:08 +08:00
simbit18
3a08a0e3fd boards/arm/rp2040: fix implicit declaration of function 'rp2040_dev_gpio_init'
- 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>
2025-09-24 14:42:27 +08:00
simbit18
4c3dbed5b5 arm/rp2040: CMake build for Raspberry Pi RP2040 implemented
- 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>
2025-09-24 14:42:27 +08:00
Sergey Rzhevsky
a95c0e8a62 boards/arm/stm32h7: add WeAct STM32H750 board support
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>
2025-09-21 16:11:39 -03:00
Sergey Rzhevsky
d195260894 arch/arm/stm32h7: add support for STM32H750xx chips
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>
2025-09-21 16:11:39 -03:00
michal matias
10df0c4357 boards/arm/samv7/samv71-xult/configs/oa_tc6: Add plcatool support
Add support for the plcatool utility into samv71-xult oa_tc6 defconfig.

Signed-off-by: michal matias <mich4l.matias@gmail.com>
2025-09-19 09:34:48 +08:00
Lars Kruse
2477914ea6 board/arm/rp2040: implement "board_boot_image" for bootloader support
This function is required by the bootloaders (nxboot and mcuboot).

Signed-off-by: Lars Kruse <devel@sumpfralle.de>
2025-09-18 11:13:15 -03:00
michal matias
12486d21dc boards/arm/samv7/samv71-xult: Add support for the OA-TC6 10BASE-T1x MAC-PHYs
Add support for the OA-TC6 10BASE-T1x driver to the SAMV71 Xplained ultra board.

Signed-off-by: michal matias <mich4l.matias@gmail.com>
2025-09-16 15:47:26 +08:00
Lars Kruse
4db757c9a6 arch/arm/rp2040: merge conflicting definitions of hw_* functions
The functions `hw_write_masked` and `hw_xor_bits` (as defined in
pico-sdk) were defined in NuttX twice.
Additionally these definitions were in conflict (one lacked the
`volatile` modifier).

Now these functions and their dependencies are defined in a new header
file.
Its name is based on the filename of the original definition in
pico-sdk:

  src/rp2_common/hardware_base/include/hardware/address_mapped.h

This change should fix the potential issue of GPIO operations failing
due to compiler optimizations caused by the absence of `volatile`.

Signed-off-by: Lars Kruse <devel@sumpfralle.de>
2025-09-10 09:46:04 +08:00
simbit18
77f427ae5e boards/arm/imxrt: CMake added teensy-4.x board
Added CMake build for teensy-4.x board

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-09-08 21:47:08 +08:00
Alan Carvalho de Assis
d2344ee915 boards/arcx-socket-grid: Add support to two USBs
This patch adds support to both USB controllers.

Signed-off-by: Alan C. Assis <acassis@gmail.com>
2025-09-01 22:58:01 +08:00
Serg Podtynnyi
52d1877e2e boards/arm/rp23xx/common: update board reset via BOOTROM functions
Update board reset with BOOTROM functions calls
 - normal reboot
 - reboot to bootloader

normal reboot and reboot bootloader now possible from nsh

Port of https://github.com/apache/nuttx/pull/16848

Signed-off-by: Serg Podtynnyi <serg@podtynnyi.com>
2025-08-28 11:04:08 -03:00
simbit18
9c6d502531 boards/arm/imxrt: CMake added imxrt1020-evk imxrt1050-evk boards
Added CMake build for boards:

imxrt1020-evk
imxrt1050-evk

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-08-28 15:34:54 +08:00
simbit18
4838d712a7 boards/arm/imxrt: CMake added imxrt1060-evk imxrt1064-evk imxrt1170-evk boards
Added CMake compilation for boards:

imxrt1060-evk
imxrt1064-evk
imxrt1170-evk

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-08-28 15:21:53 +08:00
v-tangmeng
e1b442b0e8 arm/sama5: fix ld unrecognized option '-g3'
ld: unrecognized option '-g3'
ld: use the --help option for usage information

Because `arch/arm/src/common/Toolchain.defs` already contains
`ARCHOPTIMIZATION += $(CONFIG_DEBUG_SYMBOLS_LEVEL)`, so
`boards/arm/sama5/jupiter-nano/scripts/Make.defs` here directly
delete `ARCHOPTIMIZATION += $(CONFIG_DEBUG_SYMBOLS_LEVEL)`.

Signed-off-by: v-tangmeng <v-tangmeng@xiaomi.com>
2025-08-28 15:21:05 +08:00
Michal Lenc
78e41861e6 boards/arm/samv7/pic32czca70-curiosity: add progmem to configuration
PIC32CZCA70 Curiosity evaluation kit now initializes and registers
a partition in an embedded flash. The end of the flash is used as
an example to avoid the interference with the actual code.

Signed-off-by: Michal Lenc <michallenc@seznam.cz>
2025-08-25 16:44:24 -03:00
Niccolò Maggioni
3e70a7edc7 boards/arm/rp2040: Add ADS7046 example config
Add a new defconfig that includes support for an ADS7046 sensor
and extend the existing documentation to include its description.

Signed-off-by: Niccolò Maggioni <nicco.maggioni+nuttx@gmail.com>
2025-08-22 00:29:55 +08:00
Niccolò Maggioni
3ba6047e29 drivers/sensors/tmp112: Add support for TMP112 temperature sensor
Add support for the Texas Instruments TMP112 I2C/SMBus digital
temperature sensor. Also add a new defconfig that includes
support for a TMP112 sensor and extend the existing documentation
to include its description.

Signed-off-by: Niccolò Maggioni <nicco.maggioni+nuttx@gmail.com>
2025-08-19 19:45:32 -03:00
Côme VINCENT
bebcfa0f46 docs(h743zi/capture): add capture driver docs
Add documentation for changes made in #16809.
Add an example defconfig for a nsh build with the capture example.
Replace the STM32H7_CAP option with just CAPTURE as the guard for the
lower half driver.

Signed-off-by: Côme VINCENT <44554692+comejv@users.noreply.github.com>
2025-08-14 20:46:37 +08:00