From 1d394535cb867e5736dde5b3dea4c23199e3b266 Mon Sep 17 00:00:00 2001 From: Nathan Hartman <59230071+hartmannathan@users.noreply.github.com> Date: Fri, 17 Apr 2020 16:22:54 -0400 Subject: [PATCH] arch/README.txt: Various improvements to the text * Added missing architectures and directories. * Corrected a few mistakes. * Rewrapped some text for consistency. --- arch/README.txt | 135 +++++++++++++++++++++++++++++------------------- 1 file changed, 81 insertions(+), 54 deletions(-) diff --git a/arch/README.txt b/arch/README.txt index 38ebe9df1c..b9317fd89c 100644 --- a/arch/README.txt +++ b/arch/README.txt @@ -16,11 +16,11 @@ The NuttX configuration consists of: o Processor architecture specific files. These are the files contained in the arch// directory discussed in this README. -o Chip/SoC specific files. Each processor processor architecture - is embedded in chip or System-on-a-Chip (SoC) architecture. The - full chip architecture includes the processor architecture plus - chip-specific interrupt logic, general purpose I/O (GIO) logic, and - specialized, internal peripherals (such as UARTs, USB, etc.). +o Chip/SoC specific files. Each processor architecture is embedded in + chip or System-on-a-Chip (SoC) architecture. The full chip + architecture includes the processor architecture plus chip-specific + interrupt logic, general purpose I/O (GPIO) logic, and specialized, + internal peripherals (such as UARTs, USB, etc.). These chip-specific files are contained within chip-specific sub-directories in the arch// directory and are selected @@ -28,16 +28,16 @@ o Chip/SoC specific files. Each processor processor architecture o Board specific files. In order to be usable, the chip must be contained in a board environment. The board configuration defines - additional properties of the board including such things as - peripheral LEDs, external peripherals (such as network, USB, etc.). + additional properties of the board including such things as peripheral + LEDs, external peripherals (such as network, USB, etc.). These board-specific configuration files can be found in the boards/// sub-directories. -This README will address the processor architecture specific files -that are contained in the arch// directory. The file -include/nuttx/arch.h identifies all of the APIs that must -be provided by this architecture specific logic. (It also includes +This README will address the processor architecture specific files that +are contained in the arch// directory. The file +include/nuttx/arch.h identifies all of the APIs that must be provided by +this architecture specific logic. (It also includes arch//arch.h as described below). Directory Structure @@ -72,12 +72,12 @@ include// This sub-directory contains chip-specific header files. include/arch.h - This is a hook for any architecture specific definitions that may - be needed by the system. It is included by include/nuttx/arch.h + This is a hook for any architecture specific definitions that may be + needed by the system. It is included by include/nuttx/arch.h include/types.h - This provides architecture/toolchain-specific definitions for - standard types. This file should typedef: + This provides architecture/toolchain-specific definitions for standard + types. This file should typedef: _int8_t, _uint8_t, _int16_t, _uint16_t, _int32_t, _uint32_t @@ -86,26 +86,27 @@ include/types.h _int24_t, _uint24_t, _int64_t, _uint64_t NOTE that these type names have a leading underscore character. This - file will be included(indirectly) by include/stdint.h and typedef'ed to - the final name without the underscore character. This roundabout way of - doings things allows the stdint.h to be removed from the include/ - directory in the event that the user prefers to use the definitions - provided by their toolchain header files. + file will be included (indirectly) by include/stdint.h and typedef'ed + to the final name without the underscore character. This roundabout + way of doings things allows the stdint.h to be removed from the + include/ directory in the event that the user prefers to use the + definitions provided by their toolchain header files. irqstate_t - Must be defined to the be the size required to hold the interrupt + Must be defined to the size required to hold the interrupt enable/disable state. This file will be included by include/sys/types.h and be made available to all files. include/irq.h - This file needs to define some architecture-specific functions (usually - inline if the compiler supports inlining) and structures. These include: + This file needs to define some architecture-specific functions + (usually inline if the compiler supports inlining) and structures. + These include: - - struct xcptcontext. This structure represents the saved context - of a thread. + - struct xcptcontext. This structure represents the saved context of + a thread. - irqstate_t up_irq_save(void) -- Used to disable all interrupts. @@ -113,11 +114,11 @@ include/irq.h enables to the same state as before up_irq_save was called. NOTE: These interfaces are not available to application code but can - only be used within the operating system code. And, in general, - these functions should *never* be called directly, not unless you - know absolutely well what you are doing. Rather you should typically - use the wrapper functions enter_critical_section() and leave_critical_section() - as prototyped in include/nuttx/irq.h. + only be used within the operating system code. And, in general, these + functions should *never* be called directly, not unless you know + absolutely well what you are doing. Rather you should typically use + the wrapper functions enter_critical_section() and + leave_critical_section() as prototyped in include/nuttx/irq.h. This file must also define NR_IRQS, the total number of IRQs supported by the board. @@ -127,8 +128,8 @@ src// src/Makefile This makefile will be executed to build the targets src/libup.a and - src/up_head.o. The up_head.o file holds the entry point into the system - (power-on reset entry point, for example). It will be used in + src/up_head.o. The up_head.o file holds the entry point into the + system (power-on reset entry point, for example). It will be used in the final link with libup.a and other system archives to generate the final executable. @@ -139,13 +140,13 @@ state of these MCU ports. arch/sim - Linux/Cygwin simulation A user-mode port of NuttX to the x86 Linux platform is available. - The purpose of this port is primarily to support OS feature development. - This port does not support interrupts or a real timer (and hence no - round robin scheduler) Otherwise, it is complete. + The purpose of this port is primarily to support OS feature + development. This port does not support interrupts or a real timer + (and hence no round robin scheduler). Otherwise, it is complete. arch/arm - ARM-based micro-controllers - This directory holds common ARM architectures. At present, this includes - the following subdirectories: + This directory holds common ARM architectures. At present, this + includes the following subdirectories: Architecture Support arch/arm/include and arch/arm/src/common @@ -159,42 +160,44 @@ arch/arm - ARM-based micro-controllers arch/arm/include/a1x and arch/arm/src/a1x arch/arm/include/am335x and arch/arm/src/am335x arch/arm/include/c5471 and arch/arm/src/c5471 + arch/arm/include/cxd56xx and arch/arm/src/cxd56xx arch/arm/include/dm320 and arch/arm/src/dm320 arch/arm/include/efm32 and arch/arm/src/efm32 arch/arm/include/imx1 and arch/arm/src/imx1 arch/arm/include/imx6 and arch/arm/src/imx6 - arch/arm/include/imx6 and arch/arm/src/imrt + arch/arm/include/imxrt and arch/arm/src/imxrt arch/arm/include/kinetis and arch/arm/src/kinetis arch/arm/include/kl and arch/arm/src/kl arch/arm/include/lc823450 and arch/arm/src/lc823450 arch/arm/include/lpc17xx_40xx and arch/arm/src/lpc17xx_40xx arch/arm/include/lpc214x and arch/arm/src/lpc214x - arch/arm/include/lpc2378 and arch/arm/src/lpc2378. + arch/arm/include/lpc2378 and arch/arm/src/lpc2378 arch/arm/include/lpc31xx and arch/arm/src/lpc31xx arch/arm/include/lpc43xx and arch/arm/src/lpc43xx - arch/arm/include/lpc43xx and arch/arm/src/lpc54xx - arch/arm/include/lpc43xx and arch/arm/src/max236xx + arch/arm/include/lpc54xx and arch/arm/src/lpc54xx + arch/arm/include/max326xx and arch/arm/src/max326xx arch/arm/include/moxart and arch/arm/src/moxart - arch/arm/include/nuc1xx and arch/arm/src/nrf52 + arch/arm/include/nrf52 and arch/arm/src/nrf52 arch/arm/include/nuc1xx and arch/arm/src/nuc1xx + arch/arm/include/s32k1xx and arch/arm/src/s32k1xx arch/arm/include/sam34 and arch/arm/src/sam34 - arch/arm/include/sama45 and arch/arm/src/sama5 + arch/arm/include/sama5 and arch/arm/src/sama5 arch/arm/include/samd2l2 and arch/arm/src/samd2l2 - arch/arm/include/samd2l2 and arch/arm/src/samd5e5 + arch/arm/include/samd5e5 and arch/arm/src/samd5e5 arch/arm/include/samv7 and arch/arm/src/samv7 arch/arm/include/stm32 and arch/arm/src/stm32 - arch/arm/include/stm32f7 and arch/arm/src/stm32f0 + arch/arm/include/stm32f0l0g0 and arch/arm/src/stm32f0l0g0 arch/arm/include/stm32f7 and arch/arm/src/stm32f7 - arch/arm/include/stm32l4 and arch/arm/src/stm32h7 + arch/arm/include/stm32h7 and arch/arm/src/stm32h7 arch/arm/include/stm32l4 and arch/arm/src/stm32l4 arch/arm/include/str71x and arch/arm/src/str71x arch/arm/include/tiva and arch/arm/src/tiva arch/arm/include/tms570 and arch/arm/src/tms570 - arch/arm/include/tms570 and arch/arm/src/xmc4 + arch/arm/include/xmc4 and arch/arm/src/xmc4 arch/avr - This directory is dedicated to ports to the Atmel AVR (8-bit) and AVR32 (32-bit) - MCU families. STATUS: Under development. + This directory is dedicated to ports to the Atmel AVR (8-bit) and + AVR32 (32-bit) MCU families. STATUS: Under development. Architecture Support arch/avr/include/avr and arch/avr/src/avr @@ -204,6 +207,7 @@ arch/avr arch/avr/include/atmega and arch/avr/src/atmega arch/avr/include/at90usb and arch/avr/src/at90usb arch/avr/include/at32uc3 and arch/avr/src/at32uc3 + arch/avr/include/xmega and arch/avr/src/xmega arch/hc This directory is dedicated to ports to the Freescale HC family. @@ -220,6 +224,13 @@ arch/mips arch/mips/include/pic32mx and arch/mips/src/pic32mx arch/mips/include/pic32mz and arch/mips/src/pic32mz +arch/misoc + This directory is dedicated to ports to the Misoc family. + + MCU support + arch/misoc/include/lm32 and arch/misoc/src/lm32 + arch/misoc/include/minerva and arch/misoc/src/minerva + arch/renesas - Support for Renesas and legacy Hitachi microcontrollers. This include SuperH and M16C. @@ -228,6 +239,7 @@ arch/renesas - Support for Renesas and legacy Hitachi microcontrollers. MCU support arch/renesas/include/m16c and arch/renesas/src/m16c + arch/renesas/include/rx65n and arch/renesas/src/rx65n arch/renesas/include/sh1 and arch/renesas/src/sh1 arch/or1k @@ -242,12 +254,17 @@ arch/risc-v arch/risc-v/include/rv32im MCU support - arch/risc-v/include/gap8 - arch/risc-v/include/nr5m100 + arch/risc-v/include/fe310 and arch/risc-v/src/fe310 + arch/risc-v/include/gap8 and arch/risc-v/src/gap8 + arch/risc-v/include/k210 and arch/risc-v/src/k210 + arch/risc-v/include/litex and arch/risc-v/src/litex + arch/risc-v/include/nr5m100 and arch/risc-v/src/nr5m100 + arch/risc-v/include/rv32im and arch/risc-v/src/rv32im + arch/risc-v/include/rv64gc and arch/risc-v/src/rv64gc arch/x86 - Intel x86 architectures - This directory holds related, 32- and 64-bit architectures from Intel. - At present, this includes the following subdirectories: + This directory holds related, 32- and 64-bit architectures from + Intel. At present, this includes the following subdirectories: Architecture Support arch/x86/include and arch/x86/src/common @@ -256,8 +273,18 @@ arch/x86 - Intel x86 architectures arch/x86/include/i486 and arch/x86/src/i486 arch/x86/include/qemu and arch/x86/src/qemu -arch/xtensa +arch/x86_64 - Intel x86 64-bit architectures + This directory holds related 64-bit architectures from Intel. At + present, this includes the following subdirectories: + Architecture Support + arch/x86_64/include and arch/x86_64/src/common + + MCU support + arch/x86_64/include/intel64 and arch/x86_64/src/intel64 + arch/x86_64/include/qemu and arch/x86_64/src/qemu + +arch/xtensa Implementations based on the Cadence® Tensilica® Xtensa® processors, such as the Xtensa LX6 dataplane processing units (DPUs). At present, this includes the following subdirectories: