Skip to content
Permalink
bcafcf8fc3
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
75 lines (57 sloc) 2.56 KB
Port of MicroPython to NXP iMX RT 10xx
======================================
Currently supports Teensy 4.0, Teensy 4.1, and the
MIMXRT1010_EVK, MIMXRT1020_EVK, MIMXRT1050_EVK, MIMXRT1060_EVK and
MIMXRT1064_EVK boards.
Features:
- REPL over USB VCP
- machine.ADC
- machine.I2C
- machine.LED
- machine.Pin
- machine.PWM
- machine.RTC
- machine.SDCard
- machine.SPI
- machine.Signal
- machine.SoftI2C
- machine.SoftSPI
- machine.Timer
- machine.UART
- LFS2 file system at the internal Flash
- SDCard support (not on MIMXRT1010_EVK)
- Ethernet (not on Teensy 4.0 and MIMXRT1010_EVK)
Known issues:
TODO:
- More peripherals (Counter, I2S, CAN, etc)
- More Python options
## Build Instructions
Before building the firmware for a given board the MicroPython cross-compiler
must be built; it will be used to pre-compile some of the built-in scripts to
bytecode. The cross-compiler is built and run on the host machine, using:
$ make -C mpy-cross
This command should be executed from the root directory of this repository.
All other commands below should be executed from the ports/mimxrt/ directory.
An ARM compiler is required for the build, along with the associated binary
utilities. The default compiler is `arm-none-eabi-gcc`, which is available for
Arch Linux via the package `arm-none-eabi-gcc`, for Ubuntu via instructions
[here](https://launchpad.net/~team-gcc-arm-embedded/+archive/ubuntu/ppa), or
see [here](https://launchpad.net/gcc-arm-embedded) for the main GCC ARM
Embedded page. The compiler can be changed using the `CROSS_COMPILE` variable
when invoking `make`.
In addition newlib is required which is available for Arch Linux via the
package `arm-none-eabi-newlib`, for Ubuntu/Debian install package `libnewlib-arm-none-eabi`
Next, the board to build must be selected. Any of the board names of the
subdirectories in the `boards/` directory is a valid board. The board name
must be passed as the argument to `BOARD=` when invoking `make`.
All boards require certain submodules to be obtained before they can be built.
The correct set of submodules can be initialised using (with `SEEED_ARCH_MIX`
as an example of the selected board):
$ make BOARD=SEEED_ARCH_MIX submodules
Then to build the board's firmware run:
$ make BOARD=SEEED_ARCH_MIX
The above command should produce binary images in the `build-SEEED_ARCH_MIX/`
subdirectory (or the equivalent directory for the board specified).
## Flashing
Deploy the firmware following the instructions here
https://docs.micropython.org/en/latest/mimxrt/tutorial/intro.html#deploying-the-firmware