|
|
||
|---|---|---|
| .. | ||
| boards | ||
| hal | ||
| lwip_inc | ||
| mbedtls | ||
| modules | ||
| board_init.c | ||
| cyw43_configport.h | ||
| dma_manager.c | ||
| dma_manager.h | ||
| eth.c | ||
| eth.h | ||
| fatfs_port.c | ||
| flash.c | ||
| flash.h | ||
| help.c | ||
| irq.h | ||
| led.c | ||
| led.h | ||
| machine_adc.c | ||
| machine_bitstream.c | ||
| machine_i2c.c | ||
| machine_i2c.h | ||
| machine_i2c_target.c | ||
| machine_i2s.c | ||
| machine_led.c | ||
| machine_pin.c | ||
| machine_pwm.c | ||
| machine_rtc.c | ||
| machine_sdcard.c | ||
| machine_spi.c | ||
| machine_uart.c | ||
| machine_wdt.c | ||
| main.c | ||
| Makefile | ||
| mimxrt_flash.c | ||
| mimxrt_sdram.c | ||
| modmachine.c | ||
| modmachine.h | ||
| modmimxrt.c | ||
| modmimxrt.h | ||
| modos.c | ||
| modtime.c | ||
| mpbthciport.c | ||
| mpbthciport.h | ||
| mpconfigport.h | ||
| mphalport.c | ||
| mphalport.h | ||
| mpmetalport.c | ||
| mpmetalport.h | ||
| mpnetworkport.c | ||
| mpnimbleport.c | ||
| mpnimbleport.h | ||
| mpremoteprocport.c | ||
| msc_disk.c | ||
| network_lan.c | ||
| pendsv.c | ||
| pendsv.h | ||
| pin.c | ||
| pin.h | ||
| qstrdefsport.h | ||
| README.md | ||
| sdcard.c | ||
| sdcard.h | ||
| sdio.c | ||
| sdio.h | ||
| systick.c | ||
| systick.h | ||
| ticks.c | ||
| ticks.h | ||
| usbd.c | ||
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, or
see here 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