Update all config README.txt files to show that they use the EABI buildroot toolchain

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5218 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo
2012-10-06 17:29:36 +00:00
parent 318f3427f3
commit e9ad8b49f8
24 changed files with 2648 additions and 1612 deletions
+91 -91
View File
@@ -46,7 +46,7 @@ GNU Toolchain Options
CONFIG_LPC31_CODESOURCERYW=y : CodeSourcery under Windows CONFIG_LPC31_CODESOURCERYW=y : CodeSourcery under Windows
CONFIG_LPC31_CODESOURCERYL=y : CodeSourcery under Linux CONFIG_LPC31_CODESOURCERYL=y : CodeSourcery under Linux
CONFIG_LPC31_DEVKITARM=y : devkitARM under Windows CONFIG_LPC31_DEVKITARM=y : devkitARM under Windows
CONFIG_LPC31_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default) CONFIG_LPC31_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default)
If you are not using CONFIG_LPC31_BUILDROOT, then you may also have to modify If you are not using CONFIG_LPC31_BUILDROOT, then you may also have to modify
the PATH in the setenv.h file if your make cannot find the tools. the PATH in the setenv.h file if your make cannot find the tools.
@@ -196,12 +196,12 @@ Image Format
Then, to build the NuttX binary ready to load with the bootloader, just Then, to build the NuttX binary ready to load with the bootloader, just
following these steps: following these steps:
- cd tools/ # Configure Nuttx - cd tools/ # Configure Nuttx
- ./configure.sh ea3131/ostest # (using the ostest configuration for this example) - ./configure.sh ea3131/ostest # (using the ostest configuration for this example)
- cd .. # Set up environment - cd .. # Set up environment
- . ./setenv.sh # (see notes below) - . ./setenv.sh # (see notes below)
- make # Make NuttX. This will produce nuttx.bin - make # Make NuttX. This will produce nuttx.bin
- mklpc.sh # Make the bootloader binary (nuttx.lpc) - mklpc.sh # Make the bootloader binary (nuttx.lpc)
NOTES: NOTES:
@@ -469,121 +469,121 @@ On-Demand Paging
ARM/EA3131-specific Configuration Options ARM/EA3131-specific Configuration Options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
CONFIG_ARCH - Identifies the arch/ subdirectory. This should CONFIG_ARCH - Identifies the arch/ subdirectory. This should
be set to: be set to:
CONFIG_ARCH=arm CONFIG_ARCH=arm
CONFIG_ARCH_family - For use in C code: CONFIG_ARCH_family - For use in C code:
CONFIG_ARCH_ARM=y CONFIG_ARCH_ARM=y
CONFIG_ARCH_architecture - For use in C code: CONFIG_ARCH_architecture - For use in C code:
CONFIG_ARCH_ARM926EJS=y CONFIG_ARCH_ARM926EJS=y
CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory
CONFIG_ARCH_CHIP=lpc313x CONFIG_ARCH_CHIP=lpc313x
CONFIG_ARCH_CHIP_name - For use in C code CONFIG_ARCH_CHIP_name - For use in C code
CONFIG_ARCH_CHIP_LPC3131 CONFIG_ARCH_CHIP_LPC3131
CONFIG_ARCH_BOARD - Identifies the configs subdirectory and CONFIG_ARCH_BOARD - Identifies the configs subdirectory and
hence, the board that supports the particular chip or SoC. hence, the board that supports the particular chip or SoC.
CONFIG_ARCH_BOARD=ea3131 CONFIG_ARCH_BOARD=ea3131
CONFIG_ARCH_BOARD_name - For use in C code CONFIG_ARCH_BOARD_name - For use in C code
CONFIG_ARCH_BOARD_EA3131 CONFIG_ARCH_BOARD_EA3131
CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation
of delay loops of delay loops
CONFIG_ENDIAN_BIG - define if big endian (default is little CONFIG_ENDIAN_BIG - define if big endian (default is little
endian) endian)
CONFIG_DRAM_SIZE - For most ARM9 architectures, this describes the CONFIG_DRAM_SIZE - For most ARM9 architectures, this describes the
size of installed DRAM. For the LPC313X, it is used only to size of installed DRAM. For the LPC313X, it is used only to
deterimine how to map the executable regions. It is SDRAM size deterimine how to map the executable regions. It is SDRAM size
only if you are executing out of the external SDRAM; or it could only if you are executing out of the external SDRAM; or it could
be NOR FLASH size, external SRAM size, or internal SRAM size. be NOR FLASH size, external SRAM size, or internal SRAM size.
CONFIG_DRAM_START - The start address of installed DRAM (physical) CONFIG_DRAM_START - The start address of installed DRAM (physical)
CONFIG_DRAM_VSTART - The startaddress of DRAM (virtual) CONFIG_DRAM_VSTART - The startaddress of DRAM (virtual)
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that
have LEDs have LEDs
CONFIG_ARCH_IRQPRIO - The LPC313x supports interrupt prioritization CONFIG_ARCH_IRQPRIO - The LPC313x supports interrupt prioritization
CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt
stack. If defined, this symbol is the size of the interrupt stack. If defined, this symbol is the size of the interrupt
stack in bytes. If not defined, the user task stacks will be stack in bytes. If not defined, the user task stacks will be
used during interrupt handling. used during interrupt handling.
CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions
CONFIG_ARCH_BOOTLOADER - Set if you are using a bootloader. CONFIG_ARCH_BOOTLOADER - Set if you are using a bootloader.
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture. CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture.
CONFIG_ARCH_BUTTONS - Enable support for buttons. Unique to board architecture. CONFIG_ARCH_BUTTONS - Enable support for buttons. Unique to board architecture.
CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that
cause a 100 second delay during boot-up. This 100 second delay cause a 100 second delay during boot-up. This 100 second delay
serves no purpose other than it allows you to calibratre serves no purpose other than it allows you to calibratre
CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure
the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until
the delay actually is 100 seconds. the delay actually is 100 seconds.
CONFIG_ARCH_DMA - Support DMA initialization CONFIG_ARCH_DMA - Support DMA initialization
CONFIG_ARCH_LOWVECTORS - define if vectors reside at address 0x0000:00000 CONFIG_ARCH_LOWVECTORS - define if vectors reside at address 0x0000:00000
Undefine if vectors reside at address 0xffff:0000 Undefine if vectors reside at address 0xffff:0000
CONFIG_ARCH_ROMPGTABLE - A pre-initialized, read-only page table is available. CONFIG_ARCH_ROMPGTABLE - A pre-initialized, read-only page table is available.
If defined, then board-specific logic must also define PGTABLE_BASE_PADDR, If defined, then board-specific logic must also define PGTABLE_BASE_PADDR,
PGTABLE_BASE_VADDR, and all memory section mapping in a file named PGTABLE_BASE_VADDR, and all memory section mapping in a file named
board_memorymap.h. board_memorymap.h.
Individual subsystems can be enabled: Individual subsystems can be enabled:
CONFIG_LPC31_MCI, CONFIG_LPC31_SPI, CONFIG_LPC31_UART CONFIG_LPC31_MCI, CONFIG_LPC31_SPI, CONFIG_LPC31_UART
External memory available on the board (see also CONFIG_MM_REGIONS) External memory available on the board (see also CONFIG_MM_REGIONS)
CONFIG_LPC31_EXTSRAM0 - Select if external SRAM0 is present CONFIG_LPC31_EXTSRAM0 - Select if external SRAM0 is present
CONFIG_LPC31_EXTSRAM0HEAP - Select if external SRAM0 should be CONFIG_LPC31_EXTSRAM0HEAP - Select if external SRAM0 should be
configured as part of the NuttX heap. configured as part of the NuttX heap.
CONFIG_LPC31_EXTSRAM0SIZE - Size (in bytes) of the installed CONFIG_LPC31_EXTSRAM0SIZE - Size (in bytes) of the installed
external SRAM0 memory external SRAM0 memory
CONFIG_LPC31_EXTSRAM1 - Select if external SRAM1 is present CONFIG_LPC31_EXTSRAM1 - Select if external SRAM1 is present
CONFIG_LPC31_EXTSRAM1HEAP - Select if external SRAM1 should be CONFIG_LPC31_EXTSRAM1HEAP - Select if external SRAM1 should be
configured as part of the NuttX heap. configured as part of the NuttX heap.
CONFIG_LPC31_EXTSRAM1SIZE - Size (in bytes) of the installed CONFIG_LPC31_EXTSRAM1SIZE - Size (in bytes) of the installed
external SRAM1 memory external SRAM1 memory
CONFIG_LPC31_EXTSDRAM - Select if external SDRAM is present CONFIG_LPC31_EXTSDRAM - Select if external SDRAM is present
CONFIG_LPC31_EXTSDRAMHEAP - Select if external SDRAM should be CONFIG_LPC31_EXTSDRAMHEAP - Select if external SDRAM should be
configured as part of the NuttX heap. configured as part of the NuttX heap.
CONFIG_LPC31_EXTSDRAMSIZE - Size (in bytes) of the installed CONFIG_LPC31_EXTSDRAMSIZE - Size (in bytes) of the installed
external SDRAM memory external SDRAM memory
CONFIG_LPC31_EXTNAND - Select if external NAND is present CONFIG_LPC31_EXTNAND - Select if external NAND is present
CONFIG_LPC31_EXTSDRAMSIZE - Size (in bytes) of the installed CONFIG_LPC31_EXTSDRAMSIZE - Size (in bytes) of the installed
external NAND memory external NAND memory
LPC313X specific device driver settings LPC313X specific device driver settings
CONFIG_UART_SERIAL_CONSOLE - selects the UART for the CONFIG_UART_SERIAL_CONSOLE - selects the UART for the
console and ttys0 console and ttys0
CONFIG_UART_RXBUFSIZE - Characters are buffered as received. CONFIG_UART_RXBUFSIZE - Characters are buffered as received.
This specific the size of the receive buffer This specific the size of the receive buffer
CONFIG_UART_TXBUFSIZE - Characters are buffered before CONFIG_UART_TXBUFSIZE - Characters are buffered before
being sent. This specific the size of the transmit buffer being sent. This specific the size of the transmit buffer
CONFIG_UART_BAUD - The configure BAUD of the UART. Must be CONFIG_UART_BAUD - The configure BAUD of the UART. Must be
CONFIG_UART_BITS - The number of bits. Must be either 7 or 8. CONFIG_UART_BITS - The number of bits. Must be either 7 or 8.
CONFIG_UART_PARTIY - 0=no parity, 1=odd parity, 2=even parity CONFIG_UART_PARTIY - 0=no parity, 1=odd parity, 2=even parity
CONFIG_UART_2STOP - Two stop bits CONFIG_UART_2STOP - Two stop bits
Configurations Configurations
^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^
@@ -591,10 +591,10 @@ Configurations
Each EA3131 configuration is maintained in a sudirectory and can be Each EA3131 configuration is maintained in a sudirectory and can be
selected as follow: selected as follow:
cd tools cd tools
./configure.sh ea3131/<subdir> ./configure.sh ea3131/<subdir>
cd - cd -
. ./setenv.sh . ./setenv.sh
Where <subdir> is one of the following: Where <subdir> is one of the following:
+94 -94
View File
@@ -45,7 +45,7 @@ GNU Toolchain Options
CONFIG_LPC31_CODESOURCERYW=y : CodeSourcery under Windows CONFIG_LPC31_CODESOURCERYW=y : CodeSourcery under Windows
CONFIG_LPC31_CODESOURCERYL=y : CodeSourcery under Linux CONFIG_LPC31_CODESOURCERYL=y : CodeSourcery under Linux
CONFIG_LPC31_DEVKITARM=y : devkitARM under Windows CONFIG_LPC31_DEVKITARM=y : devkitARM under Windows
CONFIG_LPC31_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default) CONFIG_LPC31_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default)
If you are not using CONFIG_LPC31_BUILDROOT, then you may also have to modify If you are not using CONFIG_LPC31_BUILDROOT, then you may also have to modify
the PATH in the setenv.h file if your make cannot find the tools. the PATH in the setenv.h file if your make cannot find the tools.
@@ -165,7 +165,7 @@ NuttX buildroot Toolchain
Boot Sequence Boot Sequence
^^^^^^^^^^^^^ ^^^^^^^^^^^^^
LPC313x has on chip bootrom which loads properly formatted images from multiple LPC315x has on chip bootrom which loads properly formatted images from multiple
sources into SRAM. These sources include including SPI Flash, NOR Flash, UART, sources into SRAM. These sources include including SPI Flash, NOR Flash, UART,
USB, SD Card, and NAND Flash. USB, SD Card, and NAND Flash.
@@ -195,12 +195,12 @@ Image Format
Then, to build the NuttX binary ready to load with the bootloader, just Then, to build the NuttX binary ready to load with the bootloader, just
following these steps: following these steps:
- cd tools/ # Configure Nuttx - cd tools/ # Configure Nuttx
- ./configure.sh ea3152/ostest # (using the ostest configuration for this example) - ./configure.sh ea3152/ostest # (using the ostest configuration for this example)
- cd .. # Set up environment - cd .. # Set up environment
- . ./setenv.sh # (see notes below) - . ./setenv.sh # (see notes below)
- make # Make NuttX. This will produce nuttx.bin - make # Make NuttX. This will produce nuttx.bin
- mklpc.sh # Make the bootloader binary (nuttx.lpc) - mklpc.sh # Make the bootloader binary (nuttx.lpc)
NOTES: NOTES:
@@ -238,7 +238,7 @@ are the steps that I use for loading new code into the EA3152:
That will load the NuttX binary into ISRAM and attempt to execute it. That will load the NuttX binary into ISRAM and attempt to execute it.
*See the LPC313x documentation if you do not have the FTDI driver installed. *See the LPC315x documentation if you do not have the FTDI driver installed.
Using OpenOCD and GDB Using OpenOCD and GDB
^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^
@@ -275,121 +275,121 @@ Using OpenOCD and GDB
ARM/EA3152-specific Configuration Options ARM/EA3152-specific Configuration Options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
CONFIG_ARCH - Identifies the arch/ subdirectory. This should CONFIG_ARCH - Identifies the arch/ subdirectory. This should
be set to: be set to:
CONFIG_ARCH=arm CONFIG_ARCH=arm
CONFIG_ARCH_family - For use in C code: CONFIG_ARCH_family - For use in C code:
CONFIG_ARCH_ARM=y CONFIG_ARCH_ARM=y
CONFIG_ARCH_architecture - For use in C code: CONFIG_ARCH_architecture - For use in C code:
CONFIG_ARCH_ARM926EJS=y CONFIG_ARCH_ARM926EJS=y
CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory
CONFIG_ARCH_CHIP=lpc313x CONFIG_ARCH_CHIP=lpc31xx
CONFIG_ARCH_CHIP_name - For use in C code CONFIG_ARCH_CHIP_name - For use in C code
CONFIG_ARCH_CHIP_LPC3152 CONFIG_ARCH_CHIP_LPC3152
CONFIG_ARCH_BOARD - Identifies the configs subdirectory and CONFIG_ARCH_BOARD - Identifies the configs subdirectory and
hence, the board that supports the particular chip or SoC. hence, the board that supports the particular chip or SoC.
CONFIG_ARCH_BOARD=ea3152 CONFIG_ARCH_BOARD=ea3152
CONFIG_ARCH_BOARD_name - For use in C code CONFIG_ARCH_BOARD_name - For use in C code
CONFIG_ARCH_BOARD_EA3152 CONFIG_ARCH_BOARD_EA3152
CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation
of delay loops of delay loops
CONFIG_ENDIAN_BIG - define if big endian (default is little CONFIG_ENDIAN_BIG - define if big endian (default is little
endian) endian)
CONFIG_DRAM_SIZE - For most ARM9 architectures, this describes the CONFIG_DRAM_SIZE - For most ARM9 architectures, this describes the
size of installed DRAM. For the LPC313X, it is used only to size of installed DRAM. For the LPC315X, it is used only to
deterimine how to map the executable regions. It is SDRAM size deterimine how to map the executable regions. It is SDRAM size
only if you are executing out of the external SDRAM; or it could only if you are executing out of the external SDRAM; or it could
be NOR FLASH size, external SRAM size, or internal SRAM size. be NOR FLASH size, external SRAM size, or internal SRAM size.
CONFIG_DRAM_START - The start address of installed DRAM (physical) CONFIG_DRAM_START - The start address of installed DRAM (physical)
CONFIG_DRAM_VSTART - The startaddress of DRAM (virtual) CONFIG_DRAM_VSTART - The startaddress of DRAM (virtual)
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that
have LEDs have LEDs
CONFIG_ARCH_IRQPRIO - The LPC313x supports interrupt prioritization CONFIG_ARCH_IRQPRIO - The LPC315x supports interrupt prioritization
CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt
stack. If defined, this symbol is the size of the interrupt stack. If defined, this symbol is the size of the interrupt
stack in bytes. If not defined, the user task stacks will be stack in bytes. If not defined, the user task stacks will be
used during interrupt handling. used during interrupt handling.
CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions
CONFIG_ARCH_BOOTLOADER - Set if you are using a bootloader. CONFIG_ARCH_BOOTLOADER - Set if you are using a bootloader.
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture. CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture.
CONFIG_ARCH_BUTTONS - Enable support for buttons. Unique to board architecture. CONFIG_ARCH_BUTTONS - Enable support for buttons. Unique to board architecture.
CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that
cause a 100 second delay during boot-up. This 100 second delay cause a 100 second delay during boot-up. This 100 second delay
serves no purpose other than it allows you to calibratre serves no purpose other than it allows you to calibratre
CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure
the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until
the delay actually is 100 seconds. the delay actually is 100 seconds.
CONFIG_ARCH_DMA - Support DMA initialization CONFIG_ARCH_DMA - Support DMA initialization
CONFIG_ARCH_LOWVECTORS - define if vectors reside at address 0x0000:00000 CONFIG_ARCH_LOWVECTORS - define if vectors reside at address 0x0000:00000
Undefine if vectors reside at address 0xffff:0000 Undefine if vectors reside at address 0xffff:0000
CONFIG_ARCH_ROMPGTABLE - A pre-initialized, read-only page table is available. CONFIG_ARCH_ROMPGTABLE - A pre-initialized, read-only page table is available.
If defined, then board-specific logic must also define PGTABLE_BASE_PADDR, If defined, then board-specific logic must also define PGTABLE_BASE_PADDR,
PGTABLE_BASE_VADDR, and all memory section mapping in a file named PGTABLE_BASE_VADDR, and all memory section mapping in a file named
board_memorymap.h. board_memorymap.h.
Individual subsystems can be enabled: Individual subsystems can be enabled:
CONFIG_LPC31_MCI, CONFIG_LPC31_SPI, CONFIG_LPC31_UART CONFIG_LPC31_MCI, CONFIG_LPC31_SPI, CONFIG_LPC31_UART
External memory available on the board (see also CONFIG_MM_REGIONS) External memory available on the board (see also CONFIG_MM_REGIONS)
CONFIG_LPC31_EXTSRAM0 - Select if external SRAM0 is present CONFIG_LPC31_EXTSRAM0 - Select if external SRAM0 is present
CONFIG_LPC31_EXTSRAM0HEAP - Select if external SRAM0 should be CONFIG_LPC31_EXTSRAM0HEAP - Select if external SRAM0 should be
configured as part of the NuttX heap. configured as part of the NuttX heap.
CONFIG_LPC31_EXTSRAM0SIZE - Size (in bytes) of the installed CONFIG_LPC31_EXTSRAM0SIZE - Size (in bytes) of the installed
external SRAM0 memory external SRAM0 memory
CONFIG_LPC31_EXTSRAM1 - Select if external SRAM1 is present CONFIG_LPC31_EXTSRAM1 - Select if external SRAM1 is present
CONFIG_LPC31_EXTSRAM1HEAP - Select if external SRAM1 should be CONFIG_LPC31_EXTSRAM1HEAP - Select if external SRAM1 should be
configured as part of the NuttX heap. configured as part of the NuttX heap.
CONFIG_LPC31_EXTSRAM1SIZE - Size (in bytes) of the installed CONFIG_LPC31_EXTSRAM1SIZE - Size (in bytes) of the installed
external SRAM1 memory external SRAM1 memory
CONFIG_LPC31_EXTSDRAM - Select if external SDRAM is present CONFIG_LPC31_EXTSDRAM - Select if external SDRAM is present
CONFIG_LPC31_EXTSDRAMHEAP - Select if external SDRAM should be CONFIG_LPC31_EXTSDRAMHEAP - Select if external SDRAM should be
configured as part of the NuttX heap. configured as part of the NuttX heap.
CONFIG_LPC31_EXTSDRAMSIZE - Size (in bytes) of the installed CONFIG_LPC31_EXTSDRAMSIZE - Size (in bytes) of the installed
external SDRAM memory external SDRAM memory
CONFIG_LPC31_EXTNAND - Select if external NAND is present CONFIG_LPC31_EXTNAND - Select if external NAND is present
CONFIG_LPC31_EXTSDRAMSIZE - Size (in bytes) of the installed CONFIG_LPC31_EXTSDRAMSIZE - Size (in bytes) of the installed
external NAND memory external NAND memory
LPC313X specific device driver settings LPC315X specific device driver settings
CONFIG_UART_SERIAL_CONSOLE - selects the UART for the CONFIG_UART_SERIAL_CONSOLE - selects the UART for the
console and ttys0 console and ttys0
CONFIG_UART_RXBUFSIZE - Characters are buffered as received. CONFIG_UART_RXBUFSIZE - Characters are buffered as received.
This specific the size of the receive buffer This specific the size of the receive buffer
CONFIG_UART_TXBUFSIZE - Characters are buffered before CONFIG_UART_TXBUFSIZE - Characters are buffered before
being sent. This specific the size of the transmit buffer being sent. This specific the size of the transmit buffer
CONFIG_UART_BAUD - The configure BAUD of the UART. Must be CONFIG_UART_BAUD - The configure BAUD of the UART. Must be
CONFIG_UART_BITS - The number of bits. Must be either 7 or 8. CONFIG_UART_BITS - The number of bits. Must be either 7 or 8.
CONFIG_UART_PARTIY - 0=no parity, 1=odd parity, 2=even parity CONFIG_UART_PARTIY - 0=no parity, 1=odd parity, 2=even parity
CONFIG_UART_2STOP - Two stop bits CONFIG_UART_2STOP - Two stop bits
Configurations Configurations
^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^
@@ -397,10 +397,10 @@ Configurations
Each EA3152 configuration is maintained in a sudirectory and can be Each EA3152 configuration is maintained in a sudirectory and can be
selected as follow: selected as follow:
cd tools cd tools
./configure.sh ea3152/<subdir> ./configure.sh ea3152/<subdir>
cd - cd -
. ./setenv.sh . ./setenv.sh
Where <subdir> is one of the following: Where <subdir> is one of the following:
+141 -91
View File
@@ -110,8 +110,8 @@ CodeSourcery on Linux
For an example of a CodeSourcery-under-Linux Make.defs file, see For an example of a CodeSourcery-under-Linux Make.defs file, see
configs/stm3210e-eval/nsh/Make.defs. configs/stm3210e-eval/nsh/Make.defs.
NuttX buildroot Toolchain NuttX EABI "buildroot" Toolchain
^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
A GNU GCC-based toolchain is assumed. The files */setenv.sh should A GNU GCC-based toolchain is assumed. The files */setenv.sh should
be modified to point to the correct path to the Cortex-M3 GCC toolchain (if be modified to point to the correct path to the Cortex-M3 GCC toolchain (if
@@ -134,7 +134,7 @@ NuttX buildroot Toolchain
4. cd <some-dir>/buildroot 4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-4.3.3 .config 5. cp configs/cortexm3-eabi-defconfig-4.6.3 .config
6. make oldconfig 6. make oldconfig
@@ -144,9 +144,59 @@ NuttX buildroot Toolchain
the path to the newly built binaries. the path to the newly built binaries.
See the file configs/README.txt in the buildroot source tree. That has more See the file configs/README.txt in the buildroot source tree. That has more
detailed PLUS some special instructions that you will need to follow if you are details PLUS some special instructions that you will need to follow if you are
building a Cortex-M3 toolchain for Cygwin under Windows. building a Cortex-M3 toolchain for Cygwin under Windows.
NuttX OABI "buildroot" Toolchain
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The older, OABI buildroot toolchain is also available. To use the OABI
toolchain:
1. When building the buildroot toolchain, either (1) modify the cortexm3-eabi-defconfig-4.6.3
configuration to use EABI (using 'make menuconfig'), or (2) use an exising OABI
configuration such as cortexm3-defconfig-4.3.3
2. Modify the Make.defs file to use the OABI converntions:
+CROSSDEV = arm-nuttx-elf-
+ARCHCPUFLAGS = -mtune=cortex-m3 -march=armv7-m -mfloat-abi=soft
-CROSSDEV = arm-nuttx-eabi-
-ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
NXFLAT Toolchain
^^^^^^^^^^^^^^^^
If you are *not* using the NuttX buildroot toolchain and you want to use
the NXFLAT tools, then you will still have to build a portion of the buildroot
tools -- just the NXFLAT tools. The buildroot with the NXFLAT tools can
be downloaded from the NuttX SourceForge download site
(https://sourceforge.net/projects/nuttx/files/).
This GNU toolchain builds and executes in the Linux or Cygwin environment.
1. You must have already configured Nuttx in <some-dir>/nuttx.
cd tools
./configure.sh lpcxpresso-lpc1768/<sub-dir>
2. Download the latest buildroot package into <some-dir>
3. unpack the buildroot tarball. The resulting directory may
have versioning information on it like buildroot-x.y.z. If so,
rename <some-dir>/buildroot-x.y.z to <some-dir>/buildroot.
4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-nxflat .config
6. make oldconfig
7. make
8. Edit setenv.h, if necessary, so that the PATH variable includes
the path to the newly builtNXFLAT binaries.
Ethernet-Bootloader Ethernet-Bootloader
^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^
@@ -207,127 +257,127 @@ Ethernet-Bootloader
Eagle100-specific Configuration Options Eagle100-specific Configuration Options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
CONFIG_ARCH - Identifies the arch/ subdirectory. This should CONFIG_ARCH - Identifies the arch/ subdirectory. This should
be set to: be set to:
CONFIG_ARCH=arm CONFIG_ARCH=arm
CONFIG_ARCH_family - For use in C code: CONFIG_ARCH_family - For use in C code:
CONFIG_ARCH_ARM=y CONFIG_ARCH_ARM=y
CONFIG_ARCH_architecture - For use in C code: CONFIG_ARCH_architecture - For use in C code:
CONFIG_ARCH_CORTEXM3=y CONFIG_ARCH_CORTEXM3=y
CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory
CONFIG_ARCH_CHIP=lm3s CONFIG_ARCH_CHIP=lm3s
CONFIG_ARCH_CHIP_name - For use in C code to identify the exact CONFIG_ARCH_CHIP_name - For use in C code to identify the exact
chip: chip:
CONFIG_ARCH_CHIP_LM3S6918 CONFIG_ARCH_CHIP_LM3S6918
CONFIG_ARCH_BOARD - Identifies the configs subdirectory and CONFIG_ARCH_BOARD - Identifies the configs subdirectory and
hence, the board that supports the particular chip or SoC. hence, the board that supports the particular chip or SoC.
CONFIG_ARCH_BOARD=eagle100 (for the MicroMint Eagle-100 development board) CONFIG_ARCH_BOARD=eagle100 (for the MicroMint Eagle-100 development board)
CONFIG_ARCH_BOARD_name - For use in C code CONFIG_ARCH_BOARD_name - For use in C code
CONFIG_ARCH_BOARD_EAGLE100 CONFIG_ARCH_BOARD_EAGLE100
CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation
of delay loops of delay loops
CONFIG_ENDIAN_BIG - define if big endian (default is little CONFIG_ENDIAN_BIG - define if big endian (default is little
endian) endian)
CONFIG_DRAM_SIZE - Describes the installed DRAM (SRAM in this case): CONFIG_DRAM_SIZE - Describes the installed DRAM (SRAM in this case):
CONFIG_DRAM_SIZE=0x00010000 (64Kb) CONFIG_DRAM_SIZE=0x00010000 (64Kb)
CONFIG_DRAM_START - The start address of installed DRAM CONFIG_DRAM_START - The start address of installed DRAM
CONFIG_DRAM_START=0x20000000 CONFIG_DRAM_START=0x20000000
CONFIG_ARCH_IRQPRIO - The LM3S6918 supports interrupt prioritization CONFIG_ARCH_IRQPRIO - The LM3S6918 supports interrupt prioritization
CONFIG_ARCH_IRQPRIO=y CONFIG_ARCH_IRQPRIO=y
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that
have LEDs have LEDs
CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt
stack. If defined, this symbol is the size of the interrupt stack. If defined, this symbol is the size of the interrupt
stack in bytes. If not defined, the user task stacks will be stack in bytes. If not defined, the user task stacks will be
used during interrupt handling. used during interrupt handling.
CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions
CONFIG_ARCH_BOOTLOADER - Configure to use the MicroMint Eagle-100 CONFIG_ARCH_BOOTLOADER - Configure to use the MicroMint Eagle-100
Ethernet bootloader. Ethernet bootloader.
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture. CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture.
CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that
cause a 100 second delay during boot-up. This 100 second delay cause a 100 second delay during boot-up. This 100 second delay
serves no purpose other than it allows you to calibratre serves no purpose other than it allows you to calibratre
CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure
the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until
the delay actually is 100 seconds. the delay actually is 100 seconds.
There are configurations for disabling support for interrupts GPIO ports. There are configurations for disabling support for interrupts GPIO ports.
GPIOH and GPIOJ must be disabled because they do not exist on the LM3S6918. GPIOH and GPIOJ must be disabled because they do not exist on the LM3S6918.
Additional interrupt support can be disabled if desired to reduce memory Additional interrupt support can be disabled if desired to reduce memory
footprint. footprint.
CONFIG_LM3S_DISABLE_GPIOA_IRQS=n CONFIG_LM3S_DISABLE_GPIOA_IRQS=n
CONFIG_LM3S_DISABLE_GPIOB_IRQS=n CONFIG_LM3S_DISABLE_GPIOB_IRQS=n
CONFIG_LM3S_DISABLE_GPIOC_IRQS=n CONFIG_LM3S_DISABLE_GPIOC_IRQS=n
CONFIG_LM3S_DISABLE_GPIOD_IRQS=n CONFIG_LM3S_DISABLE_GPIOD_IRQS=n
CONFIG_LM3S_DISABLE_GPIOE_IRQS=n CONFIG_LM3S_DISABLE_GPIOE_IRQS=n
CONFIG_LM3S_DISABLE_GPIOF_IRQS=n CONFIG_LM3S_DISABLE_GPIOF_IRQS=n
CONFIG_LM3S_DISABLE_GPIOG_IRQS=n CONFIG_LM3S_DISABLE_GPIOG_IRQS=n
CONFIG_LM3S_DISABLE_GPIOH_IRQS=y CONFIG_LM3S_DISABLE_GPIOH_IRQS=y
CONFIG_LM3S_DISABLE_GPIOJ_IRQS=y CONFIG_LM3S_DISABLE_GPIOJ_IRQS=y
LM3S6818 specific device driver settings LM3S6818 specific device driver settings
CONFIG_UARTn_SERIAL_CONSOLE - selects the UARTn for the CONFIG_UARTn_SERIAL_CONSOLE - selects the UARTn for the
console and ttys0 (default is the UART0). console and ttys0 (default is the UART0).
CONFIG_UARTn_RXBUFSIZE - Characters are buffered as received. CONFIG_UARTn_RXBUFSIZE - Characters are buffered as received.
This specific the size of the receive buffer This specific the size of the receive buffer
CONFIG_UARTn_TXBUFSIZE - Characters are buffered before CONFIG_UARTn_TXBUFSIZE - Characters are buffered before
being sent. This specific the size of the transmit buffer being sent. This specific the size of the transmit buffer
CONFIG_UARTn_BAUD - The configure BAUD of the UART. Must be CONFIG_UARTn_BAUD - The configure BAUD of the UART. Must be
CONFIG_UARTn_BITS - The number of bits. Must be either 7 or 8. CONFIG_UARTn_BITS - The number of bits. Must be either 7 or 8.
CONFIG_UARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity CONFIG_UARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity
CONFIG_UARTn_2STOP - Two stop bits CONFIG_UARTn_2STOP - Two stop bits
CONFIG_SSI0_DISABLE - Select to disable support for SSI0 CONFIG_SSI0_DISABLE - Select to disable support for SSI0
CONFIG_SSI1_DISABLE - Select to disable support for SSI1 CONFIG_SSI1_DISABLE - Select to disable support for SSI1
CONFIG_SSI_POLLWAIT - Select to disable interrupt driven SSI support. CONFIG_SSI_POLLWAIT - Select to disable interrupt driven SSI support.
Poll-waiting is recommended if the interrupt rate would be to Poll-waiting is recommended if the interrupt rate would be to
high in the interrupt driven case. high in the interrupt driven case.
CONFIG_SSI_TXLIMIT - Write this many words to the Tx FIFO before CONFIG_SSI_TXLIMIT - Write this many words to the Tx FIFO before
emptying the Rx FIFO. If the SPI frequency is high and this emptying the Rx FIFO. If the SPI frequency is high and this
value is large, then larger values of this setting may cause value is large, then larger values of this setting may cause
Rx FIFO overrun errors. Default: half of the Tx FIFO size (4). Rx FIFO overrun errors. Default: half of the Tx FIFO size (4).
CONFIG_LM3S_ETHERNET - This must be set (along with CONFIG_NET) CONFIG_LM3S_ETHERNET - This must be set (along with CONFIG_NET)
to build the LM3S Ethernet driver to build the LM3S Ethernet driver
CONFIG_LM3S_ETHLEDS - Enable to use Ethernet LEDs on the board. CONFIG_LM3S_ETHLEDS - Enable to use Ethernet LEDs on the board.
CONFIG_LM3S_BOARDMAC - If the board-specific logic can provide CONFIG_LM3S_BOARDMAC - If the board-specific logic can provide
a MAC address (via lm3s_ethernetmac()), then this should be selected. a MAC address (via lm3s_ethernetmac()), then this should be selected.
CONFIG_LM3S_ETHHDUPLEX - Set to force half duplex operation CONFIG_LM3S_ETHHDUPLEX - Set to force half duplex operation
CONFIG_LM3S_ETHNOAUTOCRC - Set to suppress auto-CRC generation CONFIG_LM3S_ETHNOAUTOCRC - Set to suppress auto-CRC generation
CONFIG_LM3S_ETHNOPAD - Set to suppress Tx padding CONFIG_LM3S_ETHNOPAD - Set to suppress Tx padding
CONFIG_LM3S_MULTICAST - Set to enable multicast frames CONFIG_LM3S_MULTICAST - Set to enable multicast frames
CONFIG_LM3S_PROMISCUOUS - Set to enable promiscuous mode CONFIG_LM3S_PROMISCUOUS - Set to enable promiscuous mode
CONFIG_LM3S_BADCRC - Set to enable bad CRC rejection. CONFIG_LM3S_BADCRC - Set to enable bad CRC rejection.
CONFIG_LM3S_DUMPPACKET - Dump each packet received/sent to the console. CONFIG_LM3S_DUMPPACKET - Dump each packet received/sent to the console.
Configurations Configurations
^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^
@@ -335,10 +385,10 @@ Configurations
Each Eagle-100 configuration is maintained in a sudirectory and Each Eagle-100 configuration is maintained in a sudirectory and
can be selected as follow: can be selected as follow:
cd tools cd tools
./configure.sh eagle100/<subdir> ./configure.sh eagle100/<subdir>
cd - cd -
. ./setenv.sh . ./setenv.sh
Where <subdir> is one of the following: Where <subdir> is one of the following:
+55 -6
View File
@@ -10,7 +10,9 @@ Contents
Development Environment Development Environment
GNU Toolchain Options GNU Toolchain Options
IDEs IDEs
NuttX buildroot Toolchain NuttX EABI "buildroot" Toolchain
NuttX OABI "buildroot" Toolchain
NXFLAT Toolchain
Stellaris EKK-LM3S9B96 Evaluation Kit Configuration Options Stellaris EKK-LM3S9B96 Evaluation Kit Configuration Options
Configurations Configurations
@@ -186,8 +188,8 @@ IDEs
Startup files will probably cause you some headaches. The NuttX startup file Startup files will probably cause you some headaches. The NuttX startup file
is arch/arm/src/lm3s/lm3s_vectors.S. is arch/arm/src/lm3s/lm3s_vectors.S.
NuttX buildroot Toolchain NuttX EABI "buildroot" Toolchain
^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
A GNU GCC-based toolchain is assumed. The files */setenv.sh should A GNU GCC-based toolchain is assumed. The files */setenv.sh should
be modified to point to the correct path to the Cortex-M3 GCC toolchain (if be modified to point to the correct path to the Cortex-M3 GCC toolchain (if
@@ -210,7 +212,7 @@ NuttX buildroot Toolchain
4. cd <some-dir>/buildroot 4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-4.3.3 .config 5. cp configs/cortexm3-eabi-defconfig-4.6.3 .config
6. make oldconfig 6. make oldconfig
@@ -220,11 +222,58 @@ NuttX buildroot Toolchain
the path to the newly built binaries. the path to the newly built binaries.
See the file configs/README.txt in the buildroot source tree. That has more See the file configs/README.txt in the buildroot source tree. That has more
detailed PLUS some special instructions that you will need to follow if you details PLUS some special instructions that you will need to follow if you
are building a Cortex-M3 toolchain for Cygwin under Windows. are building a Cortex-M3 toolchain for Cygwin under Windows.
NOTE: This is an OABI toolchain. NuttX OABI "buildroot" Toolchain
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The older, OABI buildroot toolchain is also available. To use the OABI
toolchain:
1. When building the buildroot toolchain, either (1) modify the cortexm3-eabi-defconfig-4.6.3
configuration to use EABI (using 'make menuconfig'), or (2) use an exising OABI
configuration such as cortexm3-defconfig-4.3.3
2. Modify the Make.defs file to use the OABI converntions:
+CROSSDEV = arm-nuttx-elf-
+ARCHCPUFLAGS = -mtune=cortex-m3 -march=armv7-m -mfloat-abi=soft
-CROSSDEV = arm-nuttx-eabi-
-ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
NXFLAT Toolchain
^^^^^^^^^^^^^^^^
If you are *not* using the NuttX buildroot toolchain and you want to use
the NXFLAT tools, then you will still have to build a portion of the buildroot
tools -- just the NXFLAT tools. The buildroot with the NXFLAT tools can
be downloaded from the NuttX SourceForge download site
(https://sourceforge.net/projects/nuttx/files/).
This GNU toolchain builds and executes in the Linux or Cygwin environment.
1. You must have already configured Nuttx in <some-dir>/nuttx.
cd tools
./configure.sh lpcxpresso-lpc1768/<sub-dir>
2. Download the latest buildroot package into <some-dir>
3. unpack the buildroot tarball. The resulting directory may
have versioning information on it like buildroot-x.y.z. If so,
rename <some-dir>/buildroot-x.y.z to <some-dir>/buildroot.
4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-nxflat .config
6. make oldconfig
7. make
8. Edit setenv.h, if necessary, so that the PATH variable includes
the path to the newly builtNXFLAT binaries.
Stellaris EKK-LM3S9B96 Evaluation Kit Configuration Options Stellaris EKK-LM3S9B96 Evaluation Kit Configuration Options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+57 -5
View File
@@ -15,7 +15,9 @@ Contents
- Development Environment - Development Environment
- GNU Toolchain Options - GNU Toolchain Options
- IDEs - IDEs
- NuttX buildroot Toolchain - NuttX EABI "buildroot" Toolchain
- NuttX OABI "buildroot" Toolchain
- NXFLAT Toolchain
- DFU and JTAG - DFU and JTAG
- OpenOCD - OpenOCD
- LEDs - LEDs
@@ -308,8 +310,8 @@ IDEs
one time from the Cygwin command line in order to obtain the pre-built one time from the Cygwin command line in order to obtain the pre-built
startup object needed by RIDE. startup object needed by RIDE.
NuttX buildroot Toolchain NuttX EABI "buildroot" Toolchain
========================= ================================
A GNU GCC-based toolchain is assumed. The files */setenv.sh should A GNU GCC-based toolchain is assumed. The files */setenv.sh should
be modified to point to the correct path to the Cortex-M3 GCC toolchain (if be modified to point to the correct path to the Cortex-M3 GCC toolchain (if
@@ -332,7 +334,7 @@ NuttX buildroot Toolchain
4. cd <some-dir>/buildroot 4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-4.3.3 .config 5. cp configs/cortexm3-eabi-defconfig-4.6.3 .config
6. make oldconfig 6. make oldconfig
@@ -342,9 +344,59 @@ NuttX buildroot Toolchain
the path to the newly built binaries. the path to the newly built binaries.
See the file configs/README.txt in the buildroot source tree. That has more See the file configs/README.txt in the buildroot source tree. That has more
detailed PLUS some special instructions that you will need to follow if you are details PLUS some special instructions that you will need to follow if you are
building a Cortex-M3 toolchain for Cygwin under Windows. building a Cortex-M3 toolchain for Cygwin under Windows.
NuttX OABI "buildroot" Toolchain
================================
The older, OABI buildroot toolchain is also available. To use the OABI
toolchain:
1. When building the buildroot toolchain, either (1) modify the cortexm3-eabi-defconfig-4.6.3
configuration to use EABI (using 'make menuconfig'), or (2) use an exising OABI
configuration such as cortexm3-defconfig-4.3.3
2. Modify the Make.defs file to use the OABI converntions:
+CROSSDEV = arm-nuttx-elf-
+ARCHCPUFLAGS = -mtune=cortex-m3 -march=armv7-m -mfloat-abi=soft
-CROSSDEV = arm-nuttx-eabi-
-ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
NXFLAT Toolchain
================
If you are *not* using the NuttX buildroot toolchain and you want to use
the NXFLAT tools, then you will still have to build a portion of the buildroot
tools -- just the NXFLAT tools. The buildroot with the NXFLAT tools can
be downloaded from the NuttX SourceForge download site
(https://sourceforge.net/projects/nuttx/files/).
This GNU toolchain builds and executes in the Linux or Cygwin environment.
1. You must have already configured Nuttx in <some-dir>/nuttx.
cd tools
./configure.sh lpcxpresso-lpc1768/<sub-dir>
2. Download the latest buildroot package into <some-dir>
3. unpack the buildroot tarball. The resulting directory may
have versioning information on it like buildroot-x.y.z. If so,
rename <some-dir>/buildroot-x.y.z to <some-dir>/buildroot.
4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-nxflat .config
6. make oldconfig
7. make
8. Edit setenv.h, if necessary, so that the PATH variable includes
the path to the newly builtNXFLAT binaries.
DFU and JTAG DFU and JTAG
============ ============
+217 -165
View File
@@ -10,7 +10,9 @@ Contents
- Development Environment - Development Environment
- GNU Toolchain Options - GNU Toolchain Options
- IDEs - IDEs
- NuttX buildroot Toolchain - NuttX EABI "buildroot" Toolchain
- NuttX OABI "buildroot" Toolchain
- NXFLAT Toolchain
- DFU - DFU
- LEDs - LEDs
- RTC - RTC
@@ -47,7 +49,7 @@ GNU Toolchain Options
CONFIG_STM32_CODESOURCERYL=y : CodeSourcery under Linux CONFIG_STM32_CODESOURCERYL=y : CodeSourcery under Linux
CONFIG_STM32_DEVKITARM=y : devkitARM under Windows CONFIG_STM32_DEVKITARM=y : devkitARM under Windows
CONFIG_STM32_RAISONANCE=y : Raisonance RIDE7 under Windows CONFIG_STM32_RAISONANCE=y : Raisonance RIDE7 under Windows
CONFIG_STM32_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default) CONFIG_STM32_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default)
If you are not using CONFIG_STM32_BUILDROOT, then you may also have to modify If you are not using CONFIG_STM32_BUILDROOT, then you may also have to modify
the PATH in the setenv.h file if your make cannot find the tools. the PATH in the setenv.h file if your make cannot find the tools.
@@ -128,8 +130,8 @@ IDEs
one time from the Cygwin command line in order to obtain the pre-built one time from the Cygwin command line in order to obtain the pre-built
startup object needed by RIDE. startup object needed by RIDE.
NuttX buildroot Toolchain NuttX EABI "buildroot" Toolchain
========================= ================================
A GNU GCC-based toolchain is assumed. The files */setenv.sh should A GNU GCC-based toolchain is assumed. The files */setenv.sh should
be modified to point to the correct path to the Cortex-M3 GCC toolchain (if be modified to point to the correct path to the Cortex-M3 GCC toolchain (if
@@ -152,7 +154,7 @@ NuttX buildroot Toolchain
4. cd <some-dir>/buildroot 4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-4.3.3 .config 5. cp configs/cortexm3-eabi-defconfig-4.6.3 .config
6. make oldconfig 6. make oldconfig
@@ -162,9 +164,59 @@ NuttX buildroot Toolchain
the path to the newly built binaries. the path to the newly built binaries.
See the file configs/README.txt in the buildroot source tree. That has more See the file configs/README.txt in the buildroot source tree. That has more
detailed PLUS some special instructions that you will need to follow if you are details PLUS some special instructions that you will need to follow if you are
building a Cortex-M3 toolchain for Cygwin under Windows. building a Cortex-M3 toolchain for Cygwin under Windows.
NuttX OABI "buildroot" Toolchain
================================
The older, OABI buildroot toolchain is also available. To use the OABI
toolchain:
1. When building the buildroot toolchain, either (1) modify the cortexm3-eabi-defconfig-4.6.3
configuration to use EABI (using 'make menuconfig'), or (2) use an exising OABI
configuration such as cortexm3-defconfig-4.3.3
2. Modify the Make.defs file to use the OABI converntions:
+CROSSDEV = arm-nuttx-elf-
+ARCHCPUFLAGS = -mtune=cortex-m3 -march=armv7-m -mfloat-abi=soft
-CROSSDEV = arm-nuttx-eabi-
-ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
NXFLAT Toolchain
================
If you are *not* using the NuttX buildroot toolchain and you want to use
the NXFLAT tools, then you will still have to build a portion of the buildroot
tools -- just the NXFLAT tools. The buildroot with the NXFLAT tools can
be downloaded from the NuttX SourceForge download site
(https://sourceforge.net/projects/nuttx/files/).
This GNU toolchain builds and executes in the Linux or Cygwin environment.
1. You must have already configured Nuttx in <some-dir>/nuttx.
cd tools
./configure.sh lpcxpresso-lpc1768/<sub-dir>
2. Download the latest buildroot package into <some-dir>
3. unpack the buildroot tarball. The resulting directory may
have versioning information on it like buildroot-x.y.z. If so,
rename <some-dir>/buildroot-x.y.z to <some-dir>/buildroot.
4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-nxflat .config
6. make oldconfig
7. make
8. Edit setenv.h, if necessary, so that the PATH variable includes
the path to the newly builtNXFLAT binaries.
DFU DFU
=== ===
@@ -218,16 +270,16 @@ The HY-MiniSTM32 board provides only two controlable LEDs labeled LED1 and LED2.
Usage of these LEDs is defined in include/board.h and src/up_leds.c. Usage of these LEDs is defined in include/board.h and src/up_leds.c.
They are encoded as follows: They are encoded as follows:
SYMBOL Meaning LED1* LED2 SYMBOL Meaning LED1* LED2
------------------- ----------------------- ------- ------- ------------------- ----------------------- ------- -------
LED_STARTED NuttX has been started OFF OFF LED_STARTED NuttX has been started OFF OFF
LED_HEAPALLOCATE Heap has been allocated ON OFF LED_HEAPALLOCATE Heap has been allocated ON OFF
LED_IRQSENABLED Interrupts enabled OFF ON LED_IRQSENABLED Interrupts enabled OFF ON
LED_STACKCREATED Idle stack created ON OFF LED_STACKCREATED Idle stack created ON OFF
LED_INIRQ In an interrupt** OFF N/C LED_INIRQ In an interrupt** OFF N/C
LED_SIGNAL In a signal handler*** N/C ON LED_SIGNAL In a signal handler*** N/C ON
LED_ASSERTION An assertion failed ON ON LED_ASSERTION An assertion failed ON ON
LED_PANIC The system has crashed BLINK BLINK LED_PANIC The system has crashed BLINK BLINK
LED_IDLE STM32 is is sleep mode (Optional, not used) LED_IDLE STM32 is is sleep mode (Optional, not used)
* If Nuttx starts correctly, normal state is to have LED1 on and LED2 off. * If Nuttx starts correctly, normal state is to have LED1 on and LED2 off.
@@ -269,123 +321,123 @@ RTC
HY-Mini specific Configuration Options HY-Mini specific Configuration Options
============================================ ============================================
CONFIG_ARCH - Identifies the arch/ subdirectory. This should CONFIG_ARCH - Identifies the arch/ subdirectory. This should
be set to: be set to:
CONFIG_ARCH=arm CONFIG_ARCH=arm
CONFIG_ARCH_family - For use in C code: CONFIG_ARCH_family - For use in C code:
CONFIG_ARCH_ARM=y CONFIG_ARCH_ARM=y
CONFIG_ARCH_architecture - For use in C code: CONFIG_ARCH_architecture - For use in C code:
CONFIG_ARCH_CORTEXM3=y CONFIG_ARCH_CORTEXM3=y
CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory
CONFIG_ARCH_CHIP=stm32 CONFIG_ARCH_CHIP=stm32
CONFIG_ARCH_CHIP_name - For use in C code to identify the exact CONFIG_ARCH_CHIP_name - For use in C code to identify the exact
chip: chip:
CONFIG_ARCH_CHIP_STM32F103VCT6 CONFIG_ARCH_CHIP_STM32F103VCT6
CONFIG_ARCH_BOARD_STM32_CUSTOM_CLOCKCONFIG - Enables special STM32 clock CONFIG_ARCH_BOARD_STM32_CUSTOM_CLOCKCONFIG - Enables special STM32 clock
configuration features. configuration features.
CONFIG_ARCH_BOARD_STM32_CUSTOM_CLOCKCONFIG=n CONFIG_ARCH_BOARD_STM32_CUSTOM_CLOCKCONFIG=n
CONFIG_ARCH_BOARD - Identifies the configs subdirectory and CONFIG_ARCH_BOARD - Identifies the configs subdirectory and
hence, the board that supports the particular chip or SoC. hence, the board that supports the particular chip or SoC.
CONFIG_ARCH_BOARD=hymini-stm32v (for the HY-Mini development board) CONFIG_ARCH_BOARD=hymini-stm32v (for the HY-Mini development board)
CONFIG_ARCH_BOARD_name - For use in C code CONFIG_ARCH_BOARD_name - For use in C code
CONFIG_ARCH_BOARD_HYMINI_STM32V=y CONFIG_ARCH_BOARD_HYMINI_STM32V=y
CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation
of delay loops of delay loops
CONFIG_ENDIAN_BIG - define if big endian (default is little CONFIG_ENDIAN_BIG - define if big endian (default is little
endian) endian)
CONFIG_DRAM_SIZE - Describes the installed DRAM (SRAM in this case): CONFIG_DRAM_SIZE - Describes the installed DRAM (SRAM in this case):
CONFIG_DRAM_SIZE=0x0000C000 (48Kb) CONFIG_DRAM_SIZE=0x0000C000 (48Kb)
CONFIG_DRAM_START - The start address of installed DRAM CONFIG_DRAM_START - The start address of installed DRAM
CONFIG_DRAM_START=0x20000000 CONFIG_DRAM_START=0x20000000
CONFIG_ARCH_IRQPRIO - The STM32F103V supports interrupt prioritization CONFIG_ARCH_IRQPRIO - The STM32F103V supports interrupt prioritization
CONFIG_ARCH_IRQPRIO=y CONFIG_ARCH_IRQPRIO=y
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that
have LEDs have LEDs
CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt
stack. If defined, this symbol is the size of the interrupt stack. If defined, this symbol is the size of the interrupt
stack in bytes. If not defined, the user task stacks will be stack in bytes. If not defined, the user task stacks will be
used during interrupt handling. used during interrupt handling.
CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture. CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture.
CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that
cause a 100 second delay during boot-up. This 100 second delay cause a 100 second delay during boot-up. This 100 second delay
serves no purpose other than it allows you to calibratre serves no purpose other than it allows you to calibratre
CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure
the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until
the delay actually is 100 seconds. the delay actually is 100 seconds.
Individual subsystems can be enabled: Individual subsystems can be enabled:
AHB AHB
--- ---
CONFIG_STM32_DMA1 CONFIG_STM32_DMA1
CONFIG_STM32_DMA2 CONFIG_STM32_DMA2
CONFIG_STM32_CRC CONFIG_STM32_CRC
CONFIG_STM32_FSMC CONFIG_STM32_FSMC
CONFIG_STM32_SDIO CONFIG_STM32_SDIO
APB1 APB1
---- ----
CONFIG_STM32_TIM2 CONFIG_STM32_TIM2
CONFIG_STM32_TIM3 (required for PWM control of LCD backlight) CONFIG_STM32_TIM3 (required for PWM control of LCD backlight)
CONFIG_STM32_TIM4 CONFIG_STM32_TIM4
CONFIG_STM32_TIM5 CONFIG_STM32_TIM5
CONFIG_STM32_TIM6 CONFIG_STM32_TIM6
CONFIG_STM32_TIM7 CONFIG_STM32_TIM7
CONFIG_STM32_IWDG CONFIG_STM32_IWDG
CONFIG_STM32_WWDG CONFIG_STM32_WWDG
CONFIG_STM32_IWDG CONFIG_STM32_IWDG
CONFIG_STM32_SPI2 CONFIG_STM32_SPI2
CONFIG_STM32_SPI4 CONFIG_STM32_SPI4
CONFIG_STM32_USART2 CONFIG_STM32_USART2
CONFIG_STM32_USART3 CONFIG_STM32_USART3
CONFIG_STM32_UART4 CONFIG_STM32_UART4
CONFIG_STM32_UART5 CONFIG_STM32_UART5
CONFIG_STM32_I2C1 CONFIG_STM32_I2C1
CONFIG_STM32_I2C2 CONFIG_STM32_I2C2
CONFIG_STM32_USB CONFIG_STM32_USB
CONFIG_STM32_CAN1 CONFIG_STM32_CAN1
CONFIG_STM32_BKP CONFIG_STM32_BKP
CONFIG_STM32_PWR CONFIG_STM32_PWR
CONFIG_STM32_DAC CONFIG_STM32_DAC
CONFIG_STM32_USB CONFIG_STM32_USB
APB2 APB2
---- ----
CONFIG_STM32_ADC1 CONFIG_STM32_ADC1
CONFIG_STM32_ADC2 CONFIG_STM32_ADC2
CONFIG_STM32_TIM1 CONFIG_STM32_TIM1
CONFIG_STM32_SPI1 CONFIG_STM32_SPI1
CONFIG_STM32_TIM8 CONFIG_STM32_TIM8
CONFIG_STM32_USART1 CONFIG_STM32_USART1
CONFIG_STM32_ADC3 CONFIG_STM32_ADC3
Timer and I2C devices may need to the following to force power to be applied Timer and I2C devices may need to the following to force power to be applied
unconditionally at power up. (Otherwise, the device is powered when it is unconditionally at power up. (Otherwise, the device is powered when it is
@@ -405,84 +457,84 @@ HY-Mini specific Configuration Options
to assign the timer (n) for used by the ADC or DAC, but then you also have to to assign the timer (n) for used by the ADC or DAC, but then you also have to
configure which ADC or DAC (m) it is assigned to. configure which ADC or DAC (m) it is assigned to.
CONFIG_STM32_TIMn_PWM Reserve timer n for use by PWM, n=1,..,8 CONFIG_STM32_TIMn_PWM Reserve timer n for use by PWM, n=1,..,8
CONFIG_STM32_TIMn_ADC Reserve timer n for use by ADC, n=1,..,8 CONFIG_STM32_TIMn_ADC Reserve timer n for use by ADC, n=1,..,8
CONFIG_STM32_TIMn_ADCm Reserve timer n to trigger ADCm, n=1,..,8, m=1,..,3 CONFIG_STM32_TIMn_ADCm Reserve timer n to trigger ADCm, n=1,..,8, m=1,..,3
CONFIG_STM32_TIMn_DAC Reserve timer n for use by DAC, n=1,..,8 CONFIG_STM32_TIMn_DAC Reserve timer n for use by DAC, n=1,..,8
CONFIG_STM32_TIMn_DACm Reserve timer n to trigger DACm, n=1,..,8, m=1,..,2 CONFIG_STM32_TIMn_DACm Reserve timer n to trigger DACm, n=1,..,8, m=1,..,2
Others alternate pin mappings available: Others alternate pin mappings available:
CONFIG_STM32_TIM1_FULL_REMAP CONFIG_STM32_TIM1_FULL_REMAP
CONFIG_STM32_TIM1_PARTIAL_REMAP CONFIG_STM32_TIM1_PARTIAL_REMAP
CONFIG_STM32_TIM2_FULL_REMAP CONFIG_STM32_TIM2_FULL_REMAP
CONFIG_STM32_TIM2_PARTIAL_REMAP_1 CONFIG_STM32_TIM2_PARTIAL_REMAP_1
CONFIG_STM32_TIM2_PARTIAL_REMAP_2 CONFIG_STM32_TIM2_PARTIAL_REMAP_2
CONFIG_STM32_TIM3_FULL_REMAP CONFIG_STM32_TIM3_FULL_REMAP
CONFIG_STM32_TIM3_PARTIAL_REMAP CONFIG_STM32_TIM3_PARTIAL_REMAP
CONFIG_STM32_TIM4_REMAP CONFIG_STM32_TIM4_REMAP
CONFIG_STM32_USART1_REMAP CONFIG_STM32_USART1_REMAP
CONFIG_STM32_USART2_REMAP CONFIG_STM32_USART2_REMAP
CONFIG_STM32_USART3_FULL_REMAP CONFIG_STM32_USART3_FULL_REMAP
CONFIG_STM32_USART3_PARTIAL_REMAP CONFIG_STM32_USART3_PARTIAL_REMAP
CONFIG_STM32_SPI1_REMAP CONFIG_STM32_SPI1_REMAP
CONFIG_STM32_SPI3_REMAP CONFIG_STM32_SPI3_REMAP
CONFIG_STM32_I2C1_REMAP CONFIG_STM32_I2C1_REMAP
CONFIG_STM32_CAN1_REMAP1 CONFIG_STM32_CAN1_REMAP1
CONFIG_STM32_CAN1_REMAP2 CONFIG_STM32_CAN1_REMAP2
CONFIG_STM32_CAN2_REMAP CONFIG_STM32_CAN2_REMAP
STM32F103V specific device driver settings STM32F103V specific device driver settings
CONFIG_U[S]ARTn_SERIAL_CONSOLE - selects the USARTn (n=1,2,3) or UART CONFIG_U[S]ARTn_SERIAL_CONSOLE - selects the USARTn (n=1,2,3) or UART
m (m=4,5) for the console and ttys0 (default is the USART1). m (m=4,5) for the console and ttys0 (default is the USART1).
Note: USART1 is connected to a PL2303 serial to USB converter. Note: USART1 is connected to a PL2303 serial to USB converter.
So USART1 is available through USB port labeled CN3 on the board. So USART1 is available through USB port labeled CN3 on the board.
CONFIG_U[S]ARTn_RXBUFSIZE - Characters are buffered as received. CONFIG_U[S]ARTn_RXBUFSIZE - Characters are buffered as received.
This specific the size of the receive buffer This specific the size of the receive buffer
CONFIG_U[S]ARTn_TXBUFSIZE - Characters are buffered before CONFIG_U[S]ARTn_TXBUFSIZE - Characters are buffered before
being sent. This specific the size of the transmit buffer being sent. This specific the size of the transmit buffer
CONFIG_U[S]ARTn_BAUD - The configure BAUD of the UART. Must be CONFIG_U[S]ARTn_BAUD - The configure BAUD of the UART. Must be
CONFIG_U[S]ARTn_BITS - The number of bits. Must be either 7 or 8. CONFIG_U[S]ARTn_BITS - The number of bits. Must be either 7 or 8.
CONFIG_U[S]ARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity CONFIG_U[S]ARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity
CONFIG_U[S]ARTn_2STOP - Two stop bits CONFIG_U[S]ARTn_2STOP - Two stop bits
CONFIG_STM32_SPI_INTERRUPTS - Select to enable interrupt driven SPI CONFIG_STM32_SPI_INTERRUPTS - Select to enable interrupt driven SPI
support. Non-interrupt-driven, poll-waiting is recommended if the support. Non-interrupt-driven, poll-waiting is recommended if the
interrupt rate would be to high in the interrupt driven case. interrupt rate would be to high in the interrupt driven case.
CONFIG_STM32_SPI_DMA - Use DMA to improve SPI transfer performance. CONFIG_STM32_SPI_DMA - Use DMA to improve SPI transfer performance.
Cannot be used with CONFIG_STM32_SPI_INTERRUPT. Cannot be used with CONFIG_STM32_SPI_INTERRUPT.
CONFIG_SDIO_DMA - Support DMA data transfers. Requires CONFIG_STM32_SDIO CONFIG_SDIO_DMA - Support DMA data transfers. Requires CONFIG_STM32_SDIO
and CONFIG_STM32_DMA2. and CONFIG_STM32_DMA2.
CONFIG_SDIO_PRI - Select SDIO interrupt prority. Default: 128 CONFIG_SDIO_PRI - Select SDIO interrupt prority. Default: 128
CONFIG_SDIO_DMAPRIO - Select SDIO DMA interrupt priority. CONFIG_SDIO_DMAPRIO - Select SDIO DMA interrupt priority.
Default: Medium Default: Medium
CONFIG_SDIO_WIDTH_D1_ONLY - Select 1-bit transfer mode. Default: CONFIG_SDIO_WIDTH_D1_ONLY - Select 1-bit transfer mode. Default:
4-bit transfer mode. 4-bit transfer mode.
CONFIG_MMCSD_HAVECARDDETECT - Select if SDIO driver card detection CONFIG_MMCSD_HAVECARDDETECT - Select if SDIO driver card detection
is 100% accurate (it is on the HY-MiniSTM32V) is 100% accurate (it is on the HY-MiniSTM32V)
HY-MiniSTM32V CAN Configuration HY-MiniSTM32V CAN Configuration
CONFIG_CAN - Enables CAN support (one or both of CONFIG_STM32_CAN1 or CONFIG_CAN - Enables CAN support (one or both of CONFIG_STM32_CAN1 or
CONFIG_STM32_CAN2 must also be defined) CONFIG_STM32_CAN2 must also be defined)
CONFIG_CAN_EXTID - Enables support for the 29-bit extended ID. Default CONFIG_CAN_EXTID - Enables support for the 29-bit extended ID. Default
Standard 11-bit IDs. Standard 11-bit IDs.
CONFIG_CAN_FIFOSIZE - The size of the circular buffer of CAN messages. CONFIG_CAN_FIFOSIZE - The size of the circular buffer of CAN messages.
Default: 8 Default: 8
CONFIG_CAN_NPENDINGRTR - The size of the list of pending RTR requests. CONFIG_CAN_NPENDINGRTR - The size of the list of pending RTR requests.
Default: 4 Default: 4
CONFIG_CAN_LOOPBACK - A CAN driver may or may not support a loopback CONFIG_CAN_LOOPBACK - A CAN driver may or may not support a loopback
mode for testing. The STM32 CAN driver does support loopback mode. mode for testing. The STM32 CAN driver does support loopback mode.
CONFIG_CAN1_BAUD - CAN1 BAUD rate. Required if CONFIG_STM32_CAN1 is defined. CONFIG_CAN1_BAUD - CAN1 BAUD rate. Required if CONFIG_STM32_CAN1 is defined.
CONFIG_CAN2_BAUD - CAN1 BAUD rate. Required if CONFIG_STM32_CAN2 is defined. CONFIG_CAN2_BAUD - CAN1 BAUD rate. Required if CONFIG_STM32_CAN2 is defined.
CONFIG_CAN_TSEG1 - The number of CAN time quanta in segment 1. Default: 6 CONFIG_CAN_TSEG1 - The number of CAN time quanta in segment 1. Default: 6
CONFIG_CAN_TSEG2 - the number of CAN time quanta in segment 2. Default: 7 CONFIG_CAN_TSEG2 - the number of CAN time quanta in segment 2. Default: 7
CONFIG_CAN_REGDEBUG - If CONFIG_DEBUG is set, this will generate an CONFIG_CAN_REGDEBUG - If CONFIG_DEBUG is set, this will generate an
dump of all CAN registers. dump of all CAN registers.
HY-MiniSTM32V LCD Hardware Configuration (SSD1289 controler) HY-MiniSTM32V LCD Hardware Configuration (SSD1289 controler)
@@ -510,10 +562,10 @@ Configurations
Each HY-MiniSTM32V configuration is maintained in a sudirectory and Each HY-MiniSTM32V configuration is maintained in a sudirectory and
can be selected as follow: can be selected as follow:
cd tools cd tools
./configure.sh hymini-stm32v/<subdir> ./configure.sh hymini-stm32v/<subdir>
cd - cd -
. ./setenv.sh . ./setenv.sh
Where <subdir> is one of the following: Where <subdir> is one of the following:
@@ -547,10 +599,10 @@ Where <subdir> is one of the following:
FAT FS CONFIG_FAT_LCNAME=y CONFIG_FAT_LCNAME=y FAT FS CONFIG_FAT_LCNAME=y CONFIG_FAT_LCNAME=y
Config CONFIG_FAT_LFN=n CONFIG_FAT_LFN=y (4) Config CONFIG_FAT_LFN=n CONFIG_FAT_LFN=y (4)
----------- ----------------------- -------------------------------- ----------- ----------------------- --------------------------------
LCD Driver No Yes LCD Driver No Yes
Support Support
----------- ----------------------- -------------------------------- ----------- ----------------------- --------------------------------
RTC Support No Yes RTC Support No Yes
----------- ----------------------- -------------------------------- ----------- ----------------------- --------------------------------
Support for No Yes Support for No Yes
Built-in Built-in
+123 -72
View File
@@ -22,7 +22,9 @@ Contents
o Development Environment o Development Environment
o GNU Toolchain Options o GNU Toolchain Options
o IDEs o IDEs
o NuttX buildroot Toolchain o NuttX EABI "buildroot" Toolchain
o NuttX OABI "buildroot" Toolchain
o NXFLAT Toolchain
Kinetis KwikStik-K40 Features: Kinetis KwikStik-K40 Features:
============================== ==============================
@@ -171,7 +173,7 @@ GNU Toolchain Options
CONFIG_KINETIS_CODESOURCERYW=y : CodeSourcery under Windows CONFIG_KINETIS_CODESOURCERYW=y : CodeSourcery under Windows
CONFIG_KINETIS_CODESOURCERYL=y : CodeSourcery under Linux CONFIG_KINETIS_CODESOURCERYL=y : CodeSourcery under Linux
CONFIG_KINETIS_DEVKITARM=y : devkitARM under Windows CONFIG_KINETIS_DEVKITARM=y : devkitARM under Windows
CONFIG_KINETIS_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default) CONFIG_KINETIS_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default)
If you are not using CONFIG_KINETIS_BUILDROOT, then you may also have to modify If you are not using CONFIG_KINETIS_BUILDROOT, then you may also have to modify
the PATH in the setenv.h file if your make cannot find the tools. the PATH in the setenv.h file if your make cannot find the tools.
@@ -249,8 +251,8 @@ IDEs
Startup files will probably cause you some headaches. The NuttX startup file Startup files will probably cause you some headaches. The NuttX startup file
is arch/arm/src/kinetis/k40_vectors.S. is arch/arm/src/kinetis/k40_vectors.S.
NuttX buildroot Toolchain NuttX EABI "buildroot" Toolchain
========================= ================================
A GNU GCC-based toolchain is assumed. The files */setenv.sh should A GNU GCC-based toolchain is assumed. The files */setenv.sh should
be modified to point to the correct path to the Cortex-M4 GCC toolchain (if be modified to point to the correct path to the Cortex-M4 GCC toolchain (if
@@ -260,8 +262,7 @@ NuttX buildroot Toolchain
SourceForge download site (https://sourceforge.net/projects/nuttx/files/buildroot/). SourceForge download site (https://sourceforge.net/projects/nuttx/files/buildroot/).
This GNU toolchain builds and executes in the Linux or Cygwin environment. This GNU toolchain builds and executes in the Linux or Cygwin environment.
NOTE: The NuttX toolchain is an OABI toolchain (vs. the more common EABI) NOTE: The NuttX toolchain may not include optimizations for Cortex-M4 (ARMv7E-M).
and does not include optimizations for Cortex-M4 (ARMv7E-M).
1. You must have already configured Nuttx in <some-dir>/nuttx. 1. You must have already configured Nuttx in <some-dir>/nuttx.
@@ -276,7 +277,7 @@ NuttX buildroot Toolchain
4. cd <some-dir>/buildroot 4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-4.3.3 .config 5. cp configs/cortexm3-eabi-defconfig-4.6.3 .config
6. make oldconfig 6. make oldconfig
@@ -286,92 +287,142 @@ NuttX buildroot Toolchain
the path to the newly built binaries. the path to the newly built binaries.
See the file configs/README.txt in the buildroot source tree. That has more See the file configs/README.txt in the buildroot source tree. That has more
detailed PLUS some special instructions that you will need to follow if you are details PLUS some special instructions that you will need to follow if you are
building a Cortex-M4 toolchain for Cygwin under Windows. building a Cortex-M4 toolchain for Cygwin under Windows.
NuttX OABI "buildroot" Toolchain
================================
The older, OABI buildroot toolchain is also available. To use the OABI
toolchain:
1. When building the buildroot toolchain, either (1) modify the cortexm3-eabi-defconfig-4.6.3
configuration to use EABI (using 'make menuconfig'), or (2) use an exising OABI
configuration such as cortexm3-defconfig-4.3.3
2. Modify the Make.defs file to use the OABI converntions:
+CROSSDEV = arm-nuttx-elf-
+ARCHCPUFLAGS = -mtune=cortex-m3 -march=armv7-m -mfloat-abi=soft
-CROSSDEV = arm-nuttx-eabi-
-ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
NXFLAT Toolchain
================
If you are *not* using the NuttX buildroot toolchain and you want to use
the NXFLAT tools, then you will still have to build a portion of the buildroot
tools -- just the NXFLAT tools. The buildroot with the NXFLAT tools can
be downloaded from the NuttX SourceForge download site
(https://sourceforge.net/projects/nuttx/files/).
This GNU toolchain builds and executes in the Linux or Cygwin environment.
1. You must have already configured Nuttx in <some-dir>/nuttx.
cd tools
./configure.sh lpcxpresso-lpc1768/<sub-dir>
2. Download the latest buildroot package into <some-dir>
3. unpack the buildroot tarball. The resulting directory may
have versioning information on it like buildroot-x.y.z. If so,
rename <some-dir>/buildroot-x.y.z to <some-dir>/buildroot.
4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-nxflat .config
6. make oldconfig
7. make
8. Edit setenv.h, if necessary, so that the PATH variable includes
the path to the newly builtNXFLAT binaries.
KwikStik-K40-specific Configuration Options KwikStik-K40-specific Configuration Options
============================================ ============================================
CONFIG_ARCH - Identifies the arch/ subdirectory. This sould CONFIG_ARCH - Identifies the arch/ subdirectory. This sould
be set to: be set to:
CONFIG_ARCH=arm CONFIG_ARCH=arm
CONFIG_ARCH_family - For use in C code: CONFIG_ARCH_family - For use in C code:
CONFIG_ARCH_ARM=y CONFIG_ARCH_ARM=y
CONFIG_ARCH_architecture - For use in C code: CONFIG_ARCH_architecture - For use in C code:
CONFIG_ARCH_CORTEXM4=y CONFIG_ARCH_CORTEXM4=y
CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory
CONFIG_ARCH_CHIP=k40 CONFIG_ARCH_CHIP=k40
CONFIG_ARCH_CHIP_name - For use in C code to identify the exact CONFIG_ARCH_CHIP_name - For use in C code to identify the exact
chip: chip:
CONFIG_ARCH_CHIP_MK40X256VLQ100 CONFIG_ARCH_CHIP_MK40X256VLQ100
CONFIG_ARCH_BOARD - Identifies the configs subdirectory and CONFIG_ARCH_BOARD - Identifies the configs subdirectory and
hence, the board that supports the particular chip or SoC. hence, the board that supports the particular chip or SoC.
CONFIG_ARCH_BOARD=kwikstik-k40 (for the KwikStik-K40 development board) CONFIG_ARCH_BOARD=kwikstik-k40 (for the KwikStik-K40 development board)
CONFIG_ARCH_BOARD_name - For use in C code CONFIG_ARCH_BOARD_name - For use in C code
CONFIG_ARCH_BOARD_KWIKSTIK_K40=y CONFIG_ARCH_BOARD_KWIKSTIK_K40=y
CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation
of delay loops of delay loops
CONFIG_ENDIAN_BIG - define if big endian (default is little CONFIG_ENDIAN_BIG - define if big endian (default is little
endian) endian)
CONFIG_DRAM_SIZE - Describes the installed DRAM (SRAM in this case): CONFIG_DRAM_SIZE - Describes the installed DRAM (SRAM in this case):
CONFIG_DRAM_SIZE=0x00010000 (64Kb) CONFIG_DRAM_SIZE=0x00010000 (64Kb)
CONFIG_DRAM_START - The start address of installed DRAM CONFIG_DRAM_START - The start address of installed DRAM
CONFIG_DRAM_START=0x20000000 CONFIG_DRAM_START=0x20000000
CONFIG_ARCH_IRQPRIO - The Kinetis K40 supports interrupt prioritization CONFIG_ARCH_IRQPRIO - The Kinetis K40 supports interrupt prioritization
CONFIG_ARCH_IRQPRIO=y CONFIG_ARCH_IRQPRIO=y
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that
have LEDs have LEDs
CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt
stack. If defined, this symbol is the size of the interrupt stack. If defined, this symbol is the size of the interrupt
stack in bytes. If not defined, the user task stacks will be stack in bytes. If not defined, the user task stacks will be
used during interrupt handling. used during interrupt handling.
CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture. CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture.
CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that
cause a 100 second delay during boot-up. This 100 second delay cause a 100 second delay during boot-up. This 100 second delay
serves no purpose other than it allows you to calibratre serves no purpose other than it allows you to calibratre
CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure
the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until
the delay actually is 100 seconds. the delay actually is 100 seconds.
Individual subsystems can be enabled: Individual subsystems can be enabled:
CONFIG_KINETIS_TRACE -- Enable trace clocking on power up. CONFIG_KINETIS_TRACE -- Enable trace clocking on power up.
CONFIG_KINETIS_FLEXBUS -- Enable flexbus clocking on power up. CONFIG_KINETIS_FLEXBUS -- Enable flexbus clocking on power up.
CONFIG_KINETIS_UART0 -- Support UART0 CONFIG_KINETIS_UART0 -- Support UART0
CONFIG_KINETIS_UART1 -- Support UART1 CONFIG_KINETIS_UART1 -- Support UART1
CONFIG_KINETIS_UART2 -- Support UART2 CONFIG_KINETIS_UART2 -- Support UART2
CONFIG_KINETIS_UART3 -- Support UART3 CONFIG_KINETIS_UART3 -- Support UART3
CONFIG_KINETIS_UART4 -- Support UART4 CONFIG_KINETIS_UART4 -- Support UART4
CONFIG_KINETIS_UART5 -- Support UART5 CONFIG_KINETIS_UART5 -- Support UART5
CONFIG_KINETIS_ENET -- Support Ethernet (K60 only) CONFIG_KINETIS_ENET -- Support Ethernet (K60 only)
CONFIG_KINETIS_RNGB -- Support the random number generator(K60 only) CONFIG_KINETIS_RNGB -- Support the random number generator(K60 only)
CONFIG_KINETIS_FLEXCAN0 -- Support FlexCAN0 CONFIG_KINETIS_FLEXCAN0 -- Support FlexCAN0
CONFIG_KINETIS_FLEXCAN1 -- Support FlexCAN1 CONFIG_KINETIS_FLEXCAN1 -- Support FlexCAN1
CONFIG_KINETIS_SPI0 -- Support SPI0 CONFIG_KINETIS_SPI0 -- Support SPI0
@@ -380,8 +431,8 @@ KwikStik-K40-specific Configuration Options
CONFIG_KINETIS_I2C0 -- Support I2C0 CONFIG_KINETIS_I2C0 -- Support I2C0
CONFIG_KINETIS_I2C1 -- Support I2C1 CONFIG_KINETIS_I2C1 -- Support I2C1
CONFIG_KINETIS_I2S -- Support I2S CONFIG_KINETIS_I2S -- Support I2S
CONFIG_KINETIS_DAC0 -- Support DAC0 CONFIG_KINETIS_DAC0 -- Support DAC0
CONFIG_KINETIS_DAC1 -- Support DAC1 CONFIG_KINETIS_DAC1 -- Support DAC1
CONFIG_KINETIS_ADC0 -- Support ADC0 CONFIG_KINETIS_ADC0 -- Support ADC0
CONFIG_KINETIS_ADC1 -- Support ADC1 CONFIG_KINETIS_ADC1 -- Support ADC1
CONFIG_KINETIS_CMP -- Support CMP CONFIG_KINETIS_CMP -- Support CMP
@@ -429,15 +480,15 @@ KwikStik-K40-specific Configuration Options
Kinetis K40 specific device driver settings Kinetis K40 specific device driver settings
CONFIG_UARTn_SERIAL_CONSOLE - selects the UARTn (n=0..5) for the CONFIG_UARTn_SERIAL_CONSOLE - selects the UARTn (n=0..5) for the
console and ttys0 (default is the UART0). console and ttys0 (default is the UART0).
CONFIG_UARTn_RXBUFSIZE - Characters are buffered as received. CONFIG_UARTn_RXBUFSIZE - Characters are buffered as received.
This specific the size of the receive buffer This specific the size of the receive buffer
CONFIG_UARTn_TXBUFSIZE - Characters are buffered before CONFIG_UARTn_TXBUFSIZE - Characters are buffered before
being sent. This specific the size of the transmit buffer being sent. This specific the size of the transmit buffer
CONFIG_UARTn_BAUD - The configure BAUD of the UART. CONFIG_UARTn_BAUD - The configure BAUD of the UART.
CONFIG_UARTn_BITS - The number of bits. Must be either 8 or 8. CONFIG_UARTn_BITS - The number of bits. Must be either 8 or 8.
CONFIG_UARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity CONFIG_UARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity
KwikStik-K40 LCD Hardware Configuration KwikStik-K40 LCD Hardware Configuration
@@ -462,10 +513,10 @@ Configurations
Each KwikStik-K40 configuration is maintained in a sudirectory and Each KwikStik-K40 configuration is maintained in a sudirectory and
can be selected as follow: can be selected as follow:
cd tools cd tools
./configure.sh kwikstik-k40/<subdir> ./configure.sh kwikstik-k40/<subdir>
cd - cd -
. ./setenv.sh . ./setenv.sh
Where <subdir> is one of the following: Where <subdir> is one of the following:
@@ -475,4 +526,4 @@ Where <subdir> is one of the following:
examples/ostest. By default, this project assumes that you are examples/ostest. By default, this project assumes that you are
using the DFU bootloader. using the DFU bootloader.
CONFIG_KINETIS_BUILDROOT=y : NuttX buildroot under Linux or Cygwin CONFIG_KINETIS_BUILDROOT=y : NuttX buildroot under Linux or Cygwin
+185 -135
View File
@@ -10,7 +10,9 @@ Contents
Development Environment Development Environment
GNU Toolchain Options GNU Toolchain Options
IDEs IDEs
NuttX buildroot Toolchain NuttX EABI "buildroot" Toolchain
NuttX OABI "buildroot" Toolchain
NXFLAT Toolchain
USB Device Controller Functions USB Device Controller Functions
Lincoln 60 Configuration Options Lincoln 60 Configuration Options
USB Host Configuration USB Host Configuration
@@ -150,8 +152,8 @@ IDEs
Startup files will probably cause you some headaches. The NuttX startup file Startup files will probably cause you some headaches. The NuttX startup file
is arch/arm/src/lpc17x/lpc17_vectors.S. is arch/arm/src/lpc17x/lpc17_vectors.S.
NuttX buildroot Toolchain NuttX EABI "buildroot" Toolchain
^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
A GNU GCC-based toolchain is assumed. The files */setenv.sh should A GNU GCC-based toolchain is assumed. The files */setenv.sh should
be modified to point to the correct path to the Cortex-M3 GCC toolchain (if be modified to point to the correct path to the Cortex-M3 GCC toolchain (if
@@ -174,7 +176,7 @@ NuttX buildroot Toolchain
4. cd <some-dir>/buildroot 4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-4.3.3 .config 5. cp configs/cortexm3-eabi-defconfig-4.6.3 .config
6. make oldconfig 6. make oldconfig
@@ -184,184 +186,232 @@ NuttX buildroot Toolchain
the path to the newly built binaries. the path to the newly built binaries.
See the file configs/README.txt in the buildroot source tree. That has more See the file configs/README.txt in the buildroot source tree. That has more
detailed PLUS some special instructions that you will need to follow if you details PLUS some special instructions that you will need to follow if you
are building a Cortex-M3 toolchain for Cygwin under Windows. are building a Cortex-M3 toolchain for Cygwin under Windows.
NOTE: This is an OABI toolchain. NuttX OABI "buildroot" Toolchain
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The older, OABI buildroot toolchain is also available. To use the OABI
toolchain:
1. When building the buildroot toolchain, either (1) modify the cortexm3-eabi-defconfig-4.6.3
configuration to use EABI (using 'make menuconfig'), or (2) use an exising OABI
configuration such as cortexm3-defconfig-4.3.3
2. Modify the Make.defs file to use the OABI converntions:
+CROSSDEV = arm-nuttx-elf-
+ARCHCPUFLAGS = -mtune=cortex-m3 -march=armv7-m -mfloat-abi=soft
-CROSSDEV = arm-nuttx-eabi-
-ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
NXFLAT Toolchain
^^^^^^^^^^^^^^^^
If you are *not* using the NuttX buildroot toolchain and you want to use
the NXFLAT tools, then you will still have to build a portion of the buildroot
tools -- just the NXFLAT tools. The buildroot with the NXFLAT tools can
be downloaded from the NuttX SourceForge download site
(https://sourceforge.net/projects/nuttx/files/).
This GNU toolchain builds and executes in the Linux or Cygwin environment.
1. You must have already configured Nuttx in <some-dir>/nuttx.
cd tools
./configure.sh lpcxpresso-lpc1768/<sub-dir>
2. Download the latest buildroot package into <some-dir>
3. unpack the buildroot tarball. The resulting directory may
have versioning information on it like buildroot-x.y.z. If so,
rename <some-dir>/buildroot-x.y.z to <some-dir>/buildroot.
4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-nxflat .config
6. make oldconfig
7. make
8. Edit setenv.h, if necessary, so that the PATH variable includes
the path to the newly builtNXFLAT binaries.
Lincoln 60 Configuration Options Lincoln 60 Configuration Options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
CONFIG_ARCH - Identifies the arch/ subdirectory. This should CONFIG_ARCH - Identifies the arch/ subdirectory. This should
be set to: be set to:
CONFIG_ARCH=arm CONFIG_ARCH=arm
CONFIG_ARCH_family - For use in C code: CONFIG_ARCH_family - For use in C code:
CONFIG_ARCH_ARM=y CONFIG_ARCH_ARM=y
CONFIG_ARCH_architecture - For use in C code: CONFIG_ARCH_architecture - For use in C code:
CONFIG_ARCH_CORTEXM3=y CONFIG_ARCH_CORTEXM3=y
CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory
CONFIG_ARCH_CHIP=lpc17xx CONFIG_ARCH_CHIP=lpc17xx
CONFIG_ARCH_CHIP_name - For use in C code to identify the exact CONFIG_ARCH_CHIP_name - For use in C code to identify the exact
chip: chip:
CONFIG_ARCH_CHIP_LPC1768=y CONFIG_ARCH_CHIP_LPC1768=y
CONFIG_ARCH_BOARD - Identifies the configs subdirectory and CONFIG_ARCH_BOARD - Identifies the configs subdirectory and
hence, the board that supports the particular chip or SoC. hence, the board that supports the particular chip or SoC.
CONFIG_ARCH_BOARD=lincoln60 (for the Lincoln 60 board) CONFIG_ARCH_BOARD=lincoln60 (for the Lincoln 60 board)
CONFIG_ARCH_BOARD_name - For use in C code CONFIG_ARCH_BOARD_name - For use in C code
CONFIG_ARCH_BOARD_LINCOLN60=y CONFIG_ARCH_BOARD_LINCOLN60=y
CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation
of delay loops of delay loops
CONFIG_ENDIAN_BIG - define if big endian (default is little CONFIG_ENDIAN_BIG - define if big endian (default is little
endian) endian)
CONFIG_DRAM_SIZE - Describes the installed DRAM (CPU SRAM in this case): CONFIG_DRAM_SIZE - Describes the installed DRAM (CPU SRAM in this case):
CONFIG_DRAM_SIZE=(32*1024) (32Kb) CONFIG_DRAM_SIZE=(32*1024) (32Kb)
There is an additional 32Kb of SRAM in AHB SRAM banks 0 and 1. There is an additional 32Kb of SRAM in AHB SRAM banks 0 and 1.
CONFIG_DRAM_START - The start address of installed DRAM CONFIG_DRAM_START - The start address of installed DRAM
CONFIG_DRAM_START=0x10000000 CONFIG_DRAM_START=0x10000000
CONFIG_ARCH_IRQPRIO - The LPC17xx supports interrupt prioritization CONFIG_ARCH_IRQPRIO - The LPC17xx supports interrupt prioritization
CONFIG_ARCH_IRQPRIO=y CONFIG_ARCH_IRQPRIO=y
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that
have LEDs have LEDs
CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt
stack. If defined, this symbol is the size of the interrupt stack. If defined, this symbol is the size of the interrupt
stack in bytes. If not defined, the user task stacks will be stack in bytes. If not defined, the user task stacks will be
used during interrupt handling. used during interrupt handling.
CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture. CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture.
CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that
cause a 100 second delay during boot-up. This 100 second delay cause a 100 second delay during boot-up. This 100 second delay
serves no purpose other than it allows you to calibratre serves no purpose other than it allows you to calibratre
CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure
the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until
the delay actually is 100 seconds. the delay actually is 100 seconds.
Individual subsystems can be enabled: Individual subsystems can be enabled:
CONFIG_LPC17_MAINOSC=y CONFIG_LPC17_MAINOSC=y
CONFIG_LPC17_PLL0=y CONFIG_LPC17_PLL0=y
CONFIG_LPC17_PLL1=n CONFIG_LPC17_PLL1=n
CONFIG_LPC17_ETHERNET=n CONFIG_LPC17_ETHERNET=n
CONFIG_LPC17_USBHOST=n CONFIG_LPC17_USBHOST=n
CONFIG_LPC17_USBOTG=n CONFIG_LPC17_USBOTG=n
CONFIG_LPC17_USBDEV=n CONFIG_LPC17_USBDEV=n
CONFIG_LPC17_UART0=y CONFIG_LPC17_UART0=y
CONFIG_LPC17_UART1=n CONFIG_LPC17_UART1=n
CONFIG_LPC17_UART2=n CONFIG_LPC17_UART2=n
CONFIG_LPC17_UART3=n CONFIG_LPC17_UART3=n
CONFIG_LPC17_CAN1=n CONFIG_LPC17_CAN1=n
CONFIG_LPC17_CAN2=n CONFIG_LPC17_CAN2=n
CONFIG_LPC17_SPI=n CONFIG_LPC17_SPI=n
CONFIG_LPC17_SSP0=n CONFIG_LPC17_SSP0=n
CONFIG_LPC17_SSP1=n CONFIG_LPC17_SSP1=n
CONFIG_LPC17_I2C0=n CONFIG_LPC17_I2C0=n
CONFIG_LPC17_I2C1=n CONFIG_LPC17_I2C1=n
CONFIG_LPC17_I2S=n CONFIG_LPC17_I2S=n
CONFIG_LPC17_TMR0=n CONFIG_LPC17_TMR0=n
CONFIG_LPC17_TMR1=n CONFIG_LPC17_TMR1=n
CONFIG_LPC17_TMR2=n CONFIG_LPC17_TMR2=n
CONFIG_LPC17_TMR3=n CONFIG_LPC17_TMR3=n
CONFIG_LPC17_RIT=n CONFIG_LPC17_RIT=n
CONFIG_LPC17_PWM=n CONFIG_LPC17_PWM=n
CONFIG_LPC17_MCPWM=n CONFIG_LPC17_MCPWM=n
CONFIG_LPC17_QEI=n CONFIG_LPC17_QEI=n
CONFIG_LPC17_RTC=n CONFIG_LPC17_RTC=n
CONFIG_LPC17_WDT=n CONFIG_LPC17_WDT=n
CONFIG_LPC17_ADC=n CONFIG_LPC17_ADC=n
CONFIG_LPC17_DAC=n CONFIG_LPC17_DAC=n
CONFIG_LPC17_GPDMA=n CONFIG_LPC17_GPDMA=n
CONFIG_LPC17_FLASH=n CONFIG_LPC17_FLASH=n
LPC17xx specific device driver settings LPC17xx specific device driver settings
CONFIG_UARTn_SERIAL_CONSOLE - selects the UARTn for the CONFIG_UARTn_SERIAL_CONSOLE - selects the UARTn for the
console and ttys0 (default is the UART0). console and ttys0 (default is the UART0).
CONFIG_UARTn_RXBUFSIZE - Characters are buffered as received. CONFIG_UARTn_RXBUFSIZE - Characters are buffered as received.
This specific the size of the receive buffer This specific the size of the receive buffer
CONFIG_UARTn_TXBUFSIZE - Characters are buffered before CONFIG_UARTn_TXBUFSIZE - Characters are buffered before
being sent. This specific the size of the transmit buffer being sent. This specific the size of the transmit buffer
CONFIG_UARTn_BAUD - The configure BAUD of the UART. Must be CONFIG_UARTn_BAUD - The configure BAUD of the UART. Must be
CONFIG_UARTn_BITS - The number of bits. Must be either 7 or 8. CONFIG_UARTn_BITS - The number of bits. Must be either 7 or 8.
CONFIG_UARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity CONFIG_UARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity
CONFIG_UARTn_2STOP - Two stop bits CONFIG_UARTn_2STOP - Two stop bits
LPC17xx specific CAN device driver settings. These settings all LPC17xx specific CAN device driver settings. These settings all
require CONFIG_CAN: require CONFIG_CAN:
CONFIG_CAN_EXTID - Enables support for the 29-bit extended ID. Default CONFIG_CAN_EXTID - Enables support for the 29-bit extended ID. Default
Standard 11-bit IDs. Standard 11-bit IDs.
CONFIG_CAN1_BAUD - CAN1 BAUD rate. Required if CONFIG_LPC17_CAN1 is defined. CONFIG_CAN1_BAUD - CAN1 BAUD rate. Required if CONFIG_LPC17_CAN1 is defined.
CONFIG_CAN2_BAUD - CAN1 BAUD rate. Required if CONFIG_LPC17_CAN2 is defined. CONFIG_CAN2_BAUD - CAN1 BAUD rate. Required if CONFIG_LPC17_CAN2 is defined.
CONFIG_CAN1_DIVISOR - CAN1 is clocked at CCLK divided by this number. CONFIG_CAN1_DIVISOR - CAN1 is clocked at CCLK divided by this number.
(the CCLK frequency is divided by this number to get the CAN clock). (the CCLK frequency is divided by this number to get the CAN clock).
Options = {1,2,4,6}. Default: 4. Options = {1,2,4,6}. Default: 4.
CONFIG_CAN2_DIVISOR - CAN2 is clocked at CCLK divided by this number. CONFIG_CAN2_DIVISOR - CAN2 is clocked at CCLK divided by this number.
(the CCLK frequency is divided by this number to get the CAN clock). (the CCLK frequency is divided by this number to get the CAN clock).
Options = {1,2,4,6}. Default: 4. Options = {1,2,4,6}. Default: 4.
CONFIG_CAN_TSEG1 - The number of CAN time quanta in segment 1. Default: 6 CONFIG_CAN_TSEG1 - The number of CAN time quanta in segment 1. Default: 6
CONFIG_CAN_TSEG2 = the number of CAN time quanta in segment 2. Default: 7 CONFIG_CAN_TSEG2 = the number of CAN time quanta in segment 2. Default: 7
LPC17xx specific PHY/Ethernet device driver settings. These setting LPC17xx specific PHY/Ethernet device driver settings. These setting
also require CONFIG_NET and CONFIG_LPC17_ETHERNET. also require CONFIG_NET and CONFIG_LPC17_ETHERNET.
CONFIG_PHY_KS8721 - Selects Micrel KS8721 PHY CONFIG_PHY_KS8721 - Selects Micrel KS8721 PHY
CONFIG_PHY_AUTONEG - Enable auto-negotion CONFIG_PHY_AUTONEG - Enable auto-negotion
CONFIG_PHY_SPEED100 - Select 100Mbit vs. 10Mbit speed. CONFIG_PHY_SPEED100 - Select 100Mbit vs. 10Mbit speed.
CONFIG_PHY_FDUPLEX - Select full (vs. half) duplex CONFIG_PHY_FDUPLEX - Select full (vs. half) duplex
CONFIG_NET_EMACRAM_SIZE - Size of EMAC RAM. Default: 16Kb CONFIG_NET_EMACRAM_SIZE - Size of EMAC RAM. Default: 16Kb
CONFIG_NET_NTXDESC - Configured number of Tx descriptors. Default: 18 CONFIG_NET_NTXDESC - Configured number of Tx descriptors. Default: 18
CONFIG_NET_NRXDESC - Configured number of Rx descriptors. Default: 18 CONFIG_NET_NRXDESC - Configured number of Rx descriptors. Default: 18
CONFIG_NET_PRIORITY - Ethernet interrupt priority. The is default is CONFIG_NET_PRIORITY - Ethernet interrupt priority. The is default is
the higest priority. the higest priority.
CONFIG_NET_WOL - Enable Wake-up on Lan (not fully implemented). CONFIG_NET_WOL - Enable Wake-up on Lan (not fully implemented).
CONFIG_NET_REGDEBUG - Enabled low level register debug. Also needs CONFIG_NET_REGDEBUG - Enabled low level register debug. Also needs
CONFIG_DEBUG. CONFIG_DEBUG.
CONFIG_NET_DUMPPACKET - Dump all received and transmitted packets. CONFIG_NET_DUMPPACKET - Dump all received and transmitted packets.
Also needs CONFIG_DEBUG. Also needs CONFIG_DEBUG.
CONFIG_NET_HASH - Enable receipt of near-perfect match frames. CONFIG_NET_HASH - Enable receipt of near-perfect match frames.
CONFIG_NET_MULTICAST - Enable receipt of multicast (and unicast) frames. CONFIG_NET_MULTICAST - Enable receipt of multicast (and unicast) frames.
Automatically set if CONFIG_NET_IGMP is selected. Automatically set if CONFIG_NET_IGMP is selected.
LPC17xx USB Device Configuration LPC17xx USB Device Configuration
CONFIG_LPC17_USBDEV_FRAME_INTERRUPT CONFIG_LPC17_USBDEV_FRAME_INTERRUPT
Handle USB Start-Of-Frame events. Handle USB Start-Of-Frame events.
Enable reading SOF from interrupt handler vs. simply reading on demand. Enable reading SOF from interrupt handler vs. simply reading on demand.
Probably a bad idea... Unless there is some issue with sampling the SOF Probably a bad idea... Unless there is some issue with sampling the SOF
from hardware asynchronously. from hardware asynchronously.
CONFIG_LPC17_USBDEV_EPFAST_INTERRUPT CONFIG_LPC17_USBDEV_EPFAST_INTERRUPT
Enable high priority interrupts. I have no idea why you might want to Enable high priority interrupts. I have no idea why you might want to
do that do that
CONFIG_LPC17_USBDEV_NDMADESCRIPTORS CONFIG_LPC17_USBDEV_NDMADESCRIPTORS
Number of DMA descriptors to allocate in SRAM. Number of DMA descriptors to allocate in SRAM.
CONFIG_LPC17_USBDEV_DMA CONFIG_LPC17_USBDEV_DMA
Enable lpc17xx-specific DMA support Enable lpc17xx-specific DMA support
CONFIG_LPC17_USBDEV_NOVBUS CONFIG_LPC17_USBDEV_NOVBUS
Define if the hardware implementation does not support the VBUS signal Define if the hardware implementation does not support the VBUS signal
CONFIG_LPC17_USBDEV_NOLED CONFIG_LPC17_USBDEV_NOLED
@@ -425,10 +475,10 @@ Configurations
Each Lincoln 60 configuration is maintained in a sudirectory and can be selected Each Lincoln 60 configuration is maintained in a sudirectory and can be selected
as follow: as follow:
cd tools cd tools
./configure.sh lincoln60/<subdir> ./configure.sh lincoln60/<subdir>
cd - cd -
. ./setenv.sh . ./setenv.sh
Where <subdir> is one of the following: Where <subdir> is one of the following:
+149 -100
View File
@@ -11,7 +11,9 @@ Contents
Development Environment Development Environment
GNU Toolchain Options GNU Toolchain Options
IDEs IDEs
NuttX buildroot Toolchain NuttX EABI "buildroot" Toolchain
NuttX OABI "buildroot" Toolchain
NXFLFAT Toolchain
Stellaris MDL-S2E Reference Design Configuration Options Stellaris MDL-S2E Reference Design Configuration Options
Configurations Configurations
@@ -176,8 +178,8 @@ IDEs
Startup files will probably cause you some headaches. The NuttX startup file Startup files will probably cause you some headaches. The NuttX startup file
is arch/arm/src/lm3s/lm3s_vectors.S. is arch/arm/src/lm3s/lm3s_vectors.S.
NuttX buildroot Toolchain NuttX EABI "buildroot" Toolchain
^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
A GNU GCC-based toolchain is assumed. The files */setenv.sh should A GNU GCC-based toolchain is assumed. The files */setenv.sh should
be modified to point to the correct path to the Cortex-M3 GCC toolchain (if be modified to point to the correct path to the Cortex-M3 GCC toolchain (if
@@ -204,7 +206,7 @@ NuttX buildroot Toolchain
4. cd <some-dir>/buildroot 4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-4.3.3 .config 5. cp configs/cortexm3-eabi-defconfig-4.6.3 .config
6. make oldconfig 6. make oldconfig
@@ -214,142 +216,189 @@ NuttX buildroot Toolchain
the path to the newly built binaries. the path to the newly built binaries.
See the file configs/README.txt in the buildroot source tree. That has more See the file configs/README.txt in the buildroot source tree. That has more
detailed PLUS some special instructions that you will need to follow if you details PLUS some special instructions that you will need to follow if you
are building a Cortex-M3 toolchain for Cygwin under Windows. are building a Cortex-M3 toolchain for Cygwin under Windows.
NOTE: This is an OABI toolchain. NuttX OABI "buildroot" Toolchain
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The older, OABI buildroot toolchain is also available. To use the OABI
toolchain:
1. When building the buildroot toolchain, either (1) modify the cortexm3-eabi-defconfig-4.6.3
configuration to use EABI (using 'make menuconfig'), or (2) use an exising OABI
configuration such as cortexm3-defconfig-4.3.3
2. Modify the Make.defs file to use the OABI converntions:
+CROSSDEV = arm-nuttx-elf-
+ARCHCPUFLAGS = -mtune=cortex-m3 -march=armv7-m -mfloat-abi=soft
-CROSSDEV = arm-nuttx-eabi-
-ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
NXFLAT Toolchain
^^^^^^^^^^^^^^^^
If you are *not* using the NuttX buildroot toolchain and you want to use
the NXFLAT tools, then you will still have to build a portion of the buildroot
tools -- just the NXFLAT tools. The buildroot with the NXFLAT tools can
be downloaded from the NuttX SourceForge download site
(https://sourceforge.net/projects/nuttx/files/).
This GNU toolchain builds and executes in the Linux or Cygwin environment.
1. You must have already configured Nuttx in <some-dir>/nuttx.
cd tools
./configure.sh lpcxpresso-lpc1768/<sub-dir>
2. Download the latest buildroot package into <some-dir>
3. unpack the buildroot tarball. The resulting directory may
have versioning information on it like buildroot-x.y.z. If so,
rename <some-dir>/buildroot-x.y.z to <some-dir>/buildroot.
4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-nxflat .config
6. make oldconfig
7. make
8. Edit setenv.h, if necessary, so that the PATH variable includes
the path to the newly builtNXFLAT binaries.
Stellaris MDL-S2E Reference Design Configuration Options Stellaris MDL-S2E Reference Design Configuration Options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
CONFIG_ARCH - Identifies the arch/ subdirectory. This should CONFIG_ARCH - Identifies the arch/ subdirectory. This should
be set to: be set to:
CONFIG_ARCH=arm CONFIG_ARCH=arm
CONFIG_ARCH_family - For use in C code: CONFIG_ARCH_family - For use in C code:
CONFIG_ARCH_ARM=y CONFIG_ARCH_ARM=y
CONFIG_ARCH_architecture - For use in C code: CONFIG_ARCH_architecture - For use in C code:
CONFIG_ARCH_CORTEXM3=y CONFIG_ARCH_CORTEXM3=y
CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory
CONFIG_ARCH_CHIP=lm3s CONFIG_ARCH_CHIP=lm3s
CONFIG_ARCH_CHIP_name - For use in C code to identify the exact CONFIG_ARCH_CHIP_name - For use in C code to identify the exact
chip: chip:
CONFIG_ARCH_CHIP_LM3S6432 CONFIG_ARCH_CHIP_LM3S6432
CONFIG_ARCH_BOARD - Identifies the configs subdirectory and CONFIG_ARCH_BOARD - Identifies the configs subdirectory and
hence, the board that supports the particular chip or SoC. hence, the board that supports the particular chip or SoC.
CONFIG_ARCH_BOARD=lm3s6432-s2e (for the Stellaris MDL-S2E Reference Design) CONFIG_ARCH_BOARD=lm3s6432-s2e (for the Stellaris MDL-S2E Reference Design)
CONFIG_ARCH_BOARD_name - For use in C code CONFIG_ARCH_BOARD_name - For use in C code
CONFIG_ARCH_BOARD_LM3S6432S2E CONFIG_ARCH_BOARD_LM3S6432S2E
CONFIG_ARCH_LOOPSPERMSEC - As supplied, calibrated for correct operation CONFIG_ARCH_LOOPSPERMSEC - As supplied, calibrated for correct operation
of delay loops assuming 50MHz CPU frequency. of delay loops assuming 50MHz CPU frequency.
CONFIG_ENDIAN_BIG - define if big endian (default is little CONFIG_ENDIAN_BIG - define if big endian (default is little
endian) endian)
CONFIG_DRAM_SIZE - Describes the installed DRAM (SRAM in this case): CONFIG_DRAM_SIZE - Describes the installed DRAM (SRAM in this case):
CONFIG_DRAM_SIZE=0x00010000 (64Kb) CONFIG_DRAM_SIZE=0x00010000 (64Kb)
CONFIG_DRAM_START - The start address of installed DRAM CONFIG_DRAM_START - The start address of installed DRAM
CONFIG_DRAM_START=0x20000000 CONFIG_DRAM_START=0x20000000
CONFIG_ARCH_IRQPRIO - The LM3S6918 supports interrupt prioritization CONFIG_ARCH_IRQPRIO - The LM3S6918 supports interrupt prioritization
CONFIG_ARCH_IRQPRIO=y CONFIG_ARCH_IRQPRIO=y
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that
have LEDs have LEDs
CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt
stack. If defined, this symbol is the size of the interrupt stack. If defined, this symbol is the size of the interrupt
stack in bytes. If not defined, the user task stacks will be stack in bytes. If not defined, the user task stacks will be
used during interrupt handling. used during interrupt handling.
CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture. CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture.
CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that
cause a 100 second delay during boot-up. This 100 second delay cause a 100 second delay during boot-up. This 100 second delay
serves no purpose other than it allows you to calibratre serves no purpose other than it allows you to calibratre
CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure
the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until
the delay actually is 100 seconds. the delay actually is 100 seconds.
There are configurations for disabling support for interrupts GPIO ports. There are configurations for disabling support for interrupts GPIO ports.
GPIOH and GPIOJ must be disabled because they do not exist on the LM3S6432. GPIOH and GPIOJ must be disabled because they do not exist on the LM3S6432.
Additional interrupt support can be disabled if desired to reduce memory Additional interrupt support can be disabled if desired to reduce memory
footprint - GPIOs C-G are not pinned out on the MDL-S2E board. footprint - GPIOs C-G are not pinned out on the MDL-S2E board.
CONFIG_LM3S_DISABLE_GPIOA_IRQS=n CONFIG_LM3S_DISABLE_GPIOA_IRQS=n
CONFIG_LM3S_DISABLE_GPIOB_IRQS=n CONFIG_LM3S_DISABLE_GPIOB_IRQS=n
CONFIG_LM3S_DISABLE_GPIOC_IRQS=y CONFIG_LM3S_DISABLE_GPIOC_IRQS=y
CONFIG_LM3S_DISABLE_GPIOD_IRQS=y CONFIG_LM3S_DISABLE_GPIOD_IRQS=y
CONFIG_LM3S_DISABLE_GPIOE_IRQS=y CONFIG_LM3S_DISABLE_GPIOE_IRQS=y
CONFIG_LM3S_DISABLE_GPIOF_IRQS=y CONFIG_LM3S_DISABLE_GPIOF_IRQS=y
CONFIG_LM3S_DISABLE_GPIOG_IRQS=y CONFIG_LM3S_DISABLE_GPIOG_IRQS=y
CONFIG_LM3S_DISABLE_GPIOH_IRQS=y CONFIG_LM3S_DISABLE_GPIOH_IRQS=y
CONFIG_LM3S_DISABLE_GPIOJ_IRQS=y CONFIG_LM3S_DISABLE_GPIOJ_IRQS=y
LM3S6432 specific device driver settings LM3S6432 specific device driver settings
CONFIG_UARTn_DISABLE CONFIG_UARTn_DISABLE
The TX and RX pins for UART1 share I/O pins with the TX and RX pins The TX and RX pins for UART1 share I/O pins with the TX and RX pins
for SSI0. To avoid conflicts, only one of SSI0 and UART1 should for SSI0. To avoid conflicts, only one of SSI0 and UART1 should
be enabled in a configuration. be enabled in a configuration.
CONFIG_UARTn_SERIAL_CONSOLE - selects the UARTn for the CONFIG_UARTn_SERIAL_CONSOLE - selects the UARTn for the
console and ttys0 (default is UART1). console and ttys0 (default is UART1).
CONFIG_UARTn_RXBUFSIZE - Characters are buffered as received. CONFIG_UARTn_RXBUFSIZE - Characters are buffered as received.
This specific the size of the receive buffer This specific the size of the receive buffer
CONFIG_UARTn_TXBUFSIZE - Characters are buffered before CONFIG_UARTn_TXBUFSIZE - Characters are buffered before
being sent. This specific the size of the transmit buffer being sent. This specific the size of the transmit buffer
CONFIG_UARTn_BAUD - The configure BAUD of the UART. Must be CONFIG_UARTn_BAUD - The configure BAUD of the UART. Must be
CONFIG_UARTn_BITS - The number of bits. Must be either 7 or 8. CONFIG_UARTn_BITS - The number of bits. Must be either 7 or 8.
CONFIG_UARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity CONFIG_UARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity
CONFIG_UARTn_2STOP - Two stop bits CONFIG_UARTn_2STOP - Two stop bits
CONFIG_SSI0_DISABLE - Select to disable support for SSI0 CONFIG_SSI0_DISABLE - Select to disable support for SSI0
The TX and RX pins for SSI0 share I/O pins with the TX and RX pins The TX and RX pins for SSI0 share I/O pins with the TX and RX pins
for UART1. To avoid conflicts, only one of SSI0 and UART1 should for UART1. To avoid conflicts, only one of SSI0 and UART1 should
be enabled in a configuration. be enabled in a configuration.
CONFIG_SSI1_DISABLE - Select to disable support for SSI1 CONFIG_SSI1_DISABLE - Select to disable support for SSI1
Note that the LM3S6432 only has one SSI, so SSI1 should always be Note that the LM3S6432 only has one SSI, so SSI1 should always be
disabled. disabled.
CONFIG_SSI_POLLWAIT - Select to disable interrupt driven SSI support. CONFIG_SSI_POLLWAIT - Select to disable interrupt driven SSI support.
Poll-waiting is recommended if the interrupt rate would be to Poll-waiting is recommended if the interrupt rate would be to
high in the interrupt driven case. high in the interrupt driven case.
CONFIG_SSI_TXLIMIT - Write this many words to the Tx FIFO before CONFIG_SSI_TXLIMIT - Write this many words to the Tx FIFO before
emptying the Rx FIFO. If the SPI frequency is high and this emptying the Rx FIFO. If the SPI frequency is high and this
value is large, then larger values of this setting may cause value is large, then larger values of this setting may cause
Rx FIFO overrun errors. Default: half of the Tx FIFO size (4). Rx FIFO overrun errors. Default: half of the Tx FIFO size (4).
CONFIG_LM3S_ETHERNET - This must be set (along with CONFIG_NET) CONFIG_LM3S_ETHERNET - This must be set (along with CONFIG_NET)
to build the LM3S Ethernet driver to build the LM3S Ethernet driver
CONFIG_LM3S_ETHLEDS - Enable to use Ethernet LEDs on the board. CONFIG_LM3S_ETHLEDS - Enable to use Ethernet LEDs on the board.
CONFIG_LM3S_BOARDMAC - This should be set in order to use the CONFIG_LM3S_BOARDMAC - This should be set in order to use the
MAC address configured in the flash USER registers. MAC address configured in the flash USER registers.
CONFIG_LM3S_ETHHDUPLEX - Set to force half duplex operation CONFIG_LM3S_ETHHDUPLEX - Set to force half duplex operation
CONFIG_LM3S_ETHNOAUTOCRC - Set to suppress auto-CRC generation CONFIG_LM3S_ETHNOAUTOCRC - Set to suppress auto-CRC generation
CONFIG_LM3S_ETHNOPAD - Set to suppress Tx padding CONFIG_LM3S_ETHNOPAD - Set to suppress Tx padding
CONFIG_LM3S_MULTICAST - Set to enable multicast frames CONFIG_LM3S_MULTICAST - Set to enable multicast frames
CONFIG_LM3S_PROMISCUOUS - Set to enable promiscuous mode CONFIG_LM3S_PROMISCUOUS - Set to enable promiscuous mode
CONFIG_LM3S_BADCRC - Set to enable bad CRC rejection. CONFIG_LM3S_BADCRC - Set to enable bad CRC rejection.
CONFIG_LM3S_DUMPPACKET - Dump each packet received/sent to the console. CONFIG_LM3S_DUMPPACKET - Dump each packet received/sent to the console.
Configurations Configurations
^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^
@@ -357,10 +406,10 @@ Configurations
Each Stellaris MDL-S2E Reference Design configuration is maintained in a Each Stellaris MDL-S2E Reference Design configuration is maintained in a
sudirectory and can be selected as follow: sudirectory and can be selected as follow:
cd tools cd tools
./configure.sh lm3s6432-s2e/<subdir> ./configure.sh lm3s6432-s2e/<subdir>
cd - cd -
. ./setenv.sh . ./setenv.sh
Where <subdir> is one of the following: Where <subdir> is one of the following:
+142 -90
View File
@@ -10,7 +10,9 @@ Contents
Development Environment Development Environment
GNU Toolchain Options GNU Toolchain Options
IDEs IDEs
NuttX buildroot Toolchain NuttX EABI "buildroot" Toolchain
NuttX OABI "buildroot" Toolchain
NXFLAT Toolchain
USB Device Controller Functions USB Device Controller Functions
OLED OLED
Stellaris LM3S6965 Evaluation Kit Configuration Options Stellaris LM3S6965 Evaluation Kit Configuration Options
@@ -210,8 +212,8 @@ IDEs
Startup files will probably cause you some headaches. The NuttX startup file Startup files will probably cause you some headaches. The NuttX startup file
is arch/arm/src/lm3s/lm3s_vectors.S. is arch/arm/src/lm3s/lm3s_vectors.S.
NuttX buildroot Toolchain NuttX EABI "buildroot" Toolchain
^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
A GNU GCC-based toolchain is assumed. The files */setenv.sh should A GNU GCC-based toolchain is assumed. The files */setenv.sh should
be modified to point to the correct path to the Cortex-M3 GCC toolchain (if be modified to point to the correct path to the Cortex-M3 GCC toolchain (if
@@ -234,7 +236,7 @@ NuttX buildroot Toolchain
4. cd <some-dir>/buildroot 4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-4.3.3 .config 5. cp configs/cortexm3-eabi-defconfig-4.6.3 .config
6. make oldconfig 6. make oldconfig
@@ -244,11 +246,61 @@ NuttX buildroot Toolchain
the path to the newly built binaries. the path to the newly built binaries.
See the file configs/README.txt in the buildroot source tree. That has more See the file configs/README.txt in the buildroot source tree. That has more
detailed PLUS some special instructions that you will need to follow if you details PLUS some special instructions that you will need to follow if you
are building a Cortex-M3 toolchain for Cygwin under Windows. are building a Cortex-M3 toolchain for Cygwin under Windows.
NOTE: This is an OABI toolchain. NOTE: This is an OABI toolchain.
NuttX OABI "buildroot" Toolchain
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The older, OABI buildroot toolchain is also available. To use the OABI
toolchain:
1. When building the buildroot toolchain, either (1) modify the cortexm3-eabi-defconfig-4.6.3
configuration to use EABI (using 'make menuconfig'), or (2) use an exising OABI
configuration such as cortexm3-defconfig-4.3.3
2. Modify the Make.defs file to use the OABI converntions:
+CROSSDEV = arm-nuttx-elf-
+ARCHCPUFLAGS = -mtune=cortex-m3 -march=armv7-m -mfloat-abi=soft
-CROSSDEV = arm-nuttx-eabi-
-ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
NXFLAT Toolchain
^^^^^^^^^^^^^^^^
If you are *not* using the NuttX buildroot toolchain and you want to use
the NXFLAT tools, then you will still have to build a portion of the buildroot
tools -- just the NXFLAT tools. The buildroot with the NXFLAT tools can
be downloaded from the NuttX SourceForge download site
(https://sourceforge.net/projects/nuttx/files/).
This GNU toolchain builds and executes in the Linux or Cygwin environment.
1. You must have already configured Nuttx in <some-dir>/nuttx.
cd tools
./configure.sh lpcxpresso-lpc1768/<sub-dir>
2. Download the latest buildroot package into <some-dir>
3. unpack the buildroot tarball. The resulting directory may
have versioning information on it like buildroot-x.y.z. If so,
rename <some-dir>/buildroot-x.y.z to <some-dir>/buildroot.
4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-nxflat .config
6. make oldconfig
7. make
8. Edit setenv.h, if necessary, so that the PATH variable includes
the path to the newly builtNXFLAT binaries.
USB Device Controller Functions USB Device Controller Functions
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -291,124 +343,124 @@ USB Device Controller Functions
Stellaris LM3S6965 Evaluation Kit Configuration Options Stellaris LM3S6965 Evaluation Kit Configuration Options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
CONFIG_ARCH - Identifies the arch/ subdirectory. This should CONFIG_ARCH - Identifies the arch/ subdirectory. This should
be set to: be set to:
CONFIG_ARCH=arm CONFIG_ARCH=arm
CONFIG_ARCH_family - For use in C code: CONFIG_ARCH_family - For use in C code:
CONFIG_ARCH_ARM=y CONFIG_ARCH_ARM=y
CONFIG_ARCH_architecture - For use in C code: CONFIG_ARCH_architecture - For use in C code:
CONFIG_ARCH_CORTEXM3=y CONFIG_ARCH_CORTEXM3=y
CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory
CONFIG_ARCH_CHIP=lm3s CONFIG_ARCH_CHIP=lm3s
CONFIG_ARCH_CHIP_name - For use in C code to identify the exact CONFIG_ARCH_CHIP_name - For use in C code to identify the exact
chip: chip:
CONFIG_ARCH_CHIP_LM3S6965 CONFIG_ARCH_CHIP_LM3S6965
CONFIG_ARCH_BOARD - Identifies the configs subdirectory and CONFIG_ARCH_BOARD - Identifies the configs subdirectory and
hence, the board that supports the particular chip or SoC. hence, the board that supports the particular chip or SoC.
CONFIG_ARCH_BOARD=lm3s6965-ek (for the Stellaris LM3S6965 Evaluation Kit) CONFIG_ARCH_BOARD=lm3s6965-ek (for the Stellaris LM3S6965 Evaluation Kit)
CONFIG_ARCH_BOARD_name - For use in C code CONFIG_ARCH_BOARD_name - For use in C code
CONFIG_ARCH_BOARD_LM3S6965EK CONFIG_ARCH_BOARD_LM3S6965EK
CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation
of delay loops of delay loops
CONFIG_ENDIAN_BIG - define if big endian (default is little CONFIG_ENDIAN_BIG - define if big endian (default is little
endian) endian)
CONFIG_DRAM_SIZE - Describes the installed DRAM (SRAM in this case): CONFIG_DRAM_SIZE - Describes the installed DRAM (SRAM in this case):
CONFIG_DRAM_SIZE=0x00010000 (64Kb) CONFIG_DRAM_SIZE=0x00010000 (64Kb)
CONFIG_DRAM_START - The start address of installed DRAM CONFIG_DRAM_START - The start address of installed DRAM
CONFIG_DRAM_START=0x20000000 CONFIG_DRAM_START=0x20000000
CONFIG_ARCH_IRQPRIO - The LM3S6918 supports interrupt prioritization CONFIG_ARCH_IRQPRIO - The LM3S6918 supports interrupt prioritization
CONFIG_ARCH_IRQPRIO=y CONFIG_ARCH_IRQPRIO=y
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that
have LEDs have LEDs
CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt
stack. If defined, this symbol is the size of the interrupt stack. If defined, this symbol is the size of the interrupt
stack in bytes. If not defined, the user task stacks will be stack in bytes. If not defined, the user task stacks will be
used during interrupt handling. used during interrupt handling.
CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture. CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture.
CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that
cause a 100 second delay during boot-up. This 100 second delay cause a 100 second delay during boot-up. This 100 second delay
serves no purpose other than it allows you to calibratre serves no purpose other than it allows you to calibratre
CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure
the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until
the delay actually is 100 seconds. the delay actually is 100 seconds.
There are configurations for disabling support for interrupts GPIO ports. There are configurations for disabling support for interrupts GPIO ports.
GPIOJ must be disabled because it does not exist on the LM3S6918. GPIOJ must be disabled because it does not exist on the LM3S6918.
Additional interrupt support can be disabled if desired to reduce memory Additional interrupt support can be disabled if desired to reduce memory
footprint. footprint.
CONFIG_LM3S_DISABLE_GPIOA_IRQS=n CONFIG_LM3S_DISABLE_GPIOA_IRQS=n
CONFIG_LM3S_DISABLE_GPIOB_IRQS=n CONFIG_LM3S_DISABLE_GPIOB_IRQS=n
CONFIG_LM3S_DISABLE_GPIOC_IRQS=n CONFIG_LM3S_DISABLE_GPIOC_IRQS=n
CONFIG_LM3S_DISABLE_GPIOD_IRQS=n CONFIG_LM3S_DISABLE_GPIOD_IRQS=n
CONFIG_LM3S_DISABLE_GPIOE_IRQS=n CONFIG_LM3S_DISABLE_GPIOE_IRQS=n
CONFIG_LM3S_DISABLE_GPIOF_IRQS=n CONFIG_LM3S_DISABLE_GPIOF_IRQS=n
CONFIG_LM3S_DISABLE_GPIOG_IRQS=n CONFIG_LM3S_DISABLE_GPIOG_IRQS=n
CONFIG_LM3S_DISABLE_GPIOH_IRQS=n CONFIG_LM3S_DISABLE_GPIOH_IRQS=n
CONFIG_LM3S_DISABLE_GPIOJ_IRQS=y CONFIG_LM3S_DISABLE_GPIOJ_IRQS=y
LM3S6818 specific device driver settings LM3S6818 specific device driver settings
CONFIG_UARTn_SERIAL_CONSOLE - selects the UARTn for the CONFIG_UARTn_SERIAL_CONSOLE - selects the UARTn for the
console and ttys0 (default is the UART0). console and ttys0 (default is the UART0).
CONFIG_UARTn_RXBUFSIZE - Characters are buffered as received. CONFIG_UARTn_RXBUFSIZE - Characters are buffered as received.
This specific the size of the receive buffer This specific the size of the receive buffer
CONFIG_UARTn_TXBUFSIZE - Characters are buffered before CONFIG_UARTn_TXBUFSIZE - Characters are buffered before
being sent. This specific the size of the transmit buffer being sent. This specific the size of the transmit buffer
CONFIG_UARTn_BAUD - The configure BAUD of the UART. Must be CONFIG_UARTn_BAUD - The configure BAUD of the UART. Must be
CONFIG_UARTn_BITS - The number of bits. Must be either 7 or 8. CONFIG_UARTn_BITS - The number of bits. Must be either 7 or 8.
CONFIG_UARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity CONFIG_UARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity
CONFIG_UARTn_2STOP - Two stop bits CONFIG_UARTn_2STOP - Two stop bits
CONFIG_SSI0_DISABLE - Select to disable support for SSI0 CONFIG_SSI0_DISABLE - Select to disable support for SSI0
CONFIG_SSI1_DISABLE - Select to disable support for SSI1 CONFIG_SSI1_DISABLE - Select to disable support for SSI1
CONFIG_SSI_POLLWAIT - Select to disable interrupt driven SSI support. CONFIG_SSI_POLLWAIT - Select to disable interrupt driven SSI support.
Poll-waiting is recommended if the interrupt rate would be to Poll-waiting is recommended if the interrupt rate would be to
high in the interrupt driven case. high in the interrupt driven case.
CONFIG_SSI_TXLIMIT - Write this many words to the Tx FIFO before CONFIG_SSI_TXLIMIT - Write this many words to the Tx FIFO before
emptying the Rx FIFO. If the SPI frequency is high and this emptying the Rx FIFO. If the SPI frequency is high and this
value is large, then larger values of this setting may cause value is large, then larger values of this setting may cause
Rx FIFO overrun errors. Default: half of the Tx FIFO size (4). Rx FIFO overrun errors. Default: half of the Tx FIFO size (4).
CONFIG_LM3S_ETHERNET - This must be set (along with CONFIG_NET) CONFIG_LM3S_ETHERNET - This must be set (along with CONFIG_NET)
to build the LM3S Ethernet driver to build the LM3S Ethernet driver
CONFIG_LM3S_ETHLEDS - Enable to use Ethernet LEDs on the board. CONFIG_LM3S_ETHLEDS - Enable to use Ethernet LEDs on the board.
CONFIG_LM3S_BOARDMAC - If the board-specific logic can provide CONFIG_LM3S_BOARDMAC - If the board-specific logic can provide
a MAC address (via lm3s_ethernetmac()), then this should be selected. a MAC address (via lm3s_ethernetmac()), then this should be selected.
CONFIG_LM3S_ETHHDUPLEX - Set to force half duplex operation CONFIG_LM3S_ETHHDUPLEX - Set to force half duplex operation
CONFIG_LM3S_ETHNOAUTOCRC - Set to suppress auto-CRC generation CONFIG_LM3S_ETHNOAUTOCRC - Set to suppress auto-CRC generation
CONFIG_LM3S_ETHNOPAD - Set to suppress Tx padding CONFIG_LM3S_ETHNOPAD - Set to suppress Tx padding
CONFIG_LM3S_MULTICAST - Set to enable multicast frames CONFIG_LM3S_MULTICAST - Set to enable multicast frames
CONFIG_LM3S_PROMISCUOUS - Set to enable promiscuous mode CONFIG_LM3S_PROMISCUOUS - Set to enable promiscuous mode
CONFIG_LM3S_BADCRC - Set to enable bad CRC rejection. CONFIG_LM3S_BADCRC - Set to enable bad CRC rejection.
CONFIG_LM3S_DUMPPACKET - Dump each packet received/sent to the console. CONFIG_LM3S_DUMPPACKET - Dump each packet received/sent to the console.
Configurations Configurations
^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^
@@ -416,10 +468,10 @@ Configurations
Each Stellaris LM3S6965 Evaluation Kit configuration is maintained in a Each Stellaris LM3S6965 Evaluation Kit configuration is maintained in a
sudirectory and can be selected as follow: sudirectory and can be selected as follow:
cd tools cd tools
./configure.sh lm3s6965-ek/<subdir> ./configure.sh lm3s6965-ek/<subdir>
cd - cd -
. ./setenv.sh . ./setenv.sh
Where <subdir> is one of the following: Where <subdir> is one of the following:
+142 -90
View File
@@ -10,7 +10,9 @@ Contents
Development Environment Development Environment
GNU Toolchain Options GNU Toolchain Options
IDEs IDEs
NuttX buildroot Toolchain NuttX EABI "buildroot" Toolchain
NuttX OABI "buildroot" Toolchain
NXFLAT Toolchain
USB Device Controller Functions USB Device Controller Functions
OLED OLED
Stellaris LM3S8962 Evaluation Kit Configuration Options Stellaris LM3S8962 Evaluation Kit Configuration Options
@@ -194,8 +196,8 @@ IDEs
Startup files will probably cause you some headaches. The NuttX startup file Startup files will probably cause you some headaches. The NuttX startup file
is arch/arm/src/lm3s/lm3s_vectors.S. is arch/arm/src/lm3s/lm3s_vectors.S.
NuttX buildroot Toolchain NuttX EABI "buildroot" Toolchain
^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
A GNU GCC-based toolchain is assumed. The files */setenv.sh should A GNU GCC-based toolchain is assumed. The files */setenv.sh should
be modified to point to the correct path to the Cortex-M3 GCC toolchain (if be modified to point to the correct path to the Cortex-M3 GCC toolchain (if
@@ -218,7 +220,7 @@ NuttX buildroot Toolchain
4. cd <some-dir>/buildroot 4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-4.3.3 .config 5. cp configs/cortexm3-eabi-defconfig-4.6.3 .config
6. make oldconfig 6. make oldconfig
@@ -228,11 +230,61 @@ NuttX buildroot Toolchain
the path to the newly built binaries. the path to the newly built binaries.
See the file configs/README.txt in the buildroot source tree. That has more See the file configs/README.txt in the buildroot source tree. That has more
detailed PLUS some special instructions that you will need to follow if you details PLUS some special instructions that you will need to follow if you
are building a Cortex-M3 toolchain for Cygwin under Windows. are building a Cortex-M3 toolchain for Cygwin under Windows.
NOTE: This is an OABI toolchain. NOTE: This is an OABI toolchain.
NuttX OABI "buildroot" Toolchain
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The older, OABI buildroot toolchain is also available. To use the OABI
toolchain:
1. When building the buildroot toolchain, either (1) modify the cortexm3-eabi-defconfig-4.6.3
configuration to use EABI (using 'make menuconfig'), or (2) use an exising OABI
configuration such as cortexm3-defconfig-4.3.3
2. Modify the Make.defs file to use the OABI converntions:
+CROSSDEV = arm-nuttx-elf-
+ARCHCPUFLAGS = -mtune=cortex-m3 -march=armv7-m -mfloat-abi=soft
-CROSSDEV = arm-nuttx-eabi-
-ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
NXFLAT Toolchain
^^^^^^^^^^^^^^^^
If you are *not* using the NuttX buildroot toolchain and you want to use
the NXFLAT tools, then you will still have to build a portion of the buildroot
tools -- just the NXFLAT tools. The buildroot with the NXFLAT tools can
be downloaded from the NuttX SourceForge download site
(https://sourceforge.net/projects/nuttx/files/).
This GNU toolchain builds and executes in the Linux or Cygwin environment.
1. You must have already configured Nuttx in <some-dir>/nuttx.
cd tools
./configure.sh lpcxpresso-lpc1768/<sub-dir>
2. Download the latest buildroot package into <some-dir>
3. unpack the buildroot tarball. The resulting directory may
have versioning information on it like buildroot-x.y.z. If so,
rename <some-dir>/buildroot-x.y.z to <some-dir>/buildroot.
4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-nxflat .config
6. make oldconfig
7. make
8. Edit setenv.h, if necessary, so that the PATH variable includes
the path to the newly builtNXFLAT binaries.
USB Device Controller Functions USB Device Controller Functions
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -275,124 +327,124 @@ USB Device Controller Functions
Stellaris LM3S8962 Evaluation Kit Configuration Options Stellaris LM3S8962 Evaluation Kit Configuration Options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
CONFIG_ARCH - Identifies the arch/ subdirectory. This should CONFIG_ARCH - Identifies the arch/ subdirectory. This should
be set to: be set to:
CONFIG_ARCH=arm CONFIG_ARCH=arm
CONFIG_ARCH_family - For use in C code: CONFIG_ARCH_family - For use in C code:
CONFIG_ARCH_ARM=y CONFIG_ARCH_ARM=y
CONFIG_ARCH_architecture - For use in C code: CONFIG_ARCH_architecture - For use in C code:
CONFIG_ARCH_CORTEXM3=y CONFIG_ARCH_CORTEXM3=y
CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory
CONFIG_ARCH_CHIP=lm3s CONFIG_ARCH_CHIP=lm3s
CONFIG_ARCH_CHIP_name - For use in C code to identify the exact CONFIG_ARCH_CHIP_name - For use in C code to identify the exact
chip: chip:
CONFIG_ARCH_CHIP_LM3S8962 CONFIG_ARCH_CHIP_LM3S8962
CONFIG_ARCH_BOARD - Identifies the configs subdirectory and CONFIG_ARCH_BOARD - Identifies the configs subdirectory and
hence, the board that supports the particular chip or SoC. hence, the board that supports the particular chip or SoC.
CONFIG_ARCH_BOARD=lm3s8962-ek (for the Stellaris LM3S8962 Evaluation Kit) CONFIG_ARCH_BOARD=lm3s8962-ek (for the Stellaris LM3S8962 Evaluation Kit)
CONFIG_ARCH_BOARD_name - For use in C code CONFIG_ARCH_BOARD_name - For use in C code
CONFIG_ARCH_BOARD_LM3S8962EK CONFIG_ARCH_BOARD_LM3S8962EK
CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation
of delay loops of delay loops
CONFIG_ENDIAN_BIG - define if big endian (default is little CONFIG_ENDIAN_BIG - define if big endian (default is little
endian) endian)
CONFIG_DRAM_SIZE - Describes the installed DRAM (SRAM in this case): CONFIG_DRAM_SIZE - Describes the installed DRAM (SRAM in this case):
CONFIG_DRAM_SIZE=0x00010000 (64Kb) CONFIG_DRAM_SIZE=0x00010000 (64Kb)
CONFIG_DRAM_START - The start address of installed DRAM CONFIG_DRAM_START - The start address of installed DRAM
CONFIG_DRAM_START=0x20000000 CONFIG_DRAM_START=0x20000000
CONFIG_ARCH_IRQPRIO - The LM3S6918 supports interrupt prioritization CONFIG_ARCH_IRQPRIO - The LM3S6918 supports interrupt prioritization
CONFIG_ARCH_IRQPRIO=y CONFIG_ARCH_IRQPRIO=y
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that
have LEDs have LEDs
CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt
stack. If defined, this symbol is the size of the interrupt stack. If defined, this symbol is the size of the interrupt
stack in bytes. If not defined, the user task stacks will be stack in bytes. If not defined, the user task stacks will be
used during interrupt handling. used during interrupt handling.
CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture. CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture.
CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that
cause a 100 second delay during boot-up. This 100 second delay cause a 100 second delay during boot-up. This 100 second delay
serves no purpose other than it allows you to calibratre serves no purpose other than it allows you to calibratre
CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure
the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until
the delay actually is 100 seconds. the delay actually is 100 seconds.
There are configurations for disabling support for interrupts GPIO ports. There are configurations for disabling support for interrupts GPIO ports.
GPIOJ must be disabled because it does not exist on the LM3S6918. GPIOJ must be disabled because it does not exist on the LM3S6918.
Additional interrupt support can be disabled if desired to reduce memory Additional interrupt support can be disabled if desired to reduce memory
footprint. footprint.
CONFIG_LM3S_DISABLE_GPIOA_IRQS=n CONFIG_LM3S_DISABLE_GPIOA_IRQS=n
CONFIG_LM3S_DISABLE_GPIOB_IRQS=n CONFIG_LM3S_DISABLE_GPIOB_IRQS=n
CONFIG_LM3S_DISABLE_GPIOC_IRQS=n CONFIG_LM3S_DISABLE_GPIOC_IRQS=n
CONFIG_LM3S_DISABLE_GPIOD_IRQS=n CONFIG_LM3S_DISABLE_GPIOD_IRQS=n
CONFIG_LM3S_DISABLE_GPIOE_IRQS=n CONFIG_LM3S_DISABLE_GPIOE_IRQS=n
CONFIG_LM3S_DISABLE_GPIOF_IRQS=n CONFIG_LM3S_DISABLE_GPIOF_IRQS=n
CONFIG_LM3S_DISABLE_GPIOG_IRQS=n CONFIG_LM3S_DISABLE_GPIOG_IRQS=n
CONFIG_LM3S_DISABLE_GPIOH_IRQS=n CONFIG_LM3S_DISABLE_GPIOH_IRQS=n
CONFIG_LM3S_DISABLE_GPIOJ_IRQS=y CONFIG_LM3S_DISABLE_GPIOJ_IRQS=y
LM3S6818 specific device driver settings LM3S6818 specific device driver settings
CONFIG_UARTn_SERIAL_CONSOLE - selects the UARTn for the CONFIG_UARTn_SERIAL_CONSOLE - selects the UARTn for the
console and ttys0 (default is the UART0). console and ttys0 (default is the UART0).
CONFIG_UARTn_RXBUFSIZE - Characters are buffered as received. CONFIG_UARTn_RXBUFSIZE - Characters are buffered as received.
This specific the size of the receive buffer This specific the size of the receive buffer
CONFIG_UARTn_TXBUFSIZE - Characters are buffered before CONFIG_UARTn_TXBUFSIZE - Characters are buffered before
being sent. This specific the size of the transmit buffer being sent. This specific the size of the transmit buffer
CONFIG_UARTn_BAUD - The configure BAUD of the UART. Must be CONFIG_UARTn_BAUD - The configure BAUD of the UART. Must be
CONFIG_UARTn_BITS - The number of bits. Must be either 7 or 8. CONFIG_UARTn_BITS - The number of bits. Must be either 7 or 8.
CONFIG_UARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity CONFIG_UARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity
CONFIG_UARTn_2STOP - Two stop bits CONFIG_UARTn_2STOP - Two stop bits
CONFIG_SSI0_DISABLE - Select to disable support for SSI0 CONFIG_SSI0_DISABLE - Select to disable support for SSI0
CONFIG_SSI1_DISABLE - Select to disable support for SSI1 CONFIG_SSI1_DISABLE - Select to disable support for SSI1
CONFIG_SSI_POLLWAIT - Select to disable interrupt driven SSI support. CONFIG_SSI_POLLWAIT - Select to disable interrupt driven SSI support.
Poll-waiting is recommended if the interrupt rate would be to Poll-waiting is recommended if the interrupt rate would be to
high in the interrupt driven case. high in the interrupt driven case.
CONFIG_SSI_TXLIMIT - Write this many words to the Tx FIFO before CONFIG_SSI_TXLIMIT - Write this many words to the Tx FIFO before
emptying the Rx FIFO. If the SPI frequency is high and this emptying the Rx FIFO. If the SPI frequency is high and this
value is large, then larger values of this setting may cause value is large, then larger values of this setting may cause
Rx FIFO overrun errors. Default: half of the Tx FIFO size (4). Rx FIFO overrun errors. Default: half of the Tx FIFO size (4).
CONFIG_LM3S_ETHERNET - This must be set (along with CONFIG_NET) CONFIG_LM3S_ETHERNET - This must be set (along with CONFIG_NET)
to build the LM3S Ethernet driver to build the LM3S Ethernet driver
CONFIG_LM3S_ETHLEDS - Enable to use Ethernet LEDs on the board. CONFIG_LM3S_ETHLEDS - Enable to use Ethernet LEDs on the board.
CONFIG_LM3S_BOARDMAC - If the board-specific logic can provide CONFIG_LM3S_BOARDMAC - If the board-specific logic can provide
a MAC address (via lm3s_ethernetmac()), then this should be selected. a MAC address (via lm3s_ethernetmac()), then this should be selected.
CONFIG_LM3S_ETHHDUPLEX - Set to force half duplex operation CONFIG_LM3S_ETHHDUPLEX - Set to force half duplex operation
CONFIG_LM3S_ETHNOAUTOCRC - Set to suppress auto-CRC generation CONFIG_LM3S_ETHNOAUTOCRC - Set to suppress auto-CRC generation
CONFIG_LM3S_ETHNOPAD - Set to suppress Tx padding CONFIG_LM3S_ETHNOPAD - Set to suppress Tx padding
CONFIG_LM3S_MULTICAST - Set to enable multicast frames CONFIG_LM3S_MULTICAST - Set to enable multicast frames
CONFIG_LM3S_PROMISCUOUS - Set to enable promiscuous mode CONFIG_LM3S_PROMISCUOUS - Set to enable promiscuous mode
CONFIG_LM3S_BADCRC - Set to enable bad CRC rejection. CONFIG_LM3S_BADCRC - Set to enable bad CRC rejection.
CONFIG_LM3S_DUMPPACKET - Dump each packet received/sent to the console. CONFIG_LM3S_DUMPPACKET - Dump each packet received/sent to the console.
Configurations Configurations
^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^
@@ -400,10 +452,10 @@ Configurations
Each Stellaris LM3S8962 Evaluation Kit configuration is maintained in a Each Stellaris LM3S8962 Evaluation Kit configuration is maintained in a
sudirectory and can be selected as follow: sudirectory and can be selected as follow:
cd tools cd tools
./configure.sh lm3s8962-ek/<subdir> ./configure.sh lm3s8962-ek/<subdir>
cd - cd -
. ./setenv.sh . ./setenv.sh
Where <subdir> is one of the following: Where <subdir> is one of the following:
+56 -6
View File
@@ -19,7 +19,9 @@ Contents
Command Line Flash Programming Command Line Flash Programming
Executing from SPIFI Executing from SPIFI
USB DFU Booting USB DFU Booting
- NuttX buildroot Toolchain - NuttX EABI "buildroot" Toolchain
- NuttX OABI "buildroot" Toolchain
- NXFLAT Toolchain
- Serial Console - Serial Console
- FPU - FPU
- LPC4330-Xplorer Configuration Options - LPC4330-Xplorer Configuration Options
@@ -462,8 +464,8 @@ Code Red IDE/Tools
To be provided. To be provided.
NuttX buildroot Toolchain NuttX EABI "buildroot" Toolchain
========================= ================================
A GNU GCC-based toolchain is assumed. The files */setenv.sh should A GNU GCC-based toolchain is assumed. The files */setenv.sh should
be modified to point to the correct path to the Cortex-M3 GCC toolchain (if be modified to point to the correct path to the Cortex-M3 GCC toolchain (if
@@ -486,7 +488,7 @@ NuttX buildroot Toolchain
4. cd <some-dir>/buildroot 4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-4.3.3 .config 5. cp configs/cortexm3-eabi-defconfig-4.6.3 .config
6. make oldconfig 6. make oldconfig
@@ -496,10 +498,58 @@ NuttX buildroot Toolchain
the path to the newly built binaries. the path to the newly built binaries.
See the file configs/README.txt in the buildroot source tree. That has more See the file configs/README.txt in the buildroot source tree. That has more
detailed PLUS some special instructions that you will need to follow if you details PLUS some special instructions that you will need to follow if you
are building a Cortex-M3 toolchain for Cygwin under Windows. are building a Cortex-M3 toolchain for Cygwin under Windows.
NOTE: This is an OABI toolchain. NuttX OABI "buildroot" Toolchain
================================
The older, OABI buildroot toolchain is also available. To use the OABI
toolchain:
1. When building the buildroot toolchain, either (1) modify the cortexm3-eabi-defconfig-4.6.3
configuration to use EABI (using 'make menuconfig'), or (2) use an exising OABI
configuration such as cortexm3-defconfig-4.3.3
2. Modify the Make.defs file to use the OABI converntions:
+CROSSDEV = arm-nuttx-elf-
+ARCHCPUFLAGS = -mtune=cortex-m3 -march=armv7-m -mfloat-abi=soft
-CROSSDEV = arm-nuttx-eabi-
-ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
NXFLAT Toolchain
================
If you are *not* using the NuttX buildroot toolchain and you want to use
the NXFLAT tools, then you will still have to build a portion of the buildroot
tools -- just the NXFLAT tools. The buildroot with the NXFLAT tools can
be downloaded from the NuttX SourceForge download site
(https://sourceforge.net/projects/nuttx/files/).
This GNU toolchain builds and executes in the Linux or Cygwin environment.
1. You must have already configured Nuttx in <some-dir>/nuttx.
cd tools
./configure.sh lpcxpresso-lpc1768/<sub-dir>
2. Download the latest buildroot package into <some-dir>
3. unpack the buildroot tarball. The resulting directory may
have versioning information on it like buildroot-x.y.z. If so,
rename <some-dir>/buildroot-x.y.z to <some-dir>/buildroot.
4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-nxflat .config
6. make oldconfig
7. make
8. Edit setenv.h, if necessary, so that the PATH variable includes
the path to the newly builtNXFLAT binaries.
Serial Console Serial Console
============== ==============
+23 -6
View File
@@ -11,7 +11,9 @@ Contents
Embedded Artist's Base Board Embedded Artist's Base Board
Development Environment Development Environment
GNU Toolchain Options GNU Toolchain Options
NuttX buildroot Toolchain NuttX EABI "buildroot" Toolchain
NuttX OABI "buildroot" Toolchain
NXFLAT Toolchain
Code Red IDE Code Red IDE
LEDs LEDs
LPCXpresso Configuration Options LPCXpresso Configuration Options
@@ -406,8 +408,8 @@ Code Red IDE
All of the above steps are automated in the bash script flash.sh that can All of the above steps are automated in the bash script flash.sh that can
be found in the configs/lpcxpresso/tools directory. be found in the configs/lpcxpresso/tools directory.
NuttX buildroot Toolchain NuttX EABI "buildroot" Toolchain
^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
A GNU GCC-based toolchain is assumed. The files */setenv.sh should A GNU GCC-based toolchain is assumed. The files */setenv.sh should
be modified to point to the correct path to the Cortex-M3 GCC toolchain (if be modified to point to the correct path to the Cortex-M3 GCC toolchain (if
@@ -430,7 +432,7 @@ NuttX buildroot Toolchain
4. cd <some-dir>/buildroot 4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-4.3.3 .config 5. cp configs/cortexm3-eabi-defconfig-4.6.3 .config
6. make oldconfig 6. make oldconfig
@@ -440,10 +442,25 @@ NuttX buildroot Toolchain
the path to the newly built binaries. the path to the newly built binaries.
See the file configs/README.txt in the buildroot source tree. That has more See the file configs/README.txt in the buildroot source tree. That has more
detailed PLUS some special instructions that you will need to follow if you details PLUS some special instructions that you will need to follow if you
are building a Cortex-M3 toolchain for Cygwin under Windows. are building a Cortex-M3 toolchain for Cygwin under Windows.
NOTE: This is an OABI toolchain. NuttX OABI "buildroot" Toolchain
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The older, OABI buildroot toolchain is also available. To use the OABI
toolchain:
1. When building the buildroot toolchain, either (1) modify the cortexm3-eabi-defconfig-4.6.3
configuration to use EABI (using 'make menuconfig'), or (2) use an exising OABI
configuration such as cortexm3-defconfig-4.3.3
2. Modify the Make.defs file to use the OABI converntions:
+CROSSDEV = arm-nuttx-elf-
+ARCHCPUFLAGS = -mtune=cortex-m3 -march=armv7-m -mfloat-abi=soft
-CROSSDEV = arm-nuttx-eabi-
-ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
NXFLAT Toolchain NXFLAT Toolchain
^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
+185 -135
View File
@@ -9,7 +9,9 @@ Contents
Development Environment Development Environment
GNU Toolchain Options GNU Toolchain Options
IDEs IDEs
NuttX buildroot Toolchain NuttX EABI "buildroot" Toolchain
NuttX OABI "buildroot" Toolchain
NXFLAT Toolchain
USB Device Controller Functions USB Device Controller Functions
mbed Configuration Options mbed Configuration Options
USB Host Configuration USB Host Configuration
@@ -120,8 +122,8 @@ IDEs
Startup files will probably cause you some headaches. The NuttX startup file Startup files will probably cause you some headaches. The NuttX startup file
is arch/arm/src/lpc17x/lpc17_vectors.S. is arch/arm/src/lpc17x/lpc17_vectors.S.
NuttX buildroot Toolchain NuttX EABI "buildroot" Toolchain
^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
A GNU GCC-based toolchain is assumed. The files */setenv.sh should A GNU GCC-based toolchain is assumed. The files */setenv.sh should
be modified to point to the correct path to the Cortex-M3 GCC toolchain (if be modified to point to the correct path to the Cortex-M3 GCC toolchain (if
@@ -144,7 +146,7 @@ NuttX buildroot Toolchain
4. cd <some-dir>/buildroot 4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-4.3.3 .config 5. cp configs/cortexm3-eabi-defconfig-4.6.3 .config
6. make oldconfig 6. make oldconfig
@@ -154,184 +156,232 @@ NuttX buildroot Toolchain
the path to the newly built binaries. the path to the newly built binaries.
See the file configs/README.txt in the buildroot source tree. That has more See the file configs/README.txt in the buildroot source tree. That has more
detailed PLUS some special instructions that you will need to follow if you details PLUS some special instructions that you will need to follow if you
are building a Cortex-M3 toolchain for Cygwin under Windows. are building a Cortex-M3 toolchain for Cygwin under Windows.
NOTE: This is an OABI toolchain. NuttX OABI "buildroot" Toolchain
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The older, OABI buildroot toolchain is also available. To use the OABI
toolchain:
1. When building the buildroot toolchain, either (1) modify the cortexm3-eabi-defconfig-4.6.3
configuration to use EABI (using 'make menuconfig'), or (2) use an exising OABI
configuration such as cortexm3-defconfig-4.3.3
2. Modify the Make.defs file to use the OABI converntions:
+CROSSDEV = arm-nuttx-elf-
+ARCHCPUFLAGS = -mtune=cortex-m3 -march=armv7-m -mfloat-abi=soft
-CROSSDEV = arm-nuttx-eabi-
-ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
NXFLAT Toolchain
^^^^^^^^^^^^^^^^
If you are *not* using the NuttX buildroot toolchain and you want to use
the NXFLAT tools, then you will still have to build a portion of the buildroot
tools -- just the NXFLAT tools. The buildroot with the NXFLAT tools can
be downloaded from the NuttX SourceForge download site
(https://sourceforge.net/projects/nuttx/files/).
This GNU toolchain builds and executes in the Linux or Cygwin environment.
1. You must have already configured Nuttx in <some-dir>/nuttx.
cd tools
./configure.sh lpcxpresso-lpc1768/<sub-dir>
2. Download the latest buildroot package into <some-dir>
3. unpack the buildroot tarball. The resulting directory may
have versioning information on it like buildroot-x.y.z. If so,
rename <some-dir>/buildroot-x.y.z to <some-dir>/buildroot.
4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-nxflat .config
6. make oldconfig
7. make
8. Edit setenv.h, if necessary, so that the PATH variable includes
the path to the newly builtNXFLAT binaries.
mbed Configuration Options mbed Configuration Options
^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^
CONFIG_ARCH - Identifies the arch/ subdirectory. This should CONFIG_ARCH - Identifies the arch/ subdirectory. This should
be set to: be set to:
CONFIG_ARCH=arm CONFIG_ARCH=arm
CONFIG_ARCH_family - For use in C code: CONFIG_ARCH_family - For use in C code:
CONFIG_ARCH_ARM=y CONFIG_ARCH_ARM=y
CONFIG_ARCH_architecture - For use in C code: CONFIG_ARCH_architecture - For use in C code:
CONFIG_ARCH_CORTEXM3=y CONFIG_ARCH_CORTEXM3=y
CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory
CONFIG_ARCH_CHIP=lpc17xx CONFIG_ARCH_CHIP=lpc17xx
CONFIG_ARCH_CHIP_name - For use in C code to identify the exact CONFIG_ARCH_CHIP_name - For use in C code to identify the exact
chip: chip:
CONFIG_ARCH_CHIP_LPC1768=y CONFIG_ARCH_CHIP_LPC1768=y
CONFIG_ARCH_BOARD - Identifies the configs subdirectory and CONFIG_ARCH_BOARD - Identifies the configs subdirectory and
hence, the board that supports the particular chip or SoC. hence, the board that supports the particular chip or SoC.
CONFIG_ARCH_BOARD=mbed (for the mbed.org board) CONFIG_ARCH_BOARD=mbed (for the mbed.org board)
CONFIG_ARCH_BOARD_name - For use in C code CONFIG_ARCH_BOARD_name - For use in C code
CONFIG_ARCH_BOARD_MBED=y CONFIG_ARCH_BOARD_MBED=y
CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation
of delay loops of delay loops
CONFIG_ENDIAN_BIG - define if big endian (default is little CONFIG_ENDIAN_BIG - define if big endian (default is little
endian) endian)
CONFIG_DRAM_SIZE - Describes the installed DRAM (CPU SRAM in this case): CONFIG_DRAM_SIZE - Describes the installed DRAM (CPU SRAM in this case):
CONFIG_DRAM_SIZE=(32*1024) (32Kb) CONFIG_DRAM_SIZE=(32*1024) (32Kb)
There is an additional 32Kb of SRAM in AHB SRAM banks 0 and 1. There is an additional 32Kb of SRAM in AHB SRAM banks 0 and 1.
CONFIG_DRAM_START - The start address of installed DRAM CONFIG_DRAM_START - The start address of installed DRAM
CONFIG_DRAM_START=0x10000000 CONFIG_DRAM_START=0x10000000
CONFIG_ARCH_IRQPRIO - The LPC17xx supports interrupt prioritization CONFIG_ARCH_IRQPRIO - The LPC17xx supports interrupt prioritization
CONFIG_ARCH_IRQPRIO=y CONFIG_ARCH_IRQPRIO=y
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that
have LEDs have LEDs
CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt
stack. If defined, this symbol is the size of the interrupt stack. If defined, this symbol is the size of the interrupt
stack in bytes. If not defined, the user task stacks will be stack in bytes. If not defined, the user task stacks will be
used during interrupt handling. used during interrupt handling.
CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture. CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture.
CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that
cause a 100 second delay during boot-up. This 100 second delay cause a 100 second delay during boot-up. This 100 second delay
serves no purpose other than it allows you to calibratre serves no purpose other than it allows you to calibratre
CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure
the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until
the delay actually is 100 seconds. the delay actually is 100 seconds.
Individual subsystems can be enabled: Individual subsystems can be enabled:
CONFIG_LPC17_MAINOSC=y CONFIG_LPC17_MAINOSC=y
CONFIG_LPC17_PLL0=y CONFIG_LPC17_PLL0=y
CONFIG_LPC17_PLL1=n CONFIG_LPC17_PLL1=n
CONFIG_LPC17_ETHERNET=n CONFIG_LPC17_ETHERNET=n
CONFIG_LPC17_USBHOST=n CONFIG_LPC17_USBHOST=n
CONFIG_LPC17_USBOTG=n CONFIG_LPC17_USBOTG=n
CONFIG_LPC17_USBDEV=n CONFIG_LPC17_USBDEV=n
CONFIG_LPC17_UART0=y CONFIG_LPC17_UART0=y
CONFIG_LPC17_UART1=n CONFIG_LPC17_UART1=n
CONFIG_LPC17_UART2=n CONFIG_LPC17_UART2=n
CONFIG_LPC17_UART3=n CONFIG_LPC17_UART3=n
CONFIG_LPC17_CAN1=n CONFIG_LPC17_CAN1=n
CONFIG_LPC17_CAN2=n CONFIG_LPC17_CAN2=n
CONFIG_LPC17_SPI=n CONFIG_LPC17_SPI=n
CONFIG_LPC17_SSP0=n CONFIG_LPC17_SSP0=n
CONFIG_LPC17_SSP1=n CONFIG_LPC17_SSP1=n
CONFIG_LPC17_I2C0=n CONFIG_LPC17_I2C0=n
CONFIG_LPC17_I2C1=n CONFIG_LPC17_I2C1=n
CONFIG_LPC17_I2S=n CONFIG_LPC17_I2S=n
CONFIG_LPC17_TMR0=n CONFIG_LPC17_TMR0=n
CONFIG_LPC17_TMR1=n CONFIG_LPC17_TMR1=n
CONFIG_LPC17_TMR2=n CONFIG_LPC17_TMR2=n
CONFIG_LPC17_TMR3=n CONFIG_LPC17_TMR3=n
CONFIG_LPC17_RIT=n CONFIG_LPC17_RIT=n
CONFIG_LPC17_PWM=n CONFIG_LPC17_PWM=n
CONFIG_LPC17_MCPWM=n CONFIG_LPC17_MCPWM=n
CONFIG_LPC17_QEI=n CONFIG_LPC17_QEI=n
CONFIG_LPC17_RTC=n CONFIG_LPC17_RTC=n
CONFIG_LPC17_WDT=n CONFIG_LPC17_WDT=n
CONFIG_LPC17_ADC=n CONFIG_LPC17_ADC=n
CONFIG_LPC17_DAC=n CONFIG_LPC17_DAC=n
CONFIG_LPC17_GPDMA=n CONFIG_LPC17_GPDMA=n
CONFIG_LPC17_FLASH=n CONFIG_LPC17_FLASH=n
LPC17xx specific device driver settings LPC17xx specific device driver settings
CONFIG_UARTn_SERIAL_CONSOLE - selects the UARTn for the CONFIG_UARTn_SERIAL_CONSOLE - selects the UARTn for the
console and ttys0 (default is the UART0). console and ttys0 (default is the UART0).
CONFIG_UARTn_RXBUFSIZE - Characters are buffered as received. CONFIG_UARTn_RXBUFSIZE - Characters are buffered as received.
This specific the size of the receive buffer This specific the size of the receive buffer
CONFIG_UARTn_TXBUFSIZE - Characters are buffered before CONFIG_UARTn_TXBUFSIZE - Characters are buffered before
being sent. This specific the size of the transmit buffer being sent. This specific the size of the transmit buffer
CONFIG_UARTn_BAUD - The configure BAUD of the UART. Must be CONFIG_UARTn_BAUD - The configure BAUD of the UART. Must be
CONFIG_UARTn_BITS - The number of bits. Must be either 7 or 8. CONFIG_UARTn_BITS - The number of bits. Must be either 7 or 8.
CONFIG_UARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity CONFIG_UARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity
CONFIG_UARTn_2STOP - Two stop bits CONFIG_UARTn_2STOP - Two stop bits
LPC17xx specific CAN device driver settings. These settings all LPC17xx specific CAN device driver settings. These settings all
require CONFIG_CAN: require CONFIG_CAN:
CONFIG_CAN_EXTID - Enables support for the 29-bit extended ID. Default CONFIG_CAN_EXTID - Enables support for the 29-bit extended ID. Default
Standard 11-bit IDs. Standard 11-bit IDs.
CONFIG_CAN1_BAUD - CAN1 BAUD rate. Required if CONFIG_LPC17_CAN1 is defined. CONFIG_CAN1_BAUD - CAN1 BAUD rate. Required if CONFIG_LPC17_CAN1 is defined.
CONFIG_CAN2_BAUD - CAN1 BAUD rate. Required if CONFIG_LPC17_CAN2 is defined. CONFIG_CAN2_BAUD - CAN1 BAUD rate. Required if CONFIG_LPC17_CAN2 is defined.
CONFIG_CAN1_DIVISOR - CAN1 is clocked at CCLK divided by this number. CONFIG_CAN1_DIVISOR - CAN1 is clocked at CCLK divided by this number.
(the CCLK frequency is divided by this number to get the CAN clock). (the CCLK frequency is divided by this number to get the CAN clock).
Options = {1,2,4,6}. Default: 4. Options = {1,2,4,6}. Default: 4.
CONFIG_CAN2_DIVISOR - CAN2 is clocked at CCLK divided by this number. CONFIG_CAN2_DIVISOR - CAN2 is clocked at CCLK divided by this number.
(the CCLK frequency is divided by this number to get the CAN clock). (the CCLK frequency is divided by this number to get the CAN clock).
Options = {1,2,4,6}. Default: 4. Options = {1,2,4,6}. Default: 4.
CONFIG_CAN_TSEG1 - The number of CAN time quanta in segment 1. Default: 6 CONFIG_CAN_TSEG1 - The number of CAN time quanta in segment 1. Default: 6
CONFIG_CAN_TSEG2 = the number of CAN time quanta in segment 2. Default: 7 CONFIG_CAN_TSEG2 = the number of CAN time quanta in segment 2. Default: 7
LPC17xx specific PHY/Ethernet device driver settings. These setting LPC17xx specific PHY/Ethernet device driver settings. These setting
also require CONFIG_NET and CONFIG_LPC17_ETHERNET. also require CONFIG_NET and CONFIG_LPC17_ETHERNET.
CONFIG_PHY_KS8721 - Selects Micrel KS8721 PHY CONFIG_PHY_KS8721 - Selects Micrel KS8721 PHY
CONFIG_PHY_AUTONEG - Enable auto-negotion CONFIG_PHY_AUTONEG - Enable auto-negotion
CONFIG_PHY_SPEED100 - Select 100Mbit vs. 10Mbit speed. CONFIG_PHY_SPEED100 - Select 100Mbit vs. 10Mbit speed.
CONFIG_PHY_FDUPLEX - Select full (vs. half) duplex CONFIG_PHY_FDUPLEX - Select full (vs. half) duplex
CONFIG_NET_EMACRAM_SIZE - Size of EMAC RAM. Default: 16Kb CONFIG_NET_EMACRAM_SIZE - Size of EMAC RAM. Default: 16Kb
CONFIG_NET_NTXDESC - Configured number of Tx descriptors. Default: 18 CONFIG_NET_NTXDESC - Configured number of Tx descriptors. Default: 18
CONFIG_NET_NRXDESC - Configured number of Rx descriptors. Default: 18 CONFIG_NET_NRXDESC - Configured number of Rx descriptors. Default: 18
CONFIG_NET_PRIORITY - Ethernet interrupt priority. The is default is CONFIG_NET_PRIORITY - Ethernet interrupt priority. The is default is
the higest priority. the higest priority.
CONFIG_NET_WOL - Enable Wake-up on Lan (not fully implemented). CONFIG_NET_WOL - Enable Wake-up on Lan (not fully implemented).
CONFIG_NET_REGDEBUG - Enabled low level register debug. Also needs CONFIG_NET_REGDEBUG - Enabled low level register debug. Also needs
CONFIG_DEBUG. CONFIG_DEBUG.
CONFIG_NET_DUMPPACKET - Dump all received and transmitted packets. CONFIG_NET_DUMPPACKET - Dump all received and transmitted packets.
Also needs CONFIG_DEBUG. Also needs CONFIG_DEBUG.
CONFIG_NET_HASH - Enable receipt of near-perfect match frames. CONFIG_NET_HASH - Enable receipt of near-perfect match frames.
CONFIG_NET_MULTICAST - Enable receipt of multicast (and unicast) frames. CONFIG_NET_MULTICAST - Enable receipt of multicast (and unicast) frames.
Automatically set if CONFIG_NET_IGMP is selected. Automatically set if CONFIG_NET_IGMP is selected.
LPC17xx USB Device Configuration LPC17xx USB Device Configuration
CONFIG_LPC17_USBDEV_FRAME_INTERRUPT CONFIG_LPC17_USBDEV_FRAME_INTERRUPT
Handle USB Start-Of-Frame events. Handle USB Start-Of-Frame events.
Enable reading SOF from interrupt handler vs. simply reading on demand. Enable reading SOF from interrupt handler vs. simply reading on demand.
Probably a bad idea... Unless there is some issue with sampling the SOF Probably a bad idea... Unless there is some issue with sampling the SOF
from hardware asynchronously. from hardware asynchronously.
CONFIG_LPC17_USBDEV_EPFAST_INTERRUPT CONFIG_LPC17_USBDEV_EPFAST_INTERRUPT
Enable high priority interrupts. I have no idea why you might want to Enable high priority interrupts. I have no idea why you might want to
do that do that
CONFIG_LPC17_USBDEV_NDMADESCRIPTORS CONFIG_LPC17_USBDEV_NDMADESCRIPTORS
Number of DMA descriptors to allocate in SRAM. Number of DMA descriptors to allocate in SRAM.
CONFIG_LPC17_USBDEV_DMA CONFIG_LPC17_USBDEV_DMA
Enable lpc17xx-specific DMA support Enable lpc17xx-specific DMA support
CONFIG_LPC17_USBDEV_NOVBUS CONFIG_LPC17_USBDEV_NOVBUS
Define if the hardware implementation does not support the VBUS signal Define if the hardware implementation does not support the VBUS signal
CONFIG_LPC17_USBDEV_NOLED CONFIG_LPC17_USBDEV_NOLED
@@ -396,10 +446,10 @@ Configurations
Each mbed configuration is maintained in a sudirectory and can be selected Each mbed configuration is maintained in a sudirectory and can be selected
as follow: as follow:
cd tools cd tools
./configure.sh mbed/<subdir> ./configure.sh mbed/<subdir>
cd - cd -
. ./setenv.sh . ./setenv.sh
Where <subdir> is one of the following: Where <subdir> is one of the following:
+1 -1
View File
@@ -113,7 +113,7 @@ NuttX buildroot Toolchain
4. cd <some-dir>/buildroot 4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-4.3.3 .config 5. cp configs/arm7tdmi-defconfig-4.3.3 .config
6. make oldconfig 6. make oldconfig
+185 -135
View File
@@ -11,7 +11,9 @@ Contents
Development Environment Development Environment
GNU Toolchain Options GNU Toolchain Options
IDEs IDEs
NuttX buildroot Toolchain NuttX EABI "buildroot" Toolchain
NuttX OABI "buildroot" Toolchain
NXFLAT Toolchain
LEDs LEDs
Nucleus 2G Configuration Options Nucleus 2G Configuration Options
Configurations Configurations
@@ -180,8 +182,8 @@ IDEs
Startup files will probably cause you some headaches. The NuttX startup file Startup files will probably cause you some headaches. The NuttX startup file
is arch/arm/src/lpc17x/lpc17_vectors.S. is arch/arm/src/lpc17x/lpc17_vectors.S.
NuttX buildroot Toolchain NuttX EABI "buildroot" Toolchain
^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
A GNU GCC-based toolchain is assumed. The files */setenv.sh should A GNU GCC-based toolchain is assumed. The files */setenv.sh should
be modified to point to the correct path to the Cortex-M3 GCC toolchain (if be modified to point to the correct path to the Cortex-M3 GCC toolchain (if
@@ -204,7 +206,7 @@ NuttX buildroot Toolchain
4. cd <some-dir>/buildroot 4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-4.3.3 .config 5. cp configs/cortexm3-eabi-defconfig-4.6.3 .config
6. make oldconfig 6. make oldconfig
@@ -214,10 +216,58 @@ NuttX buildroot Toolchain
the path to the newly built binaries. the path to the newly built binaries.
See the file configs/README.txt in the buildroot source tree. That has more See the file configs/README.txt in the buildroot source tree. That has more
detailed PLUS some special instructions that you will need to follow if you details PLUS some special instructions that you will need to follow if you
are building a Cortex-M3 toolchain for Cygwin under Windows. are building a Cortex-M3 toolchain for Cygwin under Windows.
NOTE: This is an OABI toolchain. NuttX OABI "buildroot" Toolchain
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The older, OABI buildroot toolchain is also available. To use the OABI
toolchain:
1. When building the buildroot toolchain, either (1) modify the cortexm3-eabi-defconfig-4.6.3
configuration to use EABI (using 'make menuconfig'), or (2) use an exising OABI
configuration such as cortexm3-defconfig-4.3.3
2. Modify the Make.defs file to use the OABI converntions:
+CROSSDEV = arm-nuttx-elf-
+ARCHCPUFLAGS = -mtune=cortex-m3 -march=armv7-m -mfloat-abi=soft
-CROSSDEV = arm-nuttx-eabi-
-ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
NXFLAT Toolchain
^^^^^^^^^^^^^^^^
If you are *not* using the NuttX buildroot toolchain and you want to use
the NXFLAT tools, then you will still have to build a portion of the buildroot
tools -- just the NXFLAT tools. The buildroot with the NXFLAT tools can
be downloaded from the NuttX SourceForge download site
(https://sourceforge.net/projects/nuttx/files/).
This GNU toolchain builds and executes in the Linux or Cygwin environment.
1. You must have already configured Nuttx in <some-dir>/nuttx.
cd tools
./configure.sh lpcxpresso-lpc1768/<sub-dir>
2. Download the latest buildroot package into <some-dir>
3. unpack the buildroot tarball. The resulting directory may
have versioning information on it like buildroot-x.y.z. If so,
rename <some-dir>/buildroot-x.y.z to <some-dir>/buildroot.
4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-nxflat .config
6. make oldconfig
7. make
8. Edit setenv.h, if necessary, so that the PATH variable includes
the path to the newly builtNXFLAT binaries.
LEDs LEDs
^^^^ ^^^^
@@ -274,176 +324,176 @@ LEDs
Nucleus 2G Configuration Options Nucleus 2G Configuration Options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
CONFIG_ARCH - Identifies the arch/ subdirectory. This should CONFIG_ARCH - Identifies the arch/ subdirectory. This should
be set to: be set to:
CONFIG_ARCH=arm CONFIG_ARCH=arm
CONFIG_ARCH_family - For use in C code: CONFIG_ARCH_family - For use in C code:
CONFIG_ARCH_ARM=y CONFIG_ARCH_ARM=y
CONFIG_ARCH_architecture - For use in C code: CONFIG_ARCH_architecture - For use in C code:
CONFIG_ARCH_CORTEXM3=y CONFIG_ARCH_CORTEXM3=y
CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory
CONFIG_ARCH_CHIP=lpc17xx CONFIG_ARCH_CHIP=lpc17xx
CONFIG_ARCH_CHIP_name - For use in C code to identify the exact CONFIG_ARCH_CHIP_name - For use in C code to identify the exact
chip: chip:
CONFIG_ARCH_CHIP_LPC1768=y CONFIG_ARCH_CHIP_LPC1768=y
CONFIG_ARCH_BOARD - Identifies the configs subdirectory and CONFIG_ARCH_BOARD - Identifies the configs subdirectory and
hence, the board that supports the particular chip or SoC. hence, the board that supports the particular chip or SoC.
CONFIG_ARCH_BOARD=nucleus2g (for the Nucleus 2G) CONFIG_ARCH_BOARD=nucleus2g (for the Nucleus 2G)
CONFIG_ARCH_BOARD_name - For use in C code CONFIG_ARCH_BOARD_name - For use in C code
CONFIG_ARCH_BOARD_NUCLEUS2G=y CONFIG_ARCH_BOARD_NUCLEUS2G=y
CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation
of delay loops of delay loops
CONFIG_ENDIAN_BIG - define if big endian (default is little CONFIG_ENDIAN_BIG - define if big endian (default is little
endian) endian)
CONFIG_DRAM_SIZE - Describes the installed DRAM (CPU SRAM in this case): CONFIG_DRAM_SIZE - Describes the installed DRAM (CPU SRAM in this case):
CONFIG_DRAM_SIZE=(32*1024) (32Kb) CONFIG_DRAM_SIZE=(32*1024) (32Kb)
There is an additional 32Kb of SRAM in AHB SRAM banks 0 and 1. There is an additional 32Kb of SRAM in AHB SRAM banks 0 and 1.
CONFIG_DRAM_START - The start address of installed DRAM CONFIG_DRAM_START - The start address of installed DRAM
CONFIG_DRAM_START=0x10000000 CONFIG_DRAM_START=0x10000000
CONFIG_ARCH_IRQPRIO - The LPC17xx supports interrupt prioritization CONFIG_ARCH_IRQPRIO - The LPC17xx supports interrupt prioritization
CONFIG_ARCH_IRQPRIO=y CONFIG_ARCH_IRQPRIO=y
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that
have LEDs have LEDs
CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt
stack. If defined, this symbol is the size of the interrupt stack. If defined, this symbol is the size of the interrupt
stack in bytes. If not defined, the user task stacks will be stack in bytes. If not defined, the user task stacks will be
used during interrupt handling. used during interrupt handling.
CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture. CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture.
CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that
cause a 100 second delay during boot-up. This 100 second delay cause a 100 second delay during boot-up. This 100 second delay
serves no purpose other than it allows you to calibratre serves no purpose other than it allows you to calibratre
CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure
the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until
the delay actually is 100 seconds. the delay actually is 100 seconds.
Individual subsystems can be enabled: Individual subsystems can be enabled:
CONFIG_LPC17_MAINOSC=y CONFIG_LPC17_MAINOSC=y
CONFIG_LPC17_PLL0=y CONFIG_LPC17_PLL0=y
CONFIG_LPC17_PLL1=n CONFIG_LPC17_PLL1=n
CONFIG_LPC17_ETHERNET=n CONFIG_LPC17_ETHERNET=n
CONFIG_LPC17_USBHOST=n CONFIG_LPC17_USBHOST=n
CONFIG_LPC17_USBOTG=n CONFIG_LPC17_USBOTG=n
CONFIG_LPC17_USBDEV=n CONFIG_LPC17_USBDEV=n
CONFIG_LPC17_UART0=y CONFIG_LPC17_UART0=y
CONFIG_LPC17_UART1=n CONFIG_LPC17_UART1=n
CONFIG_LPC17_UART2=n CONFIG_LPC17_UART2=n
CONFIG_LPC17_UART3=n CONFIG_LPC17_UART3=n
CONFIG_LPC17_CAN1=n CONFIG_LPC17_CAN1=n
CONFIG_LPC17_CAN2=n CONFIG_LPC17_CAN2=n
CONFIG_LPC17_SPI=n CONFIG_LPC17_SPI=n
CONFIG_LPC17_SSP0=n CONFIG_LPC17_SSP0=n
CONFIG_LPC17_SSP1=n CONFIG_LPC17_SSP1=n
CONFIG_LPC17_I2C0=n CONFIG_LPC17_I2C0=n
CONFIG_LPC17_I2C1=n CONFIG_LPC17_I2C1=n
CONFIG_LPC17_I2S=n CONFIG_LPC17_I2S=n
CONFIG_LPC17_TMR0=n CONFIG_LPC17_TMR0=n
CONFIG_LPC17_TMR1=n CONFIG_LPC17_TMR1=n
CONFIG_LPC17_TMR2=n CONFIG_LPC17_TMR2=n
CONFIG_LPC17_TMR3=n CONFIG_LPC17_TMR3=n
CONFIG_LPC17_RIT=n CONFIG_LPC17_RIT=n
CONFIG_LPC17_PWM=n CONFIG_LPC17_PWM=n
CONFIG_LPC17_MCPWM=n CONFIG_LPC17_MCPWM=n
CONFIG_LPC17_QEI=n CONFIG_LPC17_QEI=n
CONFIG_LPC17_RTC=n CONFIG_LPC17_RTC=n
CONFIG_LPC17_WDT=n CONFIG_LPC17_WDT=n
CONFIG_LPC17_ADC=n CONFIG_LPC17_ADC=n
CONFIG_LPC17_DAC=n CONFIG_LPC17_DAC=n
CONFIG_LPC17_GPDMA=n CONFIG_LPC17_GPDMA=n
CONFIG_LPC17_FLASH=n CONFIG_LPC17_FLASH=n
LPC17xx specific device driver settings LPC17xx specific device driver settings
CONFIG_UARTn_SERIAL_CONSOLE - selects the UARTn for the CONFIG_UARTn_SERIAL_CONSOLE - selects the UARTn for the
console and ttys0 (default is the UART0). console and ttys0 (default is the UART0).
CONFIG_UARTn_RXBUFSIZE - Characters are buffered as received. CONFIG_UARTn_RXBUFSIZE - Characters are buffered as received.
This specific the size of the receive buffer This specific the size of the receive buffer
CONFIG_UARTn_TXBUFSIZE - Characters are buffered before CONFIG_UARTn_TXBUFSIZE - Characters are buffered before
being sent. This specific the size of the transmit buffer being sent. This specific the size of the transmit buffer
CONFIG_UARTn_BAUD - The configure BAUD of the UART. Must be CONFIG_UARTn_BAUD - The configure BAUD of the UART. Must be
CONFIG_UARTn_BITS - The number of bits. Must be either 7 or 8. CONFIG_UARTn_BITS - The number of bits. Must be either 7 or 8.
CONFIG_UARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity CONFIG_UARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity
CONFIG_UARTn_2STOP - Two stop bits CONFIG_UARTn_2STOP - Two stop bits
LPC17xx specific CAN device driver settings. These settings all LPC17xx specific CAN device driver settings. These settings all
require CONFIG_CAN: require CONFIG_CAN:
CONFIG_CAN_EXTID - Enables support for the 29-bit extended ID. Default CONFIG_CAN_EXTID - Enables support for the 29-bit extended ID. Default
Standard 11-bit IDs. Standard 11-bit IDs.
CONFIG_CAN1_BAUD - CAN1 BAUD rate. Required if CONFIG_LPC17_CAN1 is defined. CONFIG_CAN1_BAUD - CAN1 BAUD rate. Required if CONFIG_LPC17_CAN1 is defined.
CONFIG_CAN2_BAUD - CAN1 BAUD rate. Required if CONFIG_LPC17_CAN2 is defined. CONFIG_CAN2_BAUD - CAN1 BAUD rate. Required if CONFIG_LPC17_CAN2 is defined.
CONFIG_CAN1_DIVISOR - CAN1 is clocked at CCLK divided by this number. CONFIG_CAN1_DIVISOR - CAN1 is clocked at CCLK divided by this number.
(the CCLK frequency is divided by this number to get the CAN clock). (the CCLK frequency is divided by this number to get the CAN clock).
Options = {1,2,4,6}. Default: 4. Options = {1,2,4,6}. Default: 4.
CONFIG_CAN2_DIVISOR - CAN2 is clocked at CCLK divided by this number. CONFIG_CAN2_DIVISOR - CAN2 is clocked at CCLK divided by this number.
(the CCLK frequency is divided by this number to get the CAN clock). (the CCLK frequency is divided by this number to get the CAN clock).
Options = {1,2,4,6}. Default: 4. Options = {1,2,4,6}. Default: 4.
CONFIG_CAN_TSEG1 - The number of CAN time quanta in segment 1. Default: 6 CONFIG_CAN_TSEG1 - The number of CAN time quanta in segment 1. Default: 6
CONFIG_CAN_TSEG2 = the number of CAN time quanta in segment 2. Default: 7 CONFIG_CAN_TSEG2 = the number of CAN time quanta in segment 2. Default: 7
LPC17xx specific PHY/Ethernet device driver settings. These setting LPC17xx specific PHY/Ethernet device driver settings. These setting
also require CONFIG_NET and CONFIG_LPC17_ETHERNET. also require CONFIG_NET and CONFIG_LPC17_ETHERNET.
CONFIG_PHY_KS8721 - Selects Micrel KS8721 PHY CONFIG_PHY_KS8721 - Selects Micrel KS8721 PHY
CONFIG_PHY_AUTONEG - Enable auto-negotion CONFIG_PHY_AUTONEG - Enable auto-negotion
CONFIG_PHY_SPEED100 - Select 100Mbit vs. 10Mbit speed. CONFIG_PHY_SPEED100 - Select 100Mbit vs. 10Mbit speed.
CONFIG_PHY_FDUPLEX - Select full (vs. half) duplex CONFIG_PHY_FDUPLEX - Select full (vs. half) duplex
CONFIG_NET_EMACRAM_SIZE - Size of EMAC RAM. Default: 16Kb CONFIG_NET_EMACRAM_SIZE - Size of EMAC RAM. Default: 16Kb
CONFIG_NET_NTXDESC - Configured number of Tx descriptors. Default: 18 CONFIG_NET_NTXDESC - Configured number of Tx descriptors. Default: 18
CONFIG_NET_NRXDESC - Configured number of Rx descriptors. Default: 18 CONFIG_NET_NRXDESC - Configured number of Rx descriptors. Default: 18
CONFIG_NET_PRIORITY - Ethernet interrupt priority. The is default is CONFIG_NET_PRIORITY - Ethernet interrupt priority. The is default is
the higest priority. the higest priority.
CONFIG_NET_WOL - Enable Wake-up on Lan (not fully implemented). CONFIG_NET_WOL - Enable Wake-up on Lan (not fully implemented).
CONFIG_NET_REGDEBUG - Enabled low level register debug. Also needs CONFIG_NET_REGDEBUG - Enabled low level register debug. Also needs
CONFIG_DEBUG. CONFIG_DEBUG.
CONFIG_NET_DUMPPACKET - Dump all received and transmitted packets. CONFIG_NET_DUMPPACKET - Dump all received and transmitted packets.
Also needs CONFIG_DEBUG. Also needs CONFIG_DEBUG.
CONFIG_NET_HASH - Enable receipt of near-perfect match frames. CONFIG_NET_HASH - Enable receipt of near-perfect match frames.
CONFIG_NET_MULTICAST - Enable receipt of multicast (and unicast) frames. CONFIG_NET_MULTICAST - Enable receipt of multicast (and unicast) frames.
Automatically set if CONFIG_NET_IGMP is selected. Automatically set if CONFIG_NET_IGMP is selected.
LPC17xx USB Device Configuration LPC17xx USB Device Configuration
CONFIG_LPC17_USBDEV_FRAME_INTERRUPT CONFIG_LPC17_USBDEV_FRAME_INTERRUPT
Handle USB Start-Of-Frame events. Handle USB Start-Of-Frame events.
Enable reading SOF from interrupt handler vs. simply reading on demand. Enable reading SOF from interrupt handler vs. simply reading on demand.
Probably a bad idea... Unless there is some issue with sampling the SOF Probably a bad idea... Unless there is some issue with sampling the SOF
from hardware asynchronously. from hardware asynchronously.
CONFIG_LPC17_USBDEV_EPFAST_INTERRUPT CONFIG_LPC17_USBDEV_EPFAST_INTERRUPT
Enable high priority interrupts. I have no idea why you might want to Enable high priority interrupts. I have no idea why you might want to
do that do that
CONFIG_LPC17_USBDEV_NDMADESCRIPTORS CONFIG_LPC17_USBDEV_NDMADESCRIPTORS
Number of DMA descriptors to allocate in SRAM. Number of DMA descriptors to allocate in SRAM.
CONFIG_LPC17_USBDEV_DMA CONFIG_LPC17_USBDEV_DMA
Enable lpc17xx-specific DMA support Enable lpc17xx-specific DMA support
CONFIG_LPC17_USBDEV_NOVBUS CONFIG_LPC17_USBDEV_NOVBUS
Define if the hardware implementation does not support the VBUS signal Define if the hardware implementation does not support the VBUS signal
CONFIG_LPC17_USBDEV_NOLED CONFIG_LPC17_USBDEV_NOLED
@@ -472,10 +522,10 @@ Configurations
Each Nucleus 2G configuration is maintained in a Each Nucleus 2G configuration is maintained in a
sudirectory and can be selected as follow: sudirectory and can be selected as follow:
cd tools cd tools
./configure.sh nucleus2g/<subdir> ./configure.sh nucleus2g/<subdir>
cd - cd -
. ./setenv.sh . ./setenv.sh
Where <subdir> is one of the following: Where <subdir> is one of the following:
+186 -136
View File
@@ -10,7 +10,9 @@ Contents
Development Environment Development Environment
GNU Toolchain Options GNU Toolchain Options
IDEs IDEs
NuttX buildroot Toolchain NuttX EABI "buildroot" Toolchain
NuttX OABI "buildroot" Toolchain
NXFLAT Toolchain
LEDs LEDs
Using OpenOCD and GDB with an FT2232 JTAG emulator Using OpenOCD and GDB with an FT2232 JTAG emulator
Olimex LPC1766-STK Configuration Options Olimex LPC1766-STK Configuration Options
@@ -268,8 +270,8 @@ IDEs
Startup files will probably cause you some headaches. The NuttX startup file Startup files will probably cause you some headaches. The NuttX startup file
is arch/arm/src/lpc17x/lpc17_vectors.S. is arch/arm/src/lpc17x/lpc17_vectors.S.
NuttX buildroot Toolchain NuttX EABI "buildroot" Toolchain
^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
A GNU GCC-based toolchain is assumed. The files */setenv.sh should A GNU GCC-based toolchain is assumed. The files */setenv.sh should
be modified to point to the correct path to the Cortex-M3 GCC toolchain (if be modified to point to the correct path to the Cortex-M3 GCC toolchain (if
@@ -292,7 +294,7 @@ NuttX buildroot Toolchain
4. cd <some-dir>/buildroot 4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-4.3.3 .config 5. cp configs/cortexm3-eabi-defconfig-4.6.3 .config
6. make oldconfig 6. make oldconfig
@@ -302,10 +304,58 @@ NuttX buildroot Toolchain
the path to the newly built binaries. the path to the newly built binaries.
See the file configs/README.txt in the buildroot source tree. That has more See the file configs/README.txt in the buildroot source tree. That has more
detailed PLUS some special instructions that you will need to follow if you details PLUS some special instructions that you will need to follow if you
are building a Cortex-M3 toolchain for Cygwin under Windows. are building a Cortex-M3 toolchain for Cygwin under Windows.
NOTE: This is an OABI toolchain. NuttX OABI "buildroot" Toolchain
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The older, OABI buildroot toolchain is also available. To use the OABI
toolchain:
1. When building the buildroot toolchain, either (1) modify the cortexm3-eabi-defconfig-4.6.3
configuration to use EABI (using 'make menuconfig'), or (2) use an exising OABI
configuration such as cortexm3-defconfig-4.3.3
2. Modify the Make.defs file to use the OABI converntions:
+CROSSDEV = arm-nuttx-elf-
+ARCHCPUFLAGS = -mtune=cortex-m3 -march=armv7-m -mfloat-abi=soft
-CROSSDEV = arm-nuttx-eabi-
-ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
NXFLAT Toolchain
^^^^^^^^^^^^^^^^
If you are *not* using the NuttX buildroot toolchain and you want to use
the NXFLAT tools, then you will still have to build a portion of the buildroot
tools -- just the NXFLAT tools. The buildroot with the NXFLAT tools can
be downloaded from the NuttX SourceForge download site
(https://sourceforge.net/projects/nuttx/files/).
This GNU toolchain builds and executes in the Linux or Cygwin environment.
1. You must have already configured Nuttx in <some-dir>/nuttx.
cd tools
./configure.sh lpcxpresso-lpc1768/<sub-dir>
2. Download the latest buildroot package into <some-dir>
3. unpack the buildroot tarball. The resulting directory may
have versioning information on it like buildroot-x.y.z. If so,
rename <some-dir>/buildroot-x.y.z to <some-dir>/buildroot.
4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-nxflat .config
6. make oldconfig
7. make
8. Edit setenv.h, if necessary, so that the PATH variable includes
the path to the newly builtNXFLAT binaries.
LEDs LEDs
^^^^ ^^^^
@@ -570,177 +620,177 @@ Using OpenOCD and GDB with an FT2232 JTAG emulator
Olimex LPC1766-STK Configuration Options Olimex LPC1766-STK Configuration Options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
CONFIG_ARCH - Identifies the arch/ subdirectory. This should CONFIG_ARCH - Identifies the arch/ subdirectory. This should
be set to: be set to:
CONFIG_ARCH=arm CONFIG_ARCH=arm
CONFIG_ARCH_family - For use in C code: CONFIG_ARCH_family - For use in C code:
CONFIG_ARCH_ARM=y CONFIG_ARCH_ARM=y
CONFIG_ARCH_architecture - For use in C code: CONFIG_ARCH_architecture - For use in C code:
CONFIG_ARCH_CORTEXM3=y CONFIG_ARCH_CORTEXM3=y
CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory
CONFIG_ARCH_CHIP=lpc17xx CONFIG_ARCH_CHIP=lpc17xx
CONFIG_ARCH_CHIP_name - For use in C code to identify the exact CONFIG_ARCH_CHIP_name - For use in C code to identify the exact
chip: chip:
CONFIG_ARCH_CHIP_LPC1766=y CONFIG_ARCH_CHIP_LPC1766=y
CONFIG_ARCH_BOARD - Identifies the configs subdirectory and CONFIG_ARCH_BOARD - Identifies the configs subdirectory and
hence, the board that supports the particular chip or SoC. hence, the board that supports the particular chip or SoC.
CONFIG_ARCH_BOARD=olimex-lpc1766stk (for the Olimex LPC1766-STK) CONFIG_ARCH_BOARD=olimex-lpc1766stk (for the Olimex LPC1766-STK)
CONFIG_ARCH_BOARD_name - For use in C code CONFIG_ARCH_BOARD_name - For use in C code
CONFIG_ARCH_BOARD_LPC1766STK=y CONFIG_ARCH_BOARD_LPC1766STK=y
CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation
of delay loops of delay loops
CONFIG_ENDIAN_BIG - define if big endian (default is little CONFIG_ENDIAN_BIG - define if big endian (default is little
endian) endian)
CONFIG_DRAM_SIZE - Describes the installed DRAM (CPU SRAM in this case): CONFIG_DRAM_SIZE - Describes the installed DRAM (CPU SRAM in this case):
CONFIG_DRAM_SIZE=(32*1024) (32Kb) CONFIG_DRAM_SIZE=(32*1024) (32Kb)
There is an additional 32Kb of SRAM in AHB SRAM banks 0 and 1. There is an additional 32Kb of SRAM in AHB SRAM banks 0 and 1.
CONFIG_DRAM_START - The start address of installed DRAM CONFIG_DRAM_START - The start address of installed DRAM
CONFIG_DRAM_START=0x10000000 CONFIG_DRAM_START=0x10000000
CONFIG_ARCH_IRQPRIO - The LPC17xx supports interrupt prioritization CONFIG_ARCH_IRQPRIO - The LPC17xx supports interrupt prioritization
CONFIG_ARCH_IRQPRIO=y CONFIG_ARCH_IRQPRIO=y
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that
have LEDs have LEDs
CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt
stack. If defined, this symbol is the size of the interrupt stack. If defined, this symbol is the size of the interrupt
stack in bytes. If not defined, the user task stacks will be stack in bytes. If not defined, the user task stacks will be
used during interrupt handling. used during interrupt handling.
CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture. CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture.
CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that
cause a 100 second delay during boot-up. This 100 second delay cause a 100 second delay during boot-up. This 100 second delay
serves no purpose other than it allows you to calibratre serves no purpose other than it allows you to calibratre
CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure
the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until
the delay actually is 100 seconds. the delay actually is 100 seconds.
Individual subsystems can be enabled: Individual subsystems can be enabled:
CONFIG_LPC17_MAINOSC=y CONFIG_LPC17_MAINOSC=y
CONFIG_LPC17_PLL0=y CONFIG_LPC17_PLL0=y
CONFIG_LPC17_PLL1=n CONFIG_LPC17_PLL1=n
CONFIG_LPC17_ETHERNET=n CONFIG_LPC17_ETHERNET=n
CONFIG_LPC17_USBHOST=n CONFIG_LPC17_USBHOST=n
CONFIG_LPC17_USBOTG=n CONFIG_LPC17_USBOTG=n
CONFIG_LPC17_USBDEV=n CONFIG_LPC17_USBDEV=n
CONFIG_LPC17_UART0=y CONFIG_LPC17_UART0=y
CONFIG_LPC17_UART1=n CONFIG_LPC17_UART1=n
CONFIG_LPC17_UART2=n CONFIG_LPC17_UART2=n
CONFIG_LPC17_UART3=n CONFIG_LPC17_UART3=n
CONFIG_LPC17_CAN1=n CONFIG_LPC17_CAN1=n
CONFIG_LPC17_CAN2=n CONFIG_LPC17_CAN2=n
CONFIG_LPC17_SPI=n CONFIG_LPC17_SPI=n
CONFIG_LPC17_SSP0=n CONFIG_LPC17_SSP0=n
CONFIG_LPC17_SSP1=n CONFIG_LPC17_SSP1=n
CONFIG_LPC17_I2C0=n CONFIG_LPC17_I2C0=n
CONFIG_LPC17_I2C1=n CONFIG_LPC17_I2C1=n
CONFIG_LPC17_I2S=n CONFIG_LPC17_I2S=n
CONFIG_LPC17_TMR0=n CONFIG_LPC17_TMR0=n
CONFIG_LPC17_TMR1=n CONFIG_LPC17_TMR1=n
CONFIG_LPC17_TMR2=n CONFIG_LPC17_TMR2=n
CONFIG_LPC17_TMR3=n CONFIG_LPC17_TMR3=n
CONFIG_LPC17_RIT=n CONFIG_LPC17_RIT=n
CONFIG_LPC17_PWM=n CONFIG_LPC17_PWM=n
CONFIG_LPC17_MCPWM=n CONFIG_LPC17_MCPWM=n
CONFIG_LPC17_QEI=n CONFIG_LPC17_QEI=n
CONFIG_LPC17_RTC=n CONFIG_LPC17_RTC=n
CONFIG_LPC17_WDT=n CONFIG_LPC17_WDT=n
CONFIG_LPC17_ADC=n CONFIG_LPC17_ADC=n
CONFIG_LPC17_DAC=n CONFIG_LPC17_DAC=n
CONFIG_LPC17_GPDMA=n CONFIG_LPC17_GPDMA=n
CONFIG_LPC17_FLASH=n CONFIG_LPC17_FLASH=n
LPC17xx specific device driver settings LPC17xx specific device driver settings
CONFIG_UARTn_SERIAL_CONSOLE - selects the UARTn for the CONFIG_UARTn_SERIAL_CONSOLE - selects the UARTn for the
console and ttys0 (default is the UART0). console and ttys0 (default is the UART0).
CONFIG_UARTn_RXBUFSIZE - Characters are buffered as received. CONFIG_UARTn_RXBUFSIZE - Characters are buffered as received.
This specific the size of the receive buffer This specific the size of the receive buffer
CONFIG_UARTn_TXBUFSIZE - Characters are buffered before CONFIG_UARTn_TXBUFSIZE - Characters are buffered before
being sent. This specific the size of the transmit buffer being sent. This specific the size of the transmit buffer
CONFIG_UARTn_BAUD - The configure BAUD of the UART. Must be CONFIG_UARTn_BAUD - The configure BAUD of the UART. Must be
CONFIG_UARTn_BITS - The number of bits. Must be either 7 or 8. CONFIG_UARTn_BITS - The number of bits. Must be either 7 or 8.
CONFIG_UARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity CONFIG_UARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity
CONFIG_UARTn_2STOP - Two stop bits CONFIG_UARTn_2STOP - Two stop bits
LPC17xx specific CAN device driver settings. These settings all LPC17xx specific CAN device driver settings. These settings all
require CONFIG_CAN: require CONFIG_CAN:
CONFIG_CAN_EXTID - Enables support for the 29-bit extended ID. Default CONFIG_CAN_EXTID - Enables support for the 29-bit extended ID. Default
Standard 11-bit IDs. Standard 11-bit IDs.
CONFIG_CAN1_BAUD - CAN1 BAUD rate. Required if CONFIG_LPC17_CAN1 is defined. CONFIG_CAN1_BAUD - CAN1 BAUD rate. Required if CONFIG_LPC17_CAN1 is defined.
CONFIG_CAN2_BAUD - CAN1 BAUD rate. Required if CONFIG_LPC17_CAN2 is defined. CONFIG_CAN2_BAUD - CAN1 BAUD rate. Required if CONFIG_LPC17_CAN2 is defined.
CONFIG_CAN1_DIVISOR - CAN1 is clocked at CCLK divided by this number. CONFIG_CAN1_DIVISOR - CAN1 is clocked at CCLK divided by this number.
(the CCLK frequency is divided by this number to get the CAN clock). (the CCLK frequency is divided by this number to get the CAN clock).
Options = {1,2,4,6}. Default: 4. Options = {1,2,4,6}. Default: 4.
CONFIG_CAN2_DIVISOR - CAN2 is clocked at CCLK divided by this number. CONFIG_CAN2_DIVISOR - CAN2 is clocked at CCLK divided by this number.
(the CCLK frequency is divided by this number to get the CAN clock). (the CCLK frequency is divided by this number to get the CAN clock).
Options = {1,2,4,6}. Default: 4. Options = {1,2,4,6}. Default: 4.
CONFIG_CAN_TSEG1 - The number of CAN time quanta in segment 1. Default: 6 CONFIG_CAN_TSEG1 - The number of CAN time quanta in segment 1. Default: 6
CONFIG_CAN_TSEG2 - the number of CAN time quanta in segment 2. Default: 7 CONFIG_CAN_TSEG2 - the number of CAN time quanta in segment 2. Default: 7
LPC17xx specific PHY/Ethernet device driver settings. These setting LPC17xx specific PHY/Ethernet device driver settings. These setting
also require CONFIG_NET and CONFIG_LPC17_ETHERNET. also require CONFIG_NET and CONFIG_LPC17_ETHERNET.
CONFIG_PHY_KS8721 - Selects Micrel KS8721 PHY CONFIG_PHY_KS8721 - Selects Micrel KS8721 PHY
CONFIG_PHY_AUTONEG - Enable auto-negotion CONFIG_PHY_AUTONEG - Enable auto-negotion
CONFIG_PHY_SPEED100 - Select 100Mbit vs. 10Mbit speed. CONFIG_PHY_SPEED100 - Select 100Mbit vs. 10Mbit speed.
CONFIG_PHY_FDUPLEX - Select full (vs. half) duplex CONFIG_PHY_FDUPLEX - Select full (vs. half) duplex
CONFIG_NET_EMACRAM_SIZE - Size of EMAC RAM. Default: 16Kb CONFIG_NET_EMACRAM_SIZE - Size of EMAC RAM. Default: 16Kb
CONFIG_NET_NTXDESC - Configured number of Tx descriptors. Default: 18 CONFIG_NET_NTXDESC - Configured number of Tx descriptors. Default: 18
CONFIG_NET_NRXDESC - Configured number of Rx descriptors. Default: 18 CONFIG_NET_NRXDESC - Configured number of Rx descriptors. Default: 18
CONFIG_NET_PRIORITY - Ethernet interrupt priority. The is default is CONFIG_NET_PRIORITY - Ethernet interrupt priority. The is default is
the higest priority. the higest priority.
CONFIG_NET_WOL - Enable Wake-up on Lan (not fully implemented). CONFIG_NET_WOL - Enable Wake-up on Lan (not fully implemented).
CONFIG_NET_REGDEBUG - Enabled low level register debug. Also needs CONFIG_NET_REGDEBUG - Enabled low level register debug. Also needs
CONFIG_DEBUG. CONFIG_DEBUG.
CONFIG_NET_DUMPPACKET - Dump all received and transmitted packets. CONFIG_NET_DUMPPACKET - Dump all received and transmitted packets.
Also needs CONFIG_DEBUG. Also needs CONFIG_DEBUG.
CONFIG_NET_HASH - Enable receipt of near-perfect match frames. CONFIG_NET_HASH - Enable receipt of near-perfect match frames.
CONFIG_NET_MULTICAST - Enable receipt of multicast (and unicast) frames. CONFIG_NET_MULTICAST - Enable receipt of multicast (and unicast) frames.
Automatically set if CONFIG_NET_IGMP is selected. Automatically set if CONFIG_NET_IGMP is selected.
LPC17xx USB Device Configuration LPC17xx USB Device Configuration
CONFIG_LPC17_USBDEV_FRAME_INTERRUPT CONFIG_LPC17_USBDEV_FRAME_INTERRUPT
Handle USB Start-Of-Frame events. Handle USB Start-Of-Frame events.
Enable reading SOF from interrupt handler vs. simply reading on demand. Enable reading SOF from interrupt handler vs. simply reading on demand.
Probably a bad idea... Unless there is some issue with sampling the SOF Probably a bad idea... Unless there is some issue with sampling the SOF
from hardware asynchronously. from hardware asynchronously.
CONFIG_LPC17_USBDEV_EPFAST_INTERRUPT CONFIG_LPC17_USBDEV_EPFAST_INTERRUPT
Enable high priority interrupts. I have no idea why you might want to Enable high priority interrupts. I have no idea why you might want to
do that do that
CONFIG_LPC17_USBDEV_NDMADESCRIPTORS CONFIG_LPC17_USBDEV_NDMADESCRIPTORS
Number of DMA descriptors to allocate in SRAM. Number of DMA descriptors to allocate in SRAM.
CONFIG_LPC17_USBDEV_DMA CONFIG_LPC17_USBDEV_DMA
Enable lpc17xx-specific DMA support Enable lpc17xx-specific DMA support
CONFIG_LPC17_USBDEV_NOVBUS CONFIG_LPC17_USBDEV_NOVBUS
Define if the hardware implementation does not support the VBUS signal Define if the hardware implementation does not support the VBUS signal
CONFIG_LPC17_USBDEV_NOLED CONFIG_LPC17_USBDEV_NOLED
@@ -800,10 +850,10 @@ Configurations
Each Olimex LPC1766-STK configuration is maintained in a Each Olimex LPC1766-STK configuration is maintained in a
sudirectory and can be selected as follow: sudirectory and can be selected as follow:
cd tools cd tools
./configure.sh olimex-lpc1766stk/<subdir> ./configure.sh olimex-lpc1766stk/<subdir>
cd - cd -
. ./setenv.sh . ./setenv.sh
Where <subdir> is one of the following: Where <subdir> is one of the following:
+151 -99
View File
@@ -10,7 +10,9 @@ Contents
- Development Environment - Development Environment
- GNU Toolchain Options - GNU Toolchain Options
- IDEs - IDEs
- NuttX buildroot Toolchain - NuttX EABI "buildroot" Toolchain
- NuttX OABI "buildroot" Toolchain
- NXFLAT Toolchain
- LEDs - LEDs
- SAM3U-EK-specific Configuration Options - SAM3U-EK-specific Configuration Options
- Configurations - Configurations
@@ -42,7 +44,7 @@ GNU Toolchain Options
CONFIG_SAM3U_CODESOURCERYW=y : CodeSourcery under Windows CONFIG_SAM3U_CODESOURCERYW=y : CodeSourcery under Windows
CONFIG_SAM3U_CODESOURCERYL=y : CodeSourcery under Linux CONFIG_SAM3U_CODESOURCERYL=y : CodeSourcery under Linux
CONFIG_SAM3U_DEVKITARM=y : devkitARM under Windows CONFIG_SAM3U_DEVKITARM=y : devkitARM under Windows
CONFIG_SAM3U_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default) CONFIG_SAM3U_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default)
If you are not using CONFIG_SAM3U_BUILDROOT, then you may also have to modify If you are not using CONFIG_SAM3U_BUILDROOT, then you may also have to modify
the PATH in the setenv.h file if your make cannot find the tools. the PATH in the setenv.h file if your make cannot find the tools.
@@ -123,8 +125,8 @@ IDEs
one time from the Cygwin command line in order to obtain the pre-built one time from the Cygwin command line in order to obtain the pre-built
startup object needed by RIDE. startup object needed by RIDE.
NuttX buildroot Toolchain NuttX EABI "buildroot" Toolchain
^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
A GNU GCC-based toolchain is assumed. The files */setenv.sh should A GNU GCC-based toolchain is assumed. The files */setenv.sh should
be modified to point to the correct path to the Cortex-M3 GCC toolchain (if be modified to point to the correct path to the Cortex-M3 GCC toolchain (if
@@ -147,7 +149,7 @@ NuttX buildroot Toolchain
4. cd <some-dir>/buildroot 4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-4.3.3 .config 5. cp configs/cortexm3-eabi-defconfig-4.6.3 .config
6. make oldconfig 6. make oldconfig
@@ -157,9 +159,59 @@ NuttX buildroot Toolchain
the path to the newly built binaries. the path to the newly built binaries.
See the file configs/README.txt in the buildroot source tree. That has more See the file configs/README.txt in the buildroot source tree. That has more
detailed PLUS some special instructions that you will need to follow if you are details PLUS some special instructions that you will need to follow if you are
building a Cortex-M3 toolchain for Cygwin under Windows. building a Cortex-M3 toolchain for Cygwin under Windows.
NuttX OABI "buildroot" Toolchain
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The older, OABI buildroot toolchain is also available. To use the OABI
toolchain:
1. When building the buildroot toolchain, either (1) modify the cortexm3-eabi-defconfig-4.6.3
configuration to use EABI (using 'make menuconfig'), or (2) use an exising OABI
configuration such as cortexm3-defconfig-4.3.3
2. Modify the Make.defs file to use the OABI converntions:
+CROSSDEV = arm-nuttx-elf-
+ARCHCPUFLAGS = -mtune=cortex-m3 -march=armv7-m -mfloat-abi=soft
-CROSSDEV = arm-nuttx-eabi-
-ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
NXFLAT Toolchain
^^^^^^^^^^^^^^^^
If you are *not* using the NuttX buildroot toolchain and you want to use
the NXFLAT tools, then you will still have to build a portion of the buildroot
tools -- just the NXFLAT tools. The buildroot with the NXFLAT tools can
be downloaded from the NuttX SourceForge download site
(https://sourceforge.net/projects/nuttx/files/).
This GNU toolchain builds and executes in the Linux or Cygwin environment.
1. You must have already configured Nuttx in <some-dir>/nuttx.
cd tools
./configure.sh lpcxpresso-lpc1768/<sub-dir>
2. Download the latest buildroot package into <some-dir>
3. unpack the buildroot tarball. The resulting directory may
have versioning information on it like buildroot-x.y.z. If so,
rename <some-dir>/buildroot-x.y.z to <some-dir>/buildroot.
4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-nxflat .config
6. make oldconfig
7. make
8. Edit setenv.h, if necessary, so that the PATH variable includes
the path to the newly builtNXFLAT binaries.
LEDs LEDs
^^^^ ^^^^
@@ -167,16 +219,16 @@ The SAM3U-EK board has four LEDs labeled LD1, LD2, LD3 and LD4 on the
the board. Usage of these LEDs is defined in include/board.h and src/up_leds.c. the board. Usage of these LEDs is defined in include/board.h and src/up_leds.c.
They are encoded as follows: They are encoded as follows:
SYMBOL Meaning LED0* LED1 LED2 SYMBOL Meaning LED0* LED1 LED2
------------------- ----------------------- ------- ------- ------- ------------------- ----------------------- ------- ------- -------
LED_STARTED NuttX has been started OFF OFF OFF LED_STARTED NuttX has been started OFF OFF OFF
LED_HEAPALLOCATE Heap has been allocated OFF OFF ON LED_HEAPALLOCATE Heap has been allocated OFF OFF ON
LED_IRQSENABLED Interrupts enabled OFF ON OFF LED_IRQSENABLED Interrupts enabled OFF ON OFF
LED_STACKCREATED Idle stack created OFF ON ON LED_STACKCREATED Idle stack created OFF ON ON
LED_INIRQ In an interrupt** N/C FLASH N/C LED_INIRQ In an interrupt** N/C FLASH N/C
LED_SIGNAL In a signal handler*** N/C N/C FLASH LED_SIGNAL In a signal handler*** N/C N/C FLASH
LED_ASSERTION An assertion failed FLASH N/C N/C LED_ASSERTION An assertion failed FLASH N/C N/C
LED_PANIC The system has crashed FLASH N/C N/C LED_PANIC The system has crashed FLASH N/C N/C
* If LED1 and LED2 are statically on, then NuttX probably failed to boot * If LED1 and LED2 are statically on, then NuttX probably failed to boot
and these LEDs will give you some indication of where the failure was and these LEDs will give you some indication of where the failure was
@@ -188,116 +240,116 @@ They are encoded as follows:
SAM3U-EK-specific Configuration Options SAM3U-EK-specific Configuration Options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
CONFIG_ARCH - Identifies the arch/ subdirectory. This should CONFIG_ARCH - Identifies the arch/ subdirectory. This should
be set to: be set to:
CONFIG_ARCH=arm CONFIG_ARCH=arm
CONFIG_ARCH_family - For use in C code: CONFIG_ARCH_family - For use in C code:
CONFIG_ARCH_ARM=y CONFIG_ARCH_ARM=y
CONFIG_ARCH_architecture - For use in C code: CONFIG_ARCH_architecture - For use in C code:
CONFIG_ARCH_CORTEXM3=y CONFIG_ARCH_CORTEXM3=y
CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory
CONFIG_ARCH_CHIP=sam3u CONFIG_ARCH_CHIP=sam3u
CONFIG_ARCH_CHIP_name - For use in C code to identify the exact CONFIG_ARCH_CHIP_name - For use in C code to identify the exact
chip: chip:
CONFIG_ARCH_CHIP_AT91SAM3U4 CONFIG_ARCH_CHIP_AT91SAM3U4
CONFIG_ARCH_BOARD - Identifies the configs subdirectory and CONFIG_ARCH_BOARD - Identifies the configs subdirectory and
hence, the board that supports the particular chip or SoC. hence, the board that supports the particular chip or SoC.
CONFIG_ARCH_BOARD=sam3u_ek (for the SAM3U-EK development board) CONFIG_ARCH_BOARD=sam3u_ek (for the SAM3U-EK development board)
CONFIG_ARCH_BOARD_name - For use in C code CONFIG_ARCH_BOARD_name - For use in C code
CONFIG_ARCH_BOARD_SAM3UEK=y CONFIG_ARCH_BOARD_SAM3UEK=y
CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation
of delay loops of delay loops
CONFIG_ENDIAN_BIG - define if big endian (default is little CONFIG_ENDIAN_BIG - define if big endian (default is little
endian) endian)
CONFIG_DRAM_SIZE - Describes the installed DRAM (SRAM in this case): CONFIG_DRAM_SIZE - Describes the installed DRAM (SRAM in this case):
CONFIG_DRAM_SIZE=0x0000c000 (48Kb) CONFIG_DRAM_SIZE=0x0000c000 (48Kb)
CONFIG_DRAM_START - The start address of installed DRAM CONFIG_DRAM_START - The start address of installed DRAM
CONFIG_DRAM_START=0x20000000 CONFIG_DRAM_START=0x20000000
CONFIG_ARCH_IRQPRIO - The SAM3UF103Z supports interrupt prioritization CONFIG_ARCH_IRQPRIO - The SAM3UF103Z supports interrupt prioritization
CONFIG_ARCH_IRQPRIO=y CONFIG_ARCH_IRQPRIO=y
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that
have LEDs have LEDs
CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt
stack. If defined, this symbol is the size of the interrupt stack. If defined, this symbol is the size of the interrupt
stack in bytes. If not defined, the user task stacks will be stack in bytes. If not defined, the user task stacks will be
used during interrupt handling. used during interrupt handling.
CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture. CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture.
CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that
cause a 100 second delay during boot-up. This 100 second delay cause a 100 second delay during boot-up. This 100 second delay
serves no purpose other than it allows you to calibratre serves no purpose other than it allows you to calibratre
CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure
the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until
the delay actually is 100 seconds. the delay actually is 100 seconds.
Individual subsystems can be enabled: Individual subsystems can be enabled:
CONFIG_SAM3U_DMA CONFIG_SAM3U_DMA
CONFIG_SAM3U_HSMCI CONFIG_SAM3U_HSMCI
CONFIG_SAM3U_NAND CONFIG_SAM3U_NAND
CONFIG_SAM3U_SPI CONFIG_SAM3U_SPI
CONFIG_SAM3U_UART CONFIG_SAM3U_UART
CONFIG_SAM3U_USART0 CONFIG_SAM3U_USART0
CONFIG_SAM3U_USART1 CONFIG_SAM3U_USART1
CONFIG_SAM3U_USART2 CONFIG_SAM3U_USART2
CONFIG_SAM3U_USART3 CONFIG_SAM3U_USART3
Some subsystems can be configured to operate in different ways. The drivers Some subsystems can be configured to operate in different ways. The drivers
need to know how to configure the subsystem. need to know how to configure the subsystem.
CONFIG_GPIOA_IRQ CONFIG_GPIOA_IRQ
CONFIG_GPIOB_IRQ CONFIG_GPIOB_IRQ
CONFIG_GPIOC_IRQ CONFIG_GPIOC_IRQ
CONFIG_USART0_ISUART CONFIG_USART0_ISUART
CONFIG_USART1_ISUART CONFIG_USART1_ISUART
CONFIG_USART2_ISUART CONFIG_USART2_ISUART
CONFIG_USART3_ISUART CONFIG_USART3_ISUART
AT91SAM3U specific device driver settings AT91SAM3U specific device driver settings
CONFIG_U[S]ARTn_SERIAL_CONSOLE - selects the USARTn (n=0,1,2,3) or UART CONFIG_U[S]ARTn_SERIAL_CONSOLE - selects the USARTn (n=0,1,2,3) or UART
m (m=4,5) for the console and ttys0 (default is the USART1). m (m=4,5) for the console and ttys0 (default is the USART1).
CONFIG_U[S]ARTn_RXBUFSIZE - Characters are buffered as received. CONFIG_U[S]ARTn_RXBUFSIZE - Characters are buffered as received.
This specific the size of the receive buffer This specific the size of the receive buffer
CONFIG_U[S]ARTn_TXBUFSIZE - Characters are buffered before CONFIG_U[S]ARTn_TXBUFSIZE - Characters are buffered before
being sent. This specific the size of the transmit buffer being sent. This specific the size of the transmit buffer
CONFIG_U[S]ARTn_BAUD - The configure BAUD of the UART. Must be CONFIG_U[S]ARTn_BAUD - The configure BAUD of the UART. Must be
CONFIG_U[S]ARTn_BITS - The number of bits. Must be either 7 or 8. CONFIG_U[S]ARTn_BITS - The number of bits. Must be either 7 or 8.
CONFIG_U[S]ARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity CONFIG_U[S]ARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity
CONFIG_U[S]ARTn_2STOP - Two stop bits CONFIG_U[S]ARTn_2STOP - Two stop bits
LCD Options. Other than the standard LCD configuration options LCD Options. Other than the standard LCD configuration options
(see configs/README.txt), the SAM3U-EK driver also supports: (see configs/README.txt), the SAM3U-EK driver also supports:
CONFIG_LCD_PORTRAIT - Present the display in the standard 240x320 CONFIG_LCD_PORTRAIT - Present the display in the standard 240x320
"Portrait" orientation. Default: The display is rotated to "Portrait" orientation. Default: The display is rotated to
support a 320x240 "Landscape" orientation. support a 320x240 "Landscape" orientation.
Configurations Configurations
^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^
@@ -305,10 +357,10 @@ Configurations
Each SAM3U-EK configuration is maintained in a sudirectory and Each SAM3U-EK configuration is maintained in a sudirectory and
can be selected as follow: can be selected as follow:
cd tools cd tools
./configure.sh sam3u-ek/<subdir> ./configure.sh sam3u-ek/<subdir>
cd - cd -
. ./setenv.sh . ./setenv.sh
Before sourcing the setenv.sh file above, you should examine it and perform Before sourcing the setenv.sh file above, you should examine it and perform
edits as necessary so that BUILDROOT_BIN is the correct path to the directory edits as necessary so that BUILDROOT_BIN is the correct path to the directory
@@ -317,7 +369,7 @@ than holds your toolchain binaries.
And then build NuttX by simply typing the following. At the conclusion of And then build NuttX by simply typing the following. At the conclusion of
the make, the nuttx binary will reside in an ELF file called, simply, nuttx. the make, the nuttx binary will reside in an ELF file called, simply, nuttx.
make make
The <subdir> that is provided above as an argument to the tools/configure.sh The <subdir> that is provided above as an argument to the tools/configure.sh
must be is one of the following: must be is one of the following:
@@ -328,7 +380,7 @@ must be is one of the following:
are built separately. This build requires a special make command; not are built separately. This build requires a special make command; not
just 'make' but make with the following two arguments: just 'make' but make with the following two arguments:
make pass1 pass2 make pass1 pass2
This is required because in the normal case (just 'make'), make will This is required because in the normal case (just 'make'), make will
create all dependencies then execute the pass1 and pass2 targets. But create all dependencies then execute the pass1 and pass2 targets. But
@@ -336,16 +388,16 @@ must be is one of the following:
This specall make command ('make pass1 pass2') will make the dependencies This specall make command ('make pass1 pass2') will make the dependencies
separately for each pass. separately for each pass.
At there end of the build, there four files will top-level build At there end of the build, there four files will top-level build
directory: directory:
nuttx_user.elf - The pass1 ELF file nuttx_user.elf - The pass1 ELF file
nuttx - The pass2 ELF file nuttx - The pass2 ELF file
nuttx_user.hex - The pass1 Intel HEX format file nuttx_user.hex - The pass1 Intel HEX format file
nuttx.hex - The pass2 Intel HEX file nuttx.hex - The pass2 Intel HEX file
The J-Link program will except files in .hex, .mot, .srec, and .bin The J-Link program will except files in .hex, .mot, .srec, and .bin
formats. formats.
nsh: nsh:
Configures the NuttShell (nsh) located at examples/nsh. The Configures the NuttShell (nsh) located at examples/nsh. The
+57 -5
View File
@@ -10,7 +10,9 @@ Contents
- Development Environment - Development Environment
- GNU Toolchain Options - GNU Toolchain Options
- IDEs - IDEs
- NuttX buildroot Toolchain - NuttX EABI "buildroot" Toolchain
- NuttX OABI "buildroot" Toolchain
- NXFLAT Toolchain
- DFU and JTAG - DFU and JTAG
- OpenOCD - OpenOCD
- LEDs - LEDs
@@ -131,8 +133,8 @@ IDEs
one time from the Cygwin command line in order to obtain the pre-built one time from the Cygwin command line in order to obtain the pre-built
startup object needed by RIDE. startup object needed by RIDE.
NuttX buildroot Toolchain NuttX EABI "buildroot" Toolchain
========================= ================================
A GNU GCC-based toolchain is assumed. The files */setenv.sh should A GNU GCC-based toolchain is assumed. The files */setenv.sh should
be modified to point to the correct path to the Cortex-M3 GCC toolchain (if be modified to point to the correct path to the Cortex-M3 GCC toolchain (if
@@ -155,7 +157,7 @@ NuttX buildroot Toolchain
4. cd <some-dir>/buildroot 4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-4.3.3 .config 5. cp configs/cortexm3-eabi-defconfig-4.6.3 .config
6. make oldconfig 6. make oldconfig
@@ -165,9 +167,59 @@ NuttX buildroot Toolchain
the path to the newly built binaries. the path to the newly built binaries.
See the file configs/README.txt in the buildroot source tree. That has more See the file configs/README.txt in the buildroot source tree. That has more
detailed PLUS some special instructions that you will need to follow if you are details PLUS some special instructions that you will need to follow if you are
building a Cortex-M3 toolchain for Cygwin under Windows. building a Cortex-M3 toolchain for Cygwin under Windows.
NuttX OABI "buildroot" Toolchain
================================
The older, OABI buildroot toolchain is also available. To use the OABI
toolchain:
1. When building the buildroot toolchain, either (1) modify the cortexm3-eabi-defconfig-4.6.3
configuration to use EABI (using 'make menuconfig'), or (2) use an exising OABI
configuration such as cortexm3-defconfig-4.3.3
2. Modify the Make.defs file to use the OABI converntions:
+CROSSDEV = arm-nuttx-elf-
+ARCHCPUFLAGS = -mtune=cortex-m3 -march=armv7-m -mfloat-abi=soft
-CROSSDEV = arm-nuttx-eabi-
-ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
NXFLAT Toolchain
================
If you are *not* using the NuttX buildroot toolchain and you want to use
the NXFLAT tools, then you will still have to build a portion of the buildroot
tools -- just the NXFLAT tools. The buildroot with the NXFLAT tools can
be downloaded from the NuttX SourceForge download site
(https://sourceforge.net/projects/nuttx/files/).
This GNU toolchain builds and executes in the Linux or Cygwin environment.
1. You must have already configured Nuttx in <some-dir>/nuttx.
cd tools
./configure.sh lpcxpresso-lpc1768/<sub-dir>
2. Download the latest buildroot package into <some-dir>
3. unpack the buildroot tarball. The resulting directory may
have versioning information on it like buildroot-x.y.z. If so,
rename <some-dir>/buildroot-x.y.z to <some-dir>/buildroot.
4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-nxflat .config
6. make oldconfig
7. make
8. Edit setenv.h, if necessary, so that the PATH variable includes
the path to the newly builtNXFLAT binaries.
DFU and JTAG DFU and JTAG
============ ============
+57 -5
View File
@@ -10,7 +10,9 @@ Contents
- Development Environment - Development Environment
- GNU Toolchain Options - GNU Toolchain Options
- IDEs - IDEs
- NuttX buildroot Toolchain - NuttX EABI "buildroot" Toolchain
- NuttX OABI "buildroot" Toolchain
- NXFLAT Toolchain
- STM3220G-EVAL-specific Configuration Options - STM3220G-EVAL-specific Configuration Options
- LEDs - LEDs
- Ethernet - Ethernet
@@ -170,8 +172,8 @@ IDEs
one time from the Cygwin command line in order to obtain the pre-built one time from the Cygwin command line in order to obtain the pre-built
startup object needed by RIDE. startup object needed by RIDE.
NuttX buildroot Toolchain NuttX EABI "buildroot" Toolchain
========================= ================================
A GNU GCC-based toolchain is assumed. The files */setenv.sh should A GNU GCC-based toolchain is assumed. The files */setenv.sh should
be modified to point to the correct path to the Cortex-M3 GCC toolchain (if be modified to point to the correct path to the Cortex-M3 GCC toolchain (if
@@ -194,7 +196,7 @@ NuttX buildroot Toolchain
4. cd <some-dir>/buildroot 4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-4.3.3 .config 5. cp configs/cortexm3-eabi-defconfig-4.6.3 .config
6. make oldconfig 6. make oldconfig
@@ -204,9 +206,59 @@ NuttX buildroot Toolchain
the path to the newly built binaries. the path to the newly built binaries.
See the file configs/README.txt in the buildroot source tree. That has more See the file configs/README.txt in the buildroot source tree. That has more
detailed PLUS some special instructions that you will need to follow if you are details PLUS some special instructions that you will need to follow if you are
building a Cortex-M3 toolchain for Cygwin under Windows. building a Cortex-M3 toolchain for Cygwin under Windows.
NuttX OABI "buildroot" Toolchain
================================
The older, OABI buildroot toolchain is also available. To use the OABI
toolchain:
1. When building the buildroot toolchain, either (1) modify the cortexm3-eabi-defconfig-4.6.3
configuration to use EABI (using 'make menuconfig'), or (2) use an exising OABI
configuration such as cortexm3-defconfig-4.3.3
2. Modify the Make.defs file to use the OABI converntions:
+CROSSDEV = arm-nuttx-elf-
+ARCHCPUFLAGS = -mtune=cortex-m3 -march=armv7-m -mfloat-abi=soft
-CROSSDEV = arm-nuttx-eabi-
-ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
NXFLAT Toolchain
================
If you are *not* using the NuttX buildroot toolchain and you want to use
the NXFLAT tools, then you will still have to build a portion of the buildroot
tools -- just the NXFLAT tools. The buildroot with the NXFLAT tools can
be downloaded from the NuttX SourceForge download site
(https://sourceforge.net/projects/nuttx/files/).
This GNU toolchain builds and executes in the Linux or Cygwin environment.
1. You must have already configured Nuttx in <some-dir>/nuttx.
cd tools
./configure.sh lpcxpresso-lpc1768/<sub-dir>
2. Download the latest buildroot package into <some-dir>
3. unpack the buildroot tarball. The resulting directory may
have versioning information on it like buildroot-x.y.z. If so,
rename <some-dir>/buildroot-x.y.z to <some-dir>/buildroot.
4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-nxflat .config
6. make oldconfig
7. make
8. Edit setenv.h, if necessary, so that the PATH variable includes
the path to the newly builtNXFLAT binaries.
Ethernet Ethernet
======== ========
+57 -5
View File
@@ -10,7 +10,9 @@ Contents
- Development Environment - Development Environment
- GNU Toolchain Options - GNU Toolchain Options
- IDEs - IDEs
- NuttX buildroot Toolchain - NuttX EABI "buildroot" Toolchain
- NuttX OABI "buildroot" Toolchain
- NXFLAT Toolchain
- STM3240G-EVAL-specific Configuration Options - STM3240G-EVAL-specific Configuration Options
- LEDs - LEDs
- Ethernet - Ethernet
@@ -177,8 +179,8 @@ IDEs
one time from the Cygwin command line in order to obtain the pre-built one time from the Cygwin command line in order to obtain the pre-built
startup object needed by RIDE. startup object needed by RIDE.
NuttX buildroot Toolchain NuttX EABI "buildroot" Toolchain
========================= ================================
A GNU GCC-based toolchain is assumed. The files */setenv.sh should A GNU GCC-based toolchain is assumed. The files */setenv.sh should
be modified to point to the correct path to the Cortex-M3 GCC toolchain (if be modified to point to the correct path to the Cortex-M3 GCC toolchain (if
@@ -201,7 +203,7 @@ NuttX buildroot Toolchain
4. cd <some-dir>/buildroot 4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-4.3.3 .config 5. cp configs/cortexm3-eabi-defconfig-4.6.3 .config
6. make oldconfig 6. make oldconfig
@@ -211,9 +213,59 @@ NuttX buildroot Toolchain
the path to the newly built binaries. the path to the newly built binaries.
See the file configs/README.txt in the buildroot source tree. That has more See the file configs/README.txt in the buildroot source tree. That has more
detailed PLUS some special instructions that you will need to follow if you are details PLUS some special instructions that you will need to follow if you are
building a Cortex-M3 toolchain for Cygwin under Windows. building a Cortex-M3 toolchain for Cygwin under Windows.
NuttX OABI "buildroot" Toolchain
================================
The older, OABI buildroot toolchain is also available. To use the OABI
toolchain:
1. When building the buildroot toolchain, either (1) modify the cortexm3-eabi-defconfig-4.6.3
configuration to use EABI (using 'make menuconfig'), or (2) use an exising OABI
configuration such as cortexm3-defconfig-4.3.3
2. Modify the Make.defs file to use the OABI converntions:
+CROSSDEV = arm-nuttx-elf-
+ARCHCPUFLAGS = -mtune=cortex-m3 -march=armv7-m -mfloat-abi=soft
-CROSSDEV = arm-nuttx-eabi-
-ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
NXFLAT Toolchain
================
If you are *not* using the NuttX buildroot toolchain and you want to use
the NXFLAT tools, then you will still have to build a portion of the buildroot
tools -- just the NXFLAT tools. The buildroot with the NXFLAT tools can
be downloaded from the NuttX SourceForge download site
(https://sourceforge.net/projects/nuttx/files/).
This GNU toolchain builds and executes in the Linux or Cygwin environment.
1. You must have already configured Nuttx in <some-dir>/nuttx.
cd tools
./configure.sh lpcxpresso-lpc1768/<sub-dir>
2. Download the latest buildroot package into <some-dir>
3. unpack the buildroot tarball. The resulting directory may
have versioning information on it like buildroot-x.y.z. If so,
rename <some-dir>/buildroot-x.y.z to <some-dir>/buildroot.
4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-nxflat .config
6. make oldconfig
7. make
8. Edit setenv.h, if necessary, so that the PATH variable includes
the path to the newly builtNXFLAT binaries.
Ethernet Ethernet
======== ========
+57 -5
View File
@@ -10,7 +10,9 @@ Contents
- Development Environment - Development Environment
- GNU Toolchain Options - GNU Toolchain Options
- IDEs - IDEs
- NuttX buildroot Toolchain - NuttX EABI "buildroot" Toolchain
- NuttX OABI "buildroot" Toolchain
- NXFLAT Toolchain
- LEDs - LEDs
- PWM - PWM
- UARTs - UARTs
@@ -174,8 +176,8 @@ IDEs
one time from the Cygwin command line in order to obtain the pre-built one time from the Cygwin command line in order to obtain the pre-built
startup object needed by RIDE. startup object needed by RIDE.
NuttX buildroot Toolchain NuttX EABI "buildroot" Toolchain
========================= ================================
A GNU GCC-based toolchain is assumed. The files */setenv.sh should A GNU GCC-based toolchain is assumed. The files */setenv.sh should
be modified to point to the correct path to the Cortex-M3 GCC toolchain (if be modified to point to the correct path to the Cortex-M3 GCC toolchain (if
@@ -198,7 +200,7 @@ NuttX buildroot Toolchain
4. cd <some-dir>/buildroot 4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-4.3.3 .config 5. cp configs/cortexm3-eabi-defconfig-4.6.3 .config
6. make oldconfig 6. make oldconfig
@@ -208,9 +210,59 @@ NuttX buildroot Toolchain
the path to the newly built binaries. the path to the newly built binaries.
See the file configs/README.txt in the buildroot source tree. That has more See the file configs/README.txt in the buildroot source tree. That has more
detailed PLUS some special instructions that you will need to follow if you are details PLUS some special instructions that you will need to follow if you are
building a Cortex-M3 toolchain for Cygwin under Windows. building a Cortex-M3 toolchain for Cygwin under Windows.
NuttX OABI "buildroot" Toolchain
================================
The older, OABI buildroot toolchain is also available. To use the OABI
toolchain:
1. When building the buildroot toolchain, either (1) modify the cortexm3-eabi-defconfig-4.6.3
configuration to use EABI (using 'make menuconfig'), or (2) use an exising OABI
configuration such as cortexm3-defconfig-4.3.3
2. Modify the Make.defs file to use the OABI converntions:
+CROSSDEV = arm-nuttx-elf-
+ARCHCPUFLAGS = -mtune=cortex-m3 -march=armv7-m -mfloat-abi=soft
-CROSSDEV = arm-nuttx-eabi-
-ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
NXFLAT Toolchain
================
If you are *not* using the NuttX buildroot toolchain and you want to use
the NXFLAT tools, then you will still have to build a portion of the buildroot
tools -- just the NXFLAT tools. The buildroot with the NXFLAT tools can
be downloaded from the NuttX SourceForge download site
(https://sourceforge.net/projects/nuttx/files/).
This GNU toolchain builds and executes in the Linux or Cygwin environment.
1. You must have already configured Nuttx in <some-dir>/nuttx.
cd tools
./configure.sh lpcxpresso-lpc1768/<sub-dir>
2. Download the latest buildroot package into <some-dir>
3. unpack the buildroot tarball. The resulting directory may
have versioning information on it like buildroot-x.y.z. If so,
rename <some-dir>/buildroot-x.y.z to <some-dir>/buildroot.
4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-nxflat .config
6. make oldconfig
7. make
8. Edit setenv.h, if necessary, so that the PATH variable includes
the path to the newly builtNXFLAT binaries.
LEDs LEDs
==== ====
+135 -84
View File
@@ -23,7 +23,9 @@ Contents
o Development Environment o Development Environment
o GNU Toolchain Options o GNU Toolchain Options
o IDEs o IDEs
o NuttX buildroot Toolchain o NuttX EABI "buildroot" Toolchain
o NuttX OABI "buildroot" Toolchain
o NXFLAT Toolchain
Kinetis TWR-K60N512 Features: Kinetis TWR-K60N512 Features:
============================= =============================
@@ -264,17 +266,17 @@ The TWR-K60N100 board has four LEDs labeled D2..D4 on the board. Usage of
these LEDs is defined in include/board.h and src/up_leds.c. They are encoded these LEDs is defined in include/board.h and src/up_leds.c. They are encoded
as follows: as follows:
SYMBOL Meaning LED1* LED2 LED3 LED4 SYMBOL Meaning LED1* LED2 LED3 LED4
------------------- ----------------------- ------- ------- ------- ------ ------------------- ----------------------- ------- ------- ------- ------
LED_STARTED NuttX has been started ON OFF OFF OFF LED_STARTED NuttX has been started ON OFF OFF OFF
LED_HEAPALLOCATE Heap has been allocated OFF ON OFF OFF LED_HEAPALLOCATE Heap has been allocated OFF ON OFF OFF
LED_IRQSENABLED Interrupts enabled ON ON OFF OFF LED_IRQSENABLED Interrupts enabled ON ON OFF OFF
LED_STACKCREATED Idle stack created OFF OFF ON OFF LED_STACKCREATED Idle stack created OFF OFF ON OFF
LED_INIRQ In an interrupt** ON N/C N/C OFF LED_INIRQ In an interrupt** ON N/C N/C OFF
LED_SIGNAL In a signal handler*** N/C ON N/C OFF LED_SIGNAL In a signal handler*** N/C ON N/C OFF
LED_ASSERTION An assertion failed ON ON N/C OFF LED_ASSERTION An assertion failed ON ON N/C OFF
LED_PANIC The system has crashed N/C N/C N/C ON LED_PANIC The system has crashed N/C N/C N/C ON
LED_IDLE STM32 is is sleep mode (Optional, not used) LED_IDLE STM32 is is sleep mode (Optional, not used)
* If LED1, LED2, LED3 are statically on, then NuttX probably failed to boot * If LED1, LED2, LED3 are statically on, then NuttX probably failed to boot
and these LEDs will give you some indication of where the failure was and these LEDs will give you some indication of where the failure was
@@ -308,7 +310,7 @@ GNU Toolchain Options
CONFIG_KINETIS_CODESOURCERYW=y : CodeSourcery under Windows CONFIG_KINETIS_CODESOURCERYW=y : CodeSourcery under Windows
CONFIG_KINETIS_CODESOURCERYL=y : CodeSourcery under Linux CONFIG_KINETIS_CODESOURCERYL=y : CodeSourcery under Linux
CONFIG_KINETIS_DEVKITARM=y : devkitARM under Windows CONFIG_KINETIS_DEVKITARM=y : devkitARM under Windows
CONFIG_KINETIS_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default) CONFIG_KINETIS_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default)
If you are not using CONFIG_KINETIS_BUILDROOT, then you may also have to modify If you are not using CONFIG_KINETIS_BUILDROOT, then you may also have to modify
the PATH in the setenv.h file if your make cannot find the tools. the PATH in the setenv.h file if your make cannot find the tools.
@@ -386,8 +388,8 @@ IDEs
Startup files will probably cause you some headaches. The NuttX startup file Startup files will probably cause you some headaches. The NuttX startup file
is arch/arm/src/kinetis/k40_vectors.S. is arch/arm/src/kinetis/k40_vectors.S.
NuttX buildroot Toolchain NuttX EABI "buildroot" Toolchain
========================= ================================
A GNU GCC-based toolchain is assumed. The files */setenv.sh should A GNU GCC-based toolchain is assumed. The files */setenv.sh should
be modified to point to the correct path to the Cortex-M4 GCC toolchain (if be modified to point to the correct path to the Cortex-M4 GCC toolchain (if
@@ -397,8 +399,7 @@ NuttX buildroot Toolchain
SourceForge download site (https://sourceforge.net/projects/nuttx/files/buildroot/). SourceForge download site (https://sourceforge.net/projects/nuttx/files/buildroot/).
This GNU toolchain builds and executes in the Linux or Cygwin environment. This GNU toolchain builds and executes in the Linux or Cygwin environment.
NOTE: The NuttX toolchain is an OABI toolchain (vs. the more common EABI) NOTE: The NuttX toolchain may not include optimizations for Cortex-M4 (ARMv7E-M).
and does not include optimizations for Cortex-M4 (ARMv7E-M).
1. You must have already configured Nuttx in <some-dir>/nuttx. 1. You must have already configured Nuttx in <some-dir>/nuttx.
@@ -413,7 +414,7 @@ NuttX buildroot Toolchain
4. cd <some-dir>/buildroot 4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-4.3.3 .config 5. cp configs/cortexm3-eabi-defconfig-4.6.3 .config
6. make oldconfig 6. make oldconfig
@@ -423,92 +424,142 @@ NuttX buildroot Toolchain
the path to the newly built binaries. the path to the newly built binaries.
See the file configs/README.txt in the buildroot source tree. That has more See the file configs/README.txt in the buildroot source tree. That has more
detailed PLUS some special instructions that you will need to follow if you are details PLUS some special instructions that you will need to follow if you are
building a Cortex-M4 toolchain for Cygwin under Windows. building a Cortex-M4 toolchain for Cygwin under Windows.
NuttX OABI "buildroot" Toolchain
================================
The older, OABI buildroot toolchain is also available. To use the OABI
toolchain:
1. When building the buildroot toolchain, either (1) modify the cortexm3-eabi-defconfig-4.6.3
configuration to use EABI (using 'make menuconfig'), or (2) use an exising OABI
configuration such as cortexm3-defconfig-4.3.3
2. Modify the Make.defs file to use the OABI converntions:
+CROSSDEV = arm-nuttx-elf-
+ARCHCPUFLAGS = -mtune=cortex-m3 -march=armv7-m -mfloat-abi=soft
-CROSSDEV = arm-nuttx-eabi-
-ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
NXFLAT Toolchain
================
If you are *not* using the NuttX buildroot toolchain and you want to use
the NXFLAT tools, then you will still have to build a portion of the buildroot
tools -- just the NXFLAT tools. The buildroot with the NXFLAT tools can
be downloaded from the NuttX SourceForge download site
(https://sourceforge.net/projects/nuttx/files/).
This GNU toolchain builds and executes in the Linux or Cygwin environment.
1. You must have already configured Nuttx in <some-dir>/nuttx.
cd tools
./configure.sh lpcxpresso-lpc1768/<sub-dir>
2. Download the latest buildroot package into <some-dir>
3. unpack the buildroot tarball. The resulting directory may
have versioning information on it like buildroot-x.y.z. If so,
rename <some-dir>/buildroot-x.y.z to <some-dir>/buildroot.
4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-nxflat .config
6. make oldconfig
7. make
8. Edit setenv.h, if necessary, so that the PATH variable includes
the path to the newly builtNXFLAT binaries.
TWR-K60N512-specific Configuration Options TWR-K60N512-specific Configuration Options
========================================== ==========================================
CONFIG_ARCH - Identifies the arch/ subdirectory. This sould CONFIG_ARCH - Identifies the arch/ subdirectory. This sould
be set to: be set to:
CONFIG_ARCH=arm CONFIG_ARCH=arm
CONFIG_ARCH_family - For use in C code: CONFIG_ARCH_family - For use in C code:
CONFIG_ARCH_ARM=y CONFIG_ARCH_ARM=y
CONFIG_ARCH_architecture - For use in C code: CONFIG_ARCH_architecture - For use in C code:
CONFIG_ARCH_CORTEXM4=y CONFIG_ARCH_CORTEXM4=y
CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory
CONFIG_ARCH_CHIP=k40 CONFIG_ARCH_CHIP=k40
CONFIG_ARCH_CHIP_name - For use in C code to identify the exact CONFIG_ARCH_CHIP_name - For use in C code to identify the exact
chip: chip:
CONFIG_ARCH_CHIP_MK60N512VMD100 CONFIG_ARCH_CHIP_MK60N512VMD100
CONFIG_ARCH_BOARD - Identifies the configs subdirectory and CONFIG_ARCH_BOARD - Identifies the configs subdirectory and
hence, the board that supports the particular chip or SoC. hence, the board that supports the particular chip or SoC.
CONFIG_ARCH_BOARD=twr-k60n512 (for the TWR-K60N512 development board) CONFIG_ARCH_BOARD=twr-k60n512 (for the TWR-K60N512 development board)
CONFIG_ARCH_BOARD_name - For use in C code CONFIG_ARCH_BOARD_name - For use in C code
CONFIG_ARCH_BOARD_TWR_K60N512=y CONFIG_ARCH_BOARD_TWR_K60N512=y
CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation
of delay loops of delay loops
CONFIG_ENDIAN_BIG - define if big endian (default is little CONFIG_ENDIAN_BIG - define if big endian (default is little
endian) endian)
CONFIG_DRAM_SIZE - Describes the installed DRAM (SRAM in this case): CONFIG_DRAM_SIZE - Describes the installed DRAM (SRAM in this case):
CONFIG_DRAM_SIZE=0x00010000 (64Kb) CONFIG_DRAM_SIZE=0x00010000 (64Kb)
CONFIG_DRAM_START - The start address of installed DRAM CONFIG_DRAM_START - The start address of installed DRAM
CONFIG_DRAM_START=0x20000000 CONFIG_DRAM_START=0x20000000
CONFIG_ARCH_IRQPRIO - The Kinetis K60 supports interrupt prioritization CONFIG_ARCH_IRQPRIO - The Kinetis K60 supports interrupt prioritization
CONFIG_ARCH_IRQPRIO=y CONFIG_ARCH_IRQPRIO=y
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that
have LEDs have LEDs
CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt
stack. If defined, this symbol is the size of the interrupt stack. If defined, this symbol is the size of the interrupt
stack in bytes. If not defined, the user task stacks will be stack in bytes. If not defined, the user task stacks will be
used during interrupt handling. used during interrupt handling.
CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture. CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture.
CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that
cause a 100 second delay during boot-up. This 100 second delay cause a 100 second delay during boot-up. This 100 second delay
serves no purpose other than it allows you to calibratre serves no purpose other than it allows you to calibratre
CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure
the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until
the delay actually is 100 seconds. the delay actually is 100 seconds.
Individual subsystems can be enabled: Individual subsystems can be enabled:
CONFIG_KINETIS_TRACE -- Enable trace clocking on power up. CONFIG_KINETIS_TRACE -- Enable trace clocking on power up.
CONFIG_KINETIS_FLEXBUS -- Enable flexbus clocking on power up. CONFIG_KINETIS_FLEXBUS -- Enable flexbus clocking on power up.
CONFIG_KINETIS_UART0 -- Support UART0 CONFIG_KINETIS_UART0 -- Support UART0
CONFIG_KINETIS_UART1 -- Support UART1 CONFIG_KINETIS_UART1 -- Support UART1
CONFIG_KINETIS_UART2 -- Support UART2 CONFIG_KINETIS_UART2 -- Support UART2
CONFIG_KINETIS_UART3 -- Support UART3 CONFIG_KINETIS_UART3 -- Support UART3
CONFIG_KINETIS_UART4 -- Support UART4 CONFIG_KINETIS_UART4 -- Support UART4
CONFIG_KINETIS_UART5 -- Support UART5 CONFIG_KINETIS_UART5 -- Support UART5
CONFIG_KINETIS_ENET -- Support Ethernet (K60 only) CONFIG_KINETIS_ENET -- Support Ethernet (K60 only)
CONFIG_KINETIS_RNGB -- Support the random number generator(K60 only) CONFIG_KINETIS_RNGB -- Support the random number generator(K60 only)
CONFIG_KINETIS_FLEXCAN0 -- Support FlexCAN0 CONFIG_KINETIS_FLEXCAN0 -- Support FlexCAN0
CONFIG_KINETIS_FLEXCAN1 -- Support FlexCAN1 CONFIG_KINETIS_FLEXCAN1 -- Support FlexCAN1
CONFIG_KINETIS_SPI0 -- Support SPI0 CONFIG_KINETIS_SPI0 -- Support SPI0
@@ -517,8 +568,8 @@ TWR-K60N512-specific Configuration Options
CONFIG_KINETIS_I2C0 -- Support I2C0 CONFIG_KINETIS_I2C0 -- Support I2C0
CONFIG_KINETIS_I2C1 -- Support I2C1 CONFIG_KINETIS_I2C1 -- Support I2C1
CONFIG_KINETIS_I2S -- Support I2S CONFIG_KINETIS_I2S -- Support I2S
CONFIG_KINETIS_DAC0 -- Support DAC0 CONFIG_KINETIS_DAC0 -- Support DAC0
CONFIG_KINETIS_DAC1 -- Support DAC1 CONFIG_KINETIS_DAC1 -- Support DAC1
CONFIG_KINETIS_ADC0 -- Support ADC0 CONFIG_KINETIS_ADC0 -- Support ADC0
CONFIG_KINETIS_ADC1 -- Support ADC1 CONFIG_KINETIS_ADC1 -- Support ADC1
CONFIG_KINETIS_CMP -- Support CMP CONFIG_KINETIS_CMP -- Support CMP
@@ -571,15 +622,15 @@ TWR-K60N512-specific Configuration Options
Kinetis K60 specific device driver settings Kinetis K60 specific device driver settings
CONFIG_UARTn_SERIAL_CONSOLE - selects the UARTn (n=0..5) for the CONFIG_UARTn_SERIAL_CONSOLE - selects the UARTn (n=0..5) for the
console and ttys0 (default is the UART0). console and ttys0 (default is the UART0).
CONFIG_UARTn_RXBUFSIZE - Characters are buffered as received. CONFIG_UARTn_RXBUFSIZE - Characters are buffered as received.
This specific the size of the receive buffer This specific the size of the receive buffer
CONFIG_UARTn_TXBUFSIZE - Characters are buffered before CONFIG_UARTn_TXBUFSIZE - Characters are buffered before
being sent. This specific the size of the transmit buffer being sent. This specific the size of the transmit buffer
CONFIG_UARTn_BAUD - The configure BAUD of the UART. CONFIG_UARTn_BAUD - The configure BAUD of the UART.
CONFIG_UARTn_BITS - The number of bits. Must be either 8 or 8. CONFIG_UARTn_BITS - The number of bits. Must be either 8 or 8.
CONFIG_UARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity CONFIG_UARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity
Kenetis ethernet controller settings Kenetis ethernet controller settings
@@ -596,10 +647,10 @@ Configurations
Each TWR-K60N512 configuration is maintained in a sudirectory and Each TWR-K60N512 configuration is maintained in a sudirectory and
can be selected as follow: can be selected as follow:
cd tools cd tools
./configure.sh twr-k60n512/<subdir> ./configure.sh twr-k60n512/<subdir>
cd - cd -
. ./setenv.sh . ./setenv.sh
Where <subdir> is one of the following: Where <subdir> is one of the following:
@@ -609,7 +660,7 @@ Where <subdir> is one of the following:
examples/ostest. By default, this project assumes that you are examples/ostest. By default, this project assumes that you are
using the DFU bootloader. using the DFU bootloader.
CONFIG_KINETIS_BUILDROOT=y : NuttX buildroot under Linux or Cygwin CONFIG_KINETIS_BUILDROOT=y : NuttX buildroot under Linux or Cygwin
nsh: nsh:
--- ---
@@ -618,7 +669,7 @@ Where <subdir> is one of the following:
Support for the board's SPI-based MicroSD card is included Support for the board's SPI-based MicroSD card is included
(but not passing tests as of this writing). (but not passing tests as of this writing).
NOTE: An SDHC driver is underwork and can be enabled in the NSH NOTE: An SDHC driver is underwork and can be enabled in the NSH
configuration for further testing be setting the following configuration for further testing be setting the following
configuration faluesas follows: configuration faluesas follows:
+100 -49
View File
@@ -11,7 +11,9 @@ Contents
- Development Environment - Development Environment
- GNU Toolchain Options - GNU Toolchain Options
- IDEs - IDEs
- NuttX buildroot Toolchain - NuttX EABI "buildroot" Toolchain
- NuttX OABI "buildroot" Toolchain
- NXFLAT Toolchain
- DFU - DFU
- LEDs - LEDs
- VSN-specific Configuration Options - VSN-specific Configuration Options
@@ -47,7 +49,7 @@ GNU Toolchain Options
CONFIG_STM32_CODESOURCERYL=y : CodeSourcery under Linux CONFIG_STM32_CODESOURCERYL=y : CodeSourcery under Linux
CONFIG_STM32_DEVKITARM=y : devkitARM under Windows CONFIG_STM32_DEVKITARM=y : devkitARM under Windows
CONFIG_STM32_RAISONANCE=y : Raisonance RIDE7 under Windows CONFIG_STM32_RAISONANCE=y : Raisonance RIDE7 under Windows
CONFIG_STM32_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default) CONFIG_STM32_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default)
If you are not using CONFIG_STM32_BUILDROOT, then you may also have to modify If you are not using CONFIG_STM32_BUILDROOT, then you may also have to modify
the PATH in the setenv.h file if your make cannot find the tools. the PATH in the setenv.h file if your make cannot find the tools.
@@ -128,8 +130,8 @@ IDEs
one time from the Cygwin command line in order to obtain the pre-built one time from the Cygwin command line in order to obtain the pre-built
startup object needed by RIDE. startup object needed by RIDE.
NuttX buildroot Toolchain NuttX EABI "buildroot" Toolchain
^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
A GNU GCC-based toolchain is assumed. The files */setenv.sh should A GNU GCC-based toolchain is assumed. The files */setenv.sh should
be modified to point to the correct path to the Cortex-M3 GCC toolchain (if be modified to point to the correct path to the Cortex-M3 GCC toolchain (if
@@ -152,7 +154,7 @@ NuttX buildroot Toolchain
4. cd <some-dir>/buildroot 4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-4.3.3 .config 5. cp configs/cortexm3-eabi-defconfig-4.6.3 .config
6. make oldconfig 6. make oldconfig
@@ -162,77 +164,126 @@ NuttX buildroot Toolchain
the path to the newly built binaries. the path to the newly built binaries.
See the file configs/README.txt in the buildroot source tree. That has more See the file configs/README.txt in the buildroot source tree. That has more
detailed PLUS some special instructions that you will need to follow if you are details PLUS some special instructions that you will need to follow if you are
building a Cortex-M3 toolchain for Cygwin under Windows. building a Cortex-M3 toolchain for Cygwin under Windows.
NuttX OABI "buildroot" Toolchain
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The older, OABI buildroot toolchain is also available. To use the OABI
toolchain:
1. When building the buildroot toolchain, either (1) modify the cortexm3-eabi-defconfig-4.6.3
configuration to use EABI (using 'make menuconfig'), or (2) use an exising OABI
configuration such as cortexm3-defconfig-4.3.3
2. Modify the Make.defs file to use the OABI converntions:
+CROSSDEV = arm-nuttx-elf-
+ARCHCPUFLAGS = -mtune=cortex-m3 -march=armv7-m -mfloat-abi=soft
-CROSSDEV = arm-nuttx-eabi-
-ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
NXFLAT Toolchain
^^^^^^^^^^^^^^^^
If you are *not* using the NuttX buildroot toolchain and you want to use
the NXFLAT tools, then you will still have to build a portion of the buildroot
tools -- just the NXFLAT tools. The buildroot with the NXFLAT tools can
be downloaded from the NuttX SourceForge download site
(https://sourceforge.net/projects/nuttx/files/).
This GNU toolchain builds and executes in the Linux or Cygwin environment.
1. You must have already configured Nuttx in <some-dir>/nuttx.
cd tools
./configure.sh lpcxpresso-lpc1768/<sub-dir>
2. Download the latest buildroot package into <some-dir>
3. unpack the buildroot tarball. The resulting directory may
have versioning information on it like buildroot-x.y.z. If so,
rename <some-dir>/buildroot-x.y.z to <some-dir>/buildroot.
4. cd <some-dir>/buildroot
5. cp configs/cortexm3-defconfig-nxflat .config
6. make oldconfig
7. make
8. Edit setenv.h, if necessary, so that the PATH variable includes
the path to the newly builtNXFLAT binaries.
VSN-specific Configuration Options VSN-specific Configuration Options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
CONFIG_ARCH - Identifies the arch/ subdirectory. This should CONFIG_ARCH - Identifies the arch/ subdirectory. This should
be set to: be set to:
CONFIG_ARCH=arm CONFIG_ARCH=arm
CONFIG_ARCH_family - For use in C code: CONFIG_ARCH_family - For use in C code:
CONFIG_ARCH_ARM=y CONFIG_ARCH_ARM=y
CONFIG_ARCH_architecture - For use in C code: CONFIG_ARCH_architecture - For use in C code:
CONFIG_ARCH_CORTEXM3=y CONFIG_ARCH_CORTEXM3=y
CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory
CONFIG_ARCH_CHIP=stm32 CONFIG_ARCH_CHIP=stm32
CONFIG_ARCH_CHIP_name - For use in C code to identify the exact CONFIG_ARCH_CHIP_name - For use in C code to identify the exact
chip: chip:
CONFIG_ARCH_CHIP_STM32F103RET6 CONFIG_ARCH_CHIP_STM32F103RET6
CONFIG_ARCH_BOARD - Identifies the configs subdirectory and CONFIG_ARCH_BOARD - Identifies the configs subdirectory and
hence, the board that supports the particular chip or SoC. hence, the board that supports the particular chip or SoC.
CONFIG_ARCH_BOARD=vsn (for the VSN development board) CONFIG_ARCH_BOARD=vsn (for the VSN development board)
CONFIG_ARCH_BOARD_name - For use in C code CONFIG_ARCH_BOARD_name - For use in C code
CONFIG_ARCH_BOARD_VSN=y CONFIG_ARCH_BOARD_VSN=y
CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation
of delay loops of delay loops
CONFIG_ENDIAN_BIG - define if big endian (default is little CONFIG_ENDIAN_BIG - define if big endian (default is little
endian) endian)
CONFIG_DRAM_SIZE - Describes the installed DRAM (SRAM in this case): CONFIG_DRAM_SIZE - Describes the installed DRAM (SRAM in this case):
CONFIG_DRAM_SIZE=0x00010000 (64Kb) CONFIG_DRAM_SIZE=0x00010000 (64Kb)
CONFIG_DRAM_START - The start address of installed DRAM CONFIG_DRAM_START - The start address of installed DRAM
CONFIG_DRAM_START=0x20000000 CONFIG_DRAM_START=0x20000000
CONFIG_ARCH_IRQPRIO - The STM32F103Z supports interrupt prioritization CONFIG_ARCH_IRQPRIO - The STM32F103Z supports interrupt prioritization
CONFIG_ARCH_IRQPRIO=y CONFIG_ARCH_IRQPRIO=y
CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt
stack. If defined, this symbol is the size of the interrupt stack. If defined, this symbol is the size of the interrupt
stack in bytes. If not defined, the user task stacks will be stack in bytes. If not defined, the user task stacks will be
used during interrupt handling. used during interrupt handling.
CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions
CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture. CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture.
CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that
cause a 100 second delay during boot-up. This 100 second delay cause a 100 second delay during boot-up. This 100 second delay
serves no purpose other than it allows you to calibratre serves no purpose other than it allows you to calibratre
CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure
the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until
the delay actually is 100 seconds. the delay actually is 100 seconds.
Configurations Configurations
@@ -241,10 +292,10 @@ Configurations
Each VSN configuration is maintained in a sudirectory and Each VSN configuration is maintained in a sudirectory and
can be selected as follow: can be selected as follow:
cd tools cd tools
./configure.sh vsn/<subdir> ./configure.sh vsn/<subdir>
cd - cd -
. ./setenv.sh . ./setenv.sh
Where <subdir> is one of the following: Where <subdir> is one of the following: