The port had one board directory holding one board, with everything in it whether it described the SoC or the PCB. A second EIC7700X board follows, so this adopts the common-plus-board layout NuttX provides, as mpfs uses. boards/risc-v/eic7700x/common holds what is true of the SoC: the boot path that mounts the RAM disk and /proc before calling the board's own bring up, the linker script, the start up scripts and the image builder. ARCH_CHIP_EIC7700X selects ARCH_BOARD_COMMON, so the symlinks the build makes always point at code that compiles. The board directory keeps what is a fact about the PCB: its own board.h and board_memorymap.h, since the include fallback is all or nothing, a bring up that owns the order its devices register in, and a board_config.h declaring what that bring up may call. The image builder moves to common/tools and derives its output name from the configuration. It computes the padding between the kernel and the RAM disk from _ebss rather than assuming 64 KiB, which fails once BSS grows past it: the disk lands below _ebss and the BSS clear zeroes it before anything searches for it. The StarPro64 configuration gains what the port now needs: four harts, 960 MiB of RAM, a larger task stack, a backtrace on assert, the system log in RAM for dmesg, and ELF applications, for which ARCH_CHIP_EIC7700X now selects ARCH_HAVE_ELF_EXECUTABLE. board.h loses its LED definitions. CONFIG_ARCH_LEDS is not set, nothing implements board_autoled_on(), and the indices they gave named no LED. The documentation pages gain the tags the template asks for. Assisted-by: Claude:claude-opus-5 Signed-off-by: Justin Hammond <justin@dynam.ac> |
||
|---|---|---|
| .github | ||
| arch | ||
| audio | ||
| binfmt | ||
| boards | ||
| cmake | ||
| crypto | ||
| Documentation | ||
| drivers | ||
| dummy | ||
| fs | ||
| graphics | ||
| include | ||
| libs | ||
| mm | ||
| net | ||
| openamp | ||
| pass1 | ||
| sched | ||
| syscall | ||
| tools | ||
| video | ||
| wireless | ||
| .asf.yaml | ||
| .codespell-ignore-lines | ||
| .codespellrc | ||
| .editorconfig | ||
| .gitignore | ||
| .gitmessage | ||
| .pre-commit-config.yaml | ||
| .yamllint | ||
| AUTHORS | ||
| CMakeLists.txt | ||
| CONTRIBUTING.md | ||
| INVIOLABLES.md | ||
| Kconfig | ||
| LICENSE | ||
| Makefile | ||
| NOTICE | ||
| README.md | ||
| ReleaseNotes | ||
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.