47791442a0
commit 3fcf84a9a2673e1e1466ce5b114d7b73c257e515 Author: Gregory Nutt <gnutt@nuttx.org> Date: Fri Jul 28 12:00:31 2017 -0600 Spirit: Brings in the last of the PktCommon interfaces. commit d26ebd901ba4ba84910e99b4e728b98c30fa4c0b Author: Gregory Nutt <gnutt@nuttx.org> Date: Fri Jul 28 09:54:52 2017 -0600 Spirit: Add a few more PktCommon interfaces. commit b5cb8041d50233a4abb8fb4d1dcef5428ae2c2b2 Author: Gregory Nutt <gnutt@nuttx.org> Date: Fri Jul 28 09:33:31 2017 -0600 libc/termios: Remember block comments before empty file sections. commit 0fcab2c1c8c74442d40bd5e8c6af50a34f8a5821 Author: Sebastien Lorquet <sebastien@lorquet.fr> Date: Fri Jul 28 09:31:00 2017 -0600 tcdrain implementation based on a new term ioctl commit 797d4adf7d41068c671f0217d369b797b269de1a Author: Stefan Kolb <Stefan.Kolb@avat.de> Date: Fri Jul 28 09:19:04 2017 -0600 We discovered a problem with the samv7 mcan driver which results, under some circumstances, in a very high CPU load. The problem occurs, and is easily reproducible, if the device is connected to a CAN network with a wrongly configured CAN speed (baud rate). In our tests we set the CAN speed of the device to 1000000 and the speed of the other CAN nodes to 500000. The device is restarted and sends a CANopen “bootup message” to the CAN network. This results in huge amount of errors messages on the CAN bus, probably because of the CAN feature for acknowledging error messages. The error messages can’t be read by the device because of the misconfigured CAN speed, instead the CAN chip reports lots of errors, which are reported to the application which uses the CAN driver (CONFIG_CAN_ERRORS is enabled). The CAN errors are reported from the CAN chip via interrupts and thus the interrupt load is very high in this scenario. To fix the problem the driver now disables each RX error interrupt after it is occurred. The RX error interrupts are turned back on if at least one CAN message is received successfully. commit e298f48e96d9e34017dcab8e4d87032862ae9322 Author: Gregory Nutt <gnutt@nuttx.org> Date: Fri Jul 28 09:06:26 2017 -0600 Spirit: Bring in PktStack interfaces. commit 4a0f00a7058312dcf6ac392689b9f69112f613ec Merge: 855cf97130 |
||
---|---|---|
.. | ||
arm | ||
avr | ||
hc | ||
mips | ||
misoc | ||
renesas | ||
risc-v | ||
sim | ||
x86 | ||
xtensa | ||
z16 | ||
z80 | ||
Kconfig | ||
README.txt |
Architecture-Specific Code ^^^^^^^^^^^^^^^^^^^^^^^^^^ Table of Contents ^^^^^^^^^^^^^^^^^ o Architecture-Specific Code o Summary of Files o Supported Architectures o Configuring NuttX Architecture-Specific Code ^^^^^^^^^^^^^^^^^^^^^^^^^^ The NuttX configuration consists of: o Processor architecture specific files. These are the files contained in the arch/<arch-name>/ 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.). These chip-specific files are contained within chip-specific sub-directories in the arch/<arch-name>/ directory and are selected via the CONFIG_ARCH_name selection 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.). These board-specific configuration files can be found in the configs/<board-name>/ sub-directories. This README will address the processor architecture specific files that are contained in the arch/<arch-name>/ 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-name>/arch.h as described below). Directory Structure ^^^^^^^^^^^^^^^^^^^ The arch directory contains architecture specific logic. The complete board port in is defined by the architecture-specific code in this directory (plus the board-specific configurations in the config/ subdirectory). Each architecture must provide a subdirectory <arch-name> under arch/ with the following characteristics: <arch-name>/ |-- include/ | |--<chip-name>/ | | `-- (chip-specific header files) | |--<other-chips>/ | |-- arch.h | |-- irq.h | `-- types.h `-- src/ |--<chip-name>/ | `-- (chip-specific source files) |--<other-chips>/ |-- Makefile `-- (architecture-specific source files) Summary of Files ^^^^^^^^^^^^^^^^ include/<chip-name>/ 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 include/types.h 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 and if the architecture supports 64-bit integers. _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 irqstate_t Must be defined to the be 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 structure. These include: - struct xcptcontext. This structures represents the saved context of a thread. - irqstate_t up_irq_save(void) -- Used to disable all interrupts. - void upirq_restore(irqstate_t flags) -- Used to restore interrupt 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 withint 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 shoudl 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. src/<chip-name>/ This sub-directory contains chip-specific source files. 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 the final link with libup.a and other system archives to generate the final executable. Supported Architectures ^^^^^^^^^^^^^^^^^^^^^^^ NOTE: nuttx/Documentation/NuttX.html for current information about the 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. arch/arm - ARM-based micro-controllers This directory holds common ARM architectures. At present, this includes the following subdirectories: Architecture Support arch/arm/include and arch/arm/src/common arch/arm/src/arm and arch/arm/include/arm arch/arm/src/armv7-a and arch/arm/include/armv6-m arch/arm/src/armv7-a and arch/arm/include/armv7-a arch/arm/src/armv7-m and arch/arm/include/armv7-m arch/arm/src/armv7-r and arch/arm/include/armv7-r MCU support arch/arm/include/a1x and arch/arm/src/a1x arch/arm/include/c5471 and arch/arm/src/c5471 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/kinetis and arch/arm/src/kinetis arch/arm/include/kl and arch/arm/src/kl arch/arm/include/lpc11xx and arch/arm/src/lpc11xx arch/arm/include/lpc17xx and arch/arm/src/lpc17xx arch/arm/include/lpc214x and arch/arm/src/lpc214x 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/moxart and arch/arm/src/moxart arch/arm/include/nuc1xx and arch/arm/src/nuc1xx arch/arm/include/sam34 and arch/arm/src/sam34 arch/arm/include/sama45 and arch/arm/src/sama5 arch/arm/include/samdl and arch/arm/src/samdl 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/stm32f7 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/avr 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 arch/avr/include/avr32 and arch/avr/src/avr32 MCU support 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/hc This directory is dedicated to ports to the Freescale HC family. arch/arm/include/m9s12 and arch/arm/src/m9s12 arch/mips This directory is dedicated to ports to the MIPS family. Architecture Support arch/mips/include/mips32 and arch/mips/src/mips32 MCU support arch/mips/include/pic32mx and arch/mips/src/pic32mx arch/mips/include/pic32mz and arch/mips/src/pic32mz arch/renesas - Support for Renesas and legacy Hitachi microcontrollers. This include SuperH and M16C. Architecture Support arch/renesas/include and arch/renesas/src/common MCU support arch/renesas/include/m16c and arch/renesas/src/m16c arch/renesas/include/sh1 and arch/renesas/src/sh1 arch/risc-v This directory is dedicated to ports to the RISC-V family. Architecture Support arch/risc-v/include/rv32im MCU support arch/risc-v/include/nr5m100 arch/x86 - Intel x86 architectures 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 MCU support arch/x86/include/i486 and arch/x86/src/i486 arch/x86/include/qemu and arch/x86/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: Common XTENSA support: arch/xtensa/include and arch/xtensa/src/common LX6 DPU support: arch/xtensa/include/lx6 and arch/xtensa/xtensa/lx6 Expressif ESP32 implemenation of the LX6 DPU: arch/xtensa/include/esp32 and arch/xtensa/xtensa/esp32 arch/z16 - ZiLOG 16-bit processors This directory holds related, 16-bit architectures from ZiLOG. At present, this includes the following subdirectories: Architecture Support arch/z16/include and arch/z16/src/common MCU support arch/z16/include/z16f and arch/z16/src/z16f arch/z80 - ZiLOG 8-bit microcontrollers This directory holds related, 8-bit architectures from ZiLOG. At present, this includes the following subdirectories: Architecture Support arch/z80/include and arch/z80/src/common MCU support arch/z80/include/z80 and arch/z80/src/z80 arch/z80/include/z8 and arch/z80/src/z8 arch/z80/include/ez80 and arch/z80/src/ez80