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
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>
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>
- 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>
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>
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 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>
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>
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>
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>
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>
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>
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>
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>