cf8c25df64
This port was the joing effort of Janne Rosberg, Ivan Ucherdzhiev, and myself. I give credit to Ivan for the kill because he is the one to held on to the end. Squashed commit of the following: Author: Gregory Nutt <gnutt@nuttx.org> configs/imxrt1050-evk/scripts: Add section to linker script to handle the case where RAMFUNCs are enabled. RAMFUNCs appear to be enabled in the default configuration ... they probably should not be enabled. Author: Ivan Ucherdzhiev <ivanucherdjiev@gmail.com> arch/arm/src/imxrt: imxrt_lowputc.c is finished. Now everything needed for the initial port is done and ready for testing. arch/arm/src/imxrt: Add logic to imxrt_lowputc.c. Still incomplete. Author: Ivan Ucherdzhiev <ivanucherdjiev@gmail.com> arch/arm/src/imxrt: Add serial support. configs/imxrt1050-evk: Add linker script. Author: Gregory Nutt <gnutt@nuttx.org> arch/arm/src/imxrt: Add initial cut at imxrt_allocateheap.c Author: Ivan Ucherdzhiev <ivanucherdjiev@gmail.com> arm/arm/src/imxrt: Completes all definitions for PADMUX, CTLMUX, and IOMUX_INPUT and mapping tables on imxrt_gpio.c and imxr_iomuxc.c. arch/arm/src/imxrt/chip: Add definitions for IMXRT_PADCTL and IMXRT_PADMUX registers. Only the IMXRT_INPUT definitions in this commit. arch/arm/src/imxrt/chip: Add more IOMUXC register definitions. Author: Gregory Nutt <gnutt@nuttx.org> configs/imxrt1050-evk: Add STRIP definition to Make.defs. arch/arm/src/imxrt: Bring in i.MX6 memory configuration settings. arch/arm/src/imxrt: Remove call to non-existent imxrt_gpioinit() from imxrt_start.c. arch/arm/src/imxrt: Bring in incomplete imxrt_iomuxc.c file from i.mx6. arch/arm/src/imxrt: Add first cut at GPIO interrupt logic. arch/arm/include: Add definitions to support a second level of GPIO pin interrupts. Author: Janne Rosberg <janne.rosberg@offcode.fi> arch/arm/src/imxrt: Add imxrt_wdog.c/.h Author: Gregory Nutt <gnutt@nuttx.org> arch/arm/src/imxrt: Port SAMv7 interrupt logic to imxrt_irq.c. arch/arm/src/imxrt: More clarification of the start-up memory map. arch/arm/src/imxrt: Some mostly cosmetic clean-up to the imxrt_start.c file that was so rudely taken from the SAMv7. arch/arm/src/imxrt: Add imxrt_start.c. Initial commit is the the SAMv7 startup logic with name changes. Author: Ivan Ucherdzhiev <ivanucherdjiev@gmail.com> arch/arm/src/imxrt: Adds a few IOMUXC register definitions. Author: Janne Rosberg <janne.rosberg@offcode.fi> arch/arm/src/imxrt: Add imxrt_clockconfig.c/.h configs/imxrt1050-evk: Add clock configuration definitions to board.h arch/arm/src/imxrt: Fix CCM register name; Fix doubly defined in LPUART bit field. arch/arm/src/imxrt: Add analog defines to CCM register definition header file. Author: Gregory Nutt <gnutt@nuttx.org> arch/arm/src/imxrt: Bring in GPIO C files from i.MX6. Things are in disarray now because that GPIO logic depends on IOMUXC logic which is not yet in place. arch/arm/src/imxrt: Add a few more GPIO definitions to make the header file compatible with i.MX6 arch/arm/src/imxrt/chip: Add GPIO register definition file. Author: Janne Rosberg <janne.rosberg@offcode.fi> arch/arm/src/imxrt: Add DCDC register definitions. arch/arm/srch/imxrt: Add CCM register bit definitions Author: Gregory Nutt <gnutt@nuttx.org> Purely cosmetic arch/arm/src/imxrt: Add system reset controller register definition header file. Embarassingly trivial change left in compiler. arch/arm/src/imxrt: Finishes i.MX RT1050 LPUART register definition header file. arch/arm/src/imxrt: Beginning of an i.MX RT1050 LPUART register definition header file. Some trivial things Author: Janne Rosberg <janne.rosberg@offcode.fi> arch/arm/src/imxrt: Add imxrt_wdog.h arch/arm/src/imxrt: Add initial imxrt_ccm.h Author: Gregory Nutt <gnutt@nuttx.org> Trivial update to README. arch/arm/src/imxrt: The i.MX Rt implements 4 bits of interrupt priority, not two. Thanks, Janne. arch/arm/src/imxrt: Fix some initial compile issues. Still a long way from complete, but there is a buildable environment now for the imxrt1050-evk. configs/imxrt1050-evk: Add an initial NSH configuration for testing. configs/Kconfig: Hook the i.MX RT 1050 board configuration into the NuttX configuration system. configs/imxrt_evk: Add the framework for i.MX RT 1050 board support. arch/arm/src/imxrt: Bring in a few more files from LPC54xxx. arch/arm/src/imxrt: Bring in imxrt_clrpend() from the LPC54xxx. arch/arm/src/imxrt: Bring in Cortex-M7 SysTick setup from the SAMv7. arch/arm/src/imxrt: Add a few easy files. arch/arm/src/imxrt/chip: Add memory map header files. arch/arm/src/imxrt: A few basic files to start the port to the i.MX RT 1050.
169 lines
5.1 KiB
Plaintext
169 lines
5.1 KiB
Plaintext
README
|
|
======
|
|
|
|
This README file provides information about the port of NuttX to the NXP
|
|
i.MXRT evaluation kit, MIMXRT1050-EVKB. This board features the
|
|
MIMXRT1052DVL6A MCU. Some of the features of this board include:
|
|
|
|
o Processor
|
|
|
|
- MIMXRT1052DVL6A processor
|
|
|
|
o Memory
|
|
|
|
- 256 Mb SDRAM memory
|
|
- 512 Mb Hyper Flash
|
|
- Footprint for QSPI Flash
|
|
- TF socket for SD card
|
|
|
|
o Display and Audio
|
|
|
|
- Parallel LCD connector
|
|
- Camera connector
|
|
- Audio CODEC
|
|
- 4-pole audio headphone jack
|
|
- External speaker connection
|
|
- Microphone
|
|
- SPDIF connector
|
|
|
|
o Connectivity
|
|
|
|
- Micro USB host and OTG connectors
|
|
- Ethernet (10/100T) connector
|
|
- CAN transceivers
|
|
- Arduino® interface
|
|
|
|
Contents
|
|
========
|
|
|
|
o Serial Console
|
|
o LEDs and buttons
|
|
o Configurations
|
|
- Configuration sub-directories
|
|
|
|
Serial Console
|
|
==============
|
|
|
|
To be provided.
|
|
|
|
GPIO_AD_B0_12 LPUART1_TX UART Console
|
|
GPIO_AD_B0_13 LPUART1_RX UART Console
|
|
|
|
LEDs and buttons
|
|
================
|
|
|
|
LEDs
|
|
----
|
|
|
|
There are four LED status indicators located on the EVK Board. The
|
|
functions of these LEDs include:
|
|
|
|
- Main Power Supply(D3)
|
|
Green: DC 5V main supply is normal.
|
|
Red: J2 input voltage is over 5.6V.
|
|
Off: The board is not powered.
|
|
- Reset RED LED(D15)
|
|
- OpenSDA LED(D16)
|
|
- USER LED(D18)
|
|
|
|
Only a single LED, D18, is under software control. It connects to
|
|
GPIO_AD_B0_09 which is shared with JTAG_TDI and ENET_RST
|
|
|
|
This LED is not used by the board port unless CONFIG_ARCH_LEDS is
|
|
defined. In that case, the usage by the board port is defined in
|
|
include/board.h and src/sam_autoleds.c. The LED is used to encode
|
|
OS-related events as follows:
|
|
|
|
------------------- ----------------------- ------
|
|
SYMBOL Meaning LED
|
|
------------------- ----------------------- ------
|
|
LED_STARTED NuttX has been started OFF
|
|
LED_HEAPALLOCATE Heap has been allocated OFF
|
|
LED_IRQSENABLED Interrupts enabled OFF
|
|
LED_STACKCREATED Idle stack created ON
|
|
LED_INIRQ In an interrupt N/C
|
|
LED_SIGNAL In a signal handler N/C
|
|
LED_ASSERTION An assertion failed N/C
|
|
LED_PANIC The system has crashed FLASH
|
|
|
|
Thus if the LED is statically on, NuttX has successfully booted and is,
|
|
apparently, running normally. If the LED is flashing at approximately
|
|
2Hz, then a fatal error has been detected and the system has halted.
|
|
|
|
Buttons
|
|
-------
|
|
|
|
There are four user interface switches on the MIMXRT1050 EVK Board:
|
|
|
|
- SW1: Power Switch (slide switch)
|
|
- SW2: ON/OFF Button
|
|
- SW3: Reset button
|
|
- SW8: User button
|
|
|
|
Only the user button is available to the software. It is sensed on the
|
|
WAKEUP pin which will be pulled low when the button is pressed.
|
|
|
|
Configurations
|
|
==============
|
|
|
|
Information Common to All Configurations
|
|
----------------------------------------
|
|
Each i.MX RT 10050 configuration is maintained in a sub-directory and
|
|
can be selected as follow:
|
|
|
|
tools/configure.sh [OPTIONS] imxrt1050-evk/<subdir>
|
|
|
|
Where typical options are -l to configure to build on Linux or -c to
|
|
configure for Cygwin under Linux. 'tools/configure.sh -h' will show
|
|
you all of the options.
|
|
|
|
Before building, make sure the PATH environment variable include the
|
|
correct path to the directory than holds your toolchain binaries.
|
|
|
|
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.
|
|
|
|
make
|
|
|
|
The <subdir> that is provided above as an argument to the tools/configure.sh
|
|
must be is one of the following.
|
|
|
|
NOTES:
|
|
|
|
1. These configurations use the mconf-based configuration tool. To
|
|
change any of these configurations using that tool, you should:
|
|
|
|
a. Build and install the kconfig-mconf tool. See nuttx/README.txt
|
|
see additional README.txt files in the NuttX tools repository.
|
|
|
|
b. Execute 'make menuconfig' in nuttx/ in order to start the
|
|
reconfiguration process.
|
|
|
|
2. Unless stated otherwise, all configurations generate console
|
|
output on UART3 (i.e., for the Arduino serial shield).
|
|
|
|
3. All of these configurations are set up to build under Windows using the
|
|
"GNU Tools for ARM Embedded Processors" that is maintained by ARM
|
|
(unless stated otherwise in the description of the configuration).
|
|
|
|
https://developer.arm.com/open-source/gnu-toolchain/gnu-rm
|
|
|
|
That toolchain selection can easily be reconfigured using
|
|
'make menuconfig'. Here are the relevant current settings:
|
|
|
|
Build Setup:
|
|
CONFIG_HOST_WINDOWS=y : Window environment
|
|
CONFIG_WINDOWS_CYGWIN=y : Cywin under Windows
|
|
|
|
System Type -> Toolchain:
|
|
CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIW=y : GNU ARM EABI toolchain
|
|
|
|
Configuration sub-directories
|
|
-----------------------------
|
|
|
|
nsh:
|
|
|
|
Configures the NuttShell (nsh) located at examples/nsh. This NSH
|
|
configuration is focused on low level, command-line driver testing.
|
|
It has no network.
|