Read-Only Mirror of Apache NuttX RTOS
Find a file
Kyle Wilson 4bd2c0443b
Some checks are pending
Build Documentation / build-html (push) Waiting to run
Preliminary add of fdcan source files.
Adding source files to the fdcan branch based on identical register set. These files should mostly just work.

Removed references to FDCAN3. H5 only has 2 FDCAN interfaces.

Add basic FDCAN Kconfig

FDCAN Kconfig options

Added various options for FDCAN mode, FDCAN bitrate, clock selection and division, and timing.

Added bit timing config options (nominal and data). Added stm32h56xxx pin mappings.

Fixed Data Bit Timing. Pulled in STM32H5_FDCAN_PDIV_VALUE. Added stm32_fdcan.c to Make.defs. Added DBITRATE to Kconfig

Clock source changes to FDCAN

Moved the setting of the clock source to the stm32h5xx_rcc.c file. Added notes to stm32_fdcan.c that STM32_FDCAN_FREQUENCY and STM32_FDCAN_PDIV should be set in board.h

Change STM32H5_FDCAN_PDIV to STM32_FDCAN_PDIV

Updated Kconfig to match G4 implementation. Removed stm32_fdcan_sock for now.

Removed FDCAN3 from stm32_fdcan.h

incomplete changes for bit timning

Set NBRP and DBRP registers based on STM32H7 FDCAN socket algorithm.

Added board file for initializing 1 can device. Will update later to initialize second device.

Fixed ifdefs. Changed STM32 to STM32H5.

Add some can testing changes.

Added option to configure bit timing, with automatic bit timing set as default.

Style fixes

Fixed FDCAN2 and memory access issues

FDCAN2 msgram offset was wrong by 1 word (4 bytes). I removed the + 4 at the end of the definition. This fixed the issues with fdcan2. Also changed ifdefs when setting ESI, FDF, and BRS bits. When CAN FD was used, this resulted in the first command after the endif (the setting of dest at line 2325) being skipped because it was included in the else block when it shouldn't have. This resulted in exceptions. Adjust ifdefs fixes this problem. Other minor fixes.

Restoring board files to upstream versions. These files will be pulled in later in a separate pull request. stm32h5_fdcan_test branch created for this.

Fixed Queue Mode Transmit

The can driver checks the TFFL bits in the TXFQS register. In Queue mode, this always returns 0. As a result, fdcan_txempty was always returning false, which resulted in no transmissions. This code fixes that.

Add stm32h5 fdcan chardriver to Make.defs
2025-01-07 01:05:23 +08:00
.github build(deps): bump codelytv/pr-size-labeler from 1.10.1 to 1.10.2 2024-11-25 13:37:09 +08:00
arch Preliminary add of fdcan source files. 2025-01-07 01:05:23 +08:00
audio Fix some minor style issues 2024-11-20 10:51:07 +01:00
binfmt binfmt/exec: initialize binary_s to empty to avoid invaild access 2024-12-13 01:31:21 +08:00
boards stm32ldiscovery/chrono: add CONFIG_SLCD 2025-01-06 22:11:54 +08:00
cmake nuttx/audio: add fake audio driver. 2024-12-20 11:47:08 -03:00
crypto crypto/xform.c: migrate to SPDX identifier 2024-12-19 14:48:18 +08:00
Documentation tools/Unix.mk: Add host_info target to print nxdiag output 2025-01-07 01:03:44 +08:00
drivers sched: remove all spin_lock_irqsave(NULL) 2025-01-06 23:11:44 +08:00
dummy build: add initial cmake build system 2023-07-08 13:50:48 +08:00
fs v9fs/client.c:Use int ret as the return value to avoid uint32_t not supporting negative values 2025-01-02 22:34:35 +08:00
graphics move readv/writev to the kernel 2024-10-30 17:07:54 +08:00
include sched: remove all spin_lock_irqsave(NULL) 2025-01-06 23:11:44 +08:00
libs gcov: add reboot gcov storage coverage info 2025-01-03 21:15:04 +08:00
mm mm: Unified memory management alignment length 2024-12-30 19:49:00 +08:00
net net/udp: Let cansend return EWOULDBLOCK when send buffer is full 2025-01-02 23:13:39 +08:00
openamp Remove all jira and changeid information from the kernel 2024-11-06 02:04:03 +08:00
pass1 Revert "build depend:Revert Make.dep intermediate ddc file" 2024-09-15 19:29:47 +08:00
sched sched: remove all spin_lock_irqsave(NULL) 2025-01-06 23:11:44 +08:00
syscall Revert "system: pthread_barrierwait should be moved to kernel space" 2024-11-15 22:07:25 +08:00
tools tools/Unix.mk: Add host_info target to print nxdiag output 2025-01-07 01:03:44 +08:00
video Revert "build depend:Revert Make.dep intermediate ddc file" 2024-09-15 19:29:47 +08:00
wireless bt_buf: use small lock in wireless/bluetooth/bt_buf.c 2024-12-18 18:11:08 +08:00
.asf.yaml feat: add a GitHub action to lint the YAML files 2020-12-15 09:52:04 -06:00
.gitignore arch/bcm2711, boards/raspberry-pi-4b: Add preliminary support for the BCM2711 and Raspberry Pi 4B. 2024-12-17 16:43:17 +08:00
.pre-commit-config.yaml Created pre-commit config file 2024-08-19 21:40:56 +02:00
.yamllint feat: add a GitHub action to lint the YAML files 2020-12-15 09:52:04 -06:00
AUTHORS AUTHORS: add Yamamoto Takashi 2024-11-04 22:29:22 +08:00
CMakeLists.txt [cmake] windows native: fixed FAILED: System.map 2024-12-13 15:54:55 -03:00
CONTRIBUTING.md Contributing and PR template fix. 2024-10-12 08:12:05 +08:00
INVIOLABLES.md INVIOLABLES.md: Fix a simple alignment and change occurrences of Nuttx 2020-09-03 01:33:05 +08:00
Kconfig debug symbol level: Use config instead 2024-12-04 22:36:45 +08:00
LICENSE libc string:Separate code. 2024-10-23 09:49:19 +08:00
Makefile tools: migrate to SPDX identifier 2024-09-10 23:11:11 +08:00
NOTICE Remove the double blank line from source files 2022-02-20 20:10:14 +01:00
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.