Apache NuttX is a mature, real-time embedded operating system (RTOS) https://nuttx.apache.org/
Find a file
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
.github build(deps): bump actions/setup-python from 5 to 6 2025-09-08 21:48:08 +08:00
arch arch/arm/stm32h5: ADC Driver Improvements 2025-09-26 17:35:08 +08:00
audio fs/file: unify prefix about file_xxx api, like file_open, file_ioctl 2025-06-12 18:12:42 +08:00
binfmt libc/elf: rename modlib to libelf 2025-04-11 09:43:22 +08:00
boards arch/arm/stm32h5: ADC Driver Improvements 2025-09-26 17:35:08 +08:00
cmake arm/rp2040: CMake build for Raspberry Pi RP2040 implemented 2025-09-24 14:42:27 +08:00
crypto crypto/hmac: Fix typo in function implementation names 2025-08-13 23:11:02 +08:00
Documentation arch/arm/stm32h5: ADC Driver Improvements 2025-09-26 17:35:08 +08:00
drivers net/mdio: add mdio bus 2025-09-25 16:24:18 +08:00
dummy
fs fs/fat: Fix wrong alloc used in fat_zero_cluster() 2025-08-29 19:18:32 +02:00
graphics style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
include arch: unify the scheduling information of task_exit 2025-09-25 16:40:23 +08:00
libs libc/fclose: Validate the user provided stream pointer 2025-09-09 23:51:35 +08:00
mm kasan watchpoint: Fix judgment problem 2025-07-01 09:04:03 -03:00
net net/can/can_recvmsg.c: Cleanup can_readahead 2025-08-26 20:42:01 +08:00
openamp style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
pass1 Revert "build depend:Revert Make.dep intermediate ddc file" 2024-09-15 19:29:47 +08:00
sched arch: unify the scheduling information of task_exit 2025-09-25 16:40:23 +08:00
syscall sched/gettid: Move thread ID to TLS 2025-04-08 22:53:10 +08:00
tools tools/ci: Added CMake build for Raspberry Pi Pico on Windows Native 2025-09-24 12:05:56 -03:00
video Revert "build depend:Revert Make.dep intermediate ddc file" 2024-09-15 19:29:47 +08:00
wireless Bluetooth SMP: added support for Legacy pairing (MITM) with passkey 2025-05-28 21:49:08 +08:00
.asf.yaml github: master branch protection tune. 2025-05-07 18:37:13 -05:00
.codespell-ignore-lines style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
.codespellrc docs/codeowners: Add preliminary code owner file 2025-09-05 19:53:06 -04:00
.editorconfig .editorconfig: add .editorconfig file to help maintain coding style 2025-08-28 21:53:16 +08:00
.gitignore gitignore: add more vim swap files 2025-06-18 15:44:51 -04:00
.gitmessage docs/contributing: Add a commit message template 2025-06-03 17:33:24 +08:00
.pre-commit-config.yaml pre-commit: enable codespell checks 2025-05-05 12:34:39 +08:00
.yamllint
AUTHORS AUTHORS: add Simone Falsetti 2025-07-15 15:12:44 -03:00
CMakeLists.txt CMake: Move global compiler flags setting before add_executable() 2025-09-25 20:47:26 +08:00
CONTRIBUTING.md style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
INVIOLABLES.md
Kconfig Kconfig: Fix Kconfig style 2025-09-17 08:54:58 +08:00
LICENSE style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
Makefile tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
NOTICE
README.md Gathering community recommendations 2023-10-28 13:55:56 +08:00
ReleaseNotes Documentation: move ReleaseNotes 2023-09-26 20:41:00 +08:00

POSIX Badge License Issues Tracking Badge Contributors GitHub Build Badge Documentation Badge

Apache NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOSs (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).

For brevity, many parts of the documentation will refer to Apache NuttX as simply NuttX.

Getting Started

First time on NuttX? Read the Getting Started guide! If you don't have a board available, NuttX has its own simulator that you can run on terminal.

Documentation

You can find the current NuttX documentation on the Documentation Page.

Alternatively, you can build the documentation yourself by following the Documentation Build Instructions.

The old NuttX documentation is still available in the Apache wiki.

Supported Boards

NuttX supports a wide variety of platforms. See the full list on the Supported Platforms page.

Contributing

If you wish to contribute to the NuttX project, read the Contributing guidelines for information on Git usage, coding standard, workflow and the NuttX principles.

License

The code in this repository is under either the Apache 2 license, or a license compatible with the Apache 2 license. See the License Page for more information.