Todo
Create “tutorial” type documentation for specific subjects not to be covered in more general terms.
Guides
- NFS Client How-To
- USB Device Trace
- Simulator
- How to debug NuttX using QEMU and GDB
- How to use RNDIS
- Drivers
- Task Trace
- C++ Example using CMake
- pysimCoder integration with NuttX
- Custom Boards How-To
- Custom Apps How-to
- Running CI Test Locally
- High Performance: Zero Latency Interrupts, Maskable nested interrupts
- The Kernel Address Sanitizer (KASAN)
- Nested Interrupts
- Analyzing Cortex-M Hardfaults
- Core Dump
- Coresight - HW Assisted Tracing on ARM
- gdbserver
- GDB with Python
- Open Flash Loader
- Testing TCP/IP Network Stacks
- Auto-Mounter
- STM32 Null Pointer Detection
- STM32 CCM Allocator
- Run time stack statistics
- etc romfs
- Thread Local Storage
- Device Tree
- Debugging / flashing NuttX on ARM with hardware debugger (JTAG/SWD)
- Changing the System Clock Configuration
- Using Kernel Threads
- ARMv7-M Run Time Stack Checking
- Disabling the Stack Dump During Debugging
- Including Files in board.h
- Why can’t I put my special stuff in NuttX header files?
- Kernel Threads with Custom Stacks
- Versioning and Task Names
- Logging to a RAM Buffer
- IPv6
- Integrating with Newlib
- NuttX Protected Build
- The Traditional “Flat” Build
- The “Two Pass” Protected Build
- The Memory Protection Unit
- Advantages of the Protected Build
- User-Space Proxies/Kernel-Space Stubs
- Combining Intel HEX Files
- Files and Directories
- Alignment, Regions, and Subregions
- Memory Management
- Comparing the “Flat” Build Configuration with the Protected Build Configuration
- Size Expansion
- Performance Issues
- Platform Directories
- Porting Drivers to the STM32 F7
- Semihosting
- Run NuttX on Renode
- Signaling Events from Interrupt Handlers
- Signaling Semaphores and Priority Inheritance
- Smaller Vector Tables