circuitpython/ports/mimxrt
robert-hh dfd4324eb1 mimxrt: Add flash storage support with VFS and littlefs filesystem.
This commit adds full support for a filesystem on all boards, with a block
device object mimxrt.Flash() and uos.VfsLfs2 enabled.

Main changes are:
- Refactoring of linker scripts to accomodate reserved area for VFS.  VFS
  will take up most of the available flash. 1M is reserved for code.  9K is
  reserved for flash configuration, interrupts, etc.
- Addition of _boot.py with filesystem init code, called from main.c.
- Definition of the mimxrt module with a Flash class in modmimxrt.[ch].
- Implementation of a flash driver class in mimxrt_flash.c.  All flashing
  related functions are stored in ITCM RAM.
- Addition of the uos module with filesystem functions.
- Implementation of uos.urandom() for the sake of completeness of the uos
  module.

It uses sample code from CircuitPython supplied under MIT license, which
uses the NXP SDK example code.

Done in collaboration with Philipp Ebensberger aka @alphaFred who
contributed the essential part to enable writing to flash while code is
executing, among other things.
2021-06-01 23:42:57 +10:00
..
boards mimxrt: Add flash storage support with VFS and littlefs filesystem. 2021-06-01 23:42:57 +10:00
hal mimxrt: Add flash storage support with VFS and littlefs filesystem. 2021-06-01 23:42:57 +10:00
modules mimxrt: Add flash storage support with VFS and littlefs filesystem. 2021-06-01 23:42:57 +10:00
board_init.c mimxrt: Implement machine.Pin class. 2021-05-26 00:12:42 +10:00
led.c mimxrt: Implement machine.Pin class. 2021-05-26 00:12:42 +10:00
led.h mimxrt: Implement machine.Pin class. 2021-05-26 00:12:42 +10:00
machine_led.c mimxrt: Add initial impl of machine.LED class, and basic pin support. 2020-06-05 11:47:48 +10:00
machine_pin.c mimxrt: Extend the Pin module for SoftI2C, SoftSPI support. 2021-05-25 20:43:52 +02:00
main.c mimxrt: Add flash storage support with VFS and littlefs filesystem. 2021-06-01 23:42:57 +10:00
Makefile mimxrt: Add flash storage support with VFS and littlefs filesystem. 2021-06-01 23:42:57 +10:00
mimxrt_flash.c mimxrt: Add flash storage support with VFS and littlefs filesystem. 2021-06-01 23:42:57 +10:00
modmachine.c mimxrt: Implement machine.Pin class. 2021-05-26 00:12:42 +10:00
modmimxrt.c mimxrt: Add flash storage support with VFS and littlefs filesystem. 2021-06-01 23:42:57 +10:00
modmimxrt.h mimxrt: Add flash storage support with VFS and littlefs filesystem. 2021-06-01 23:42:57 +10:00
moduos.c mimxrt: Add flash storage support with VFS and littlefs filesystem. 2021-06-01 23:42:57 +10:00
modutime.c mimxrt: Add new, minimal port to NXP i.MX RT series CPUs. 2020-03-11 15:34:13 +11:00
mpconfigport.h mimxrt: Add flash storage support with VFS and littlefs filesystem. 2021-06-01 23:42:57 +10:00
mphalport.c mimxrt: Add flash storage support with VFS and littlefs filesystem. 2021-06-01 23:42:57 +10:00
mphalport.h mimxrt: Add flash storage support with VFS and littlefs filesystem. 2021-06-01 23:42:57 +10:00
pin.c mimxrt: Implement machine.Pin class. 2021-05-26 00:12:42 +10:00
pin.h mimxrt: Extend the Pin module for SoftI2C, SoftSPI support. 2021-05-25 20:43:52 +02:00
qstrdefsport.h mimxrt: Add new, minimal port to NXP i.MX RT series CPUs. 2020-03-11 15:34:13 +11:00
README.md mimxrt: Implement machine.Pin class. 2021-05-26 00:12:42 +10:00
ticks.c mimxrt: Improve ticks and sleep functions using GPT. 2021-05-18 22:36:32 +10:00
ticks.h mimxrt: Improve ticks and sleep functions using GPT. 2021-05-18 22:36:32 +10:00
tusb_config.h ports: Update to build with new tinyusb. 2021-02-12 12:50:36 +11:00
tusb_port.c mimxrt: Implement machine.Pin class. 2021-05-26 00:12:42 +10:00

Port of MicroPython to NXP iMX RT 10xx

Currently supports Teensy 4.0 and the i.MX RT1010 EVK board.

Features:

  • REPL over USB VCP
  • machine.Pin

Known issues:

  • pyboard.py doesn't work with files larger than 64 bytes
  • machine.Pin class currently does not support GPIOMUX option of i.MX RT101x variants

TODO:

  • Enable TCM
  • Peripherals (LED, Timers, etc)