micropython/ports/mimxrt
robert-hh a0432ed9cb mimxrt: Update port to work with new nxp_driver v2.10.
The nxp_driver v2.10 allows for/requires some changes to the code:

- Remove some part of pwm_backlog.*, which is provided by the lib now.
- Change eth.c: the newer versions have additional parameters of the
  library versions.
- Change sdcard.c: use TransferBlocking instead of TransferNonblocking.
- Add some support for the MIMXRT1176 device.
- Set the clocks for UART, I2C, Timer.
- Integrate the I2S module and fix a rebase error.
- Use blocking transfer only for SPI.  It's faster and interferes less with
  other modules.
- Use the clock_config.c files of library v2.8.5.  The mimxrt files keeps
  the clock_config.c files from Verson 2.8.5.  With clock_config.c from
  v2.10, the boards do not work.  Refactoring of the clock set-up is on the
  to-do list.
- Enable expiry timers for UART, I2C and SPI, avoiding a stall in library
  code.
- The clock_config.* files are moved from the board-specific directories to
  the boards directory and given a MCU related name.
2022-06-03 10:48:49 +10:00
..
boards mimxrt: Update port to work with new nxp_driver v2.10. 2022-06-03 10:48:49 +10:00
hal mimxrt: Update port to work with new nxp_driver v2.10. 2022-06-03 10:48:49 +10:00
lwip_inc
mbedtls mimxrt/mbedtls: Use core-provided tracked alloc instead of custom funcs. 2022-05-05 10:31:50 +10:00
modules
Makefile mimxrt: Update port to work with new nxp_driver v2.10. 2022-06-03 10:48:49 +10:00
README.md
board_init.c mimxrt: Update port to work with new nxp_driver v2.10. 2022-06-03 10:48:49 +10:00
dma_manager.c
dma_manager.h
eth.c mimxrt: Update port to work with new nxp_driver v2.10. 2022-06-03 10:48:49 +10:00
eth.h
fatfs_port.c
led.c
led.h
machine_adc.c all: Use mp_obj_malloc everywhere it's applicable. 2022-05-03 22:28:14 +10:00
machine_bitstream.c
machine_i2c.c mimxrt: Update port to work with new nxp_driver v2.10. 2022-06-03 10:48:49 +10:00
machine_i2s.c mimxrt: Update port to work with new nxp_driver v2.10. 2022-06-03 10:48:49 +10:00
machine_led.c
machine_pin.c
machine_pwm.c all: Use mp_obj_malloc everywhere it's applicable. 2022-05-03 22:28:14 +10:00
machine_rtc.c mimxrt/machine_rtc: Start RTC at boot and set datetime if not set. 2022-04-11 12:25:23 +10:00
machine_sdcard.c
machine_spi.c mimxrt: Update port to work with new nxp_driver v2.10. 2022-06-03 10:48:49 +10:00
machine_timer.c mimxrt: Update port to work with new nxp_driver v2.10. 2022-06-03 10:48:49 +10:00
machine_uart.c mimxrt: Update port to work with new nxp_driver v2.10. 2022-06-03 10:48:49 +10:00
machine_wdt.c
main.c
mimxrt_flash.c
mimxrt_sdram.c
modmachine.c all: Remove third argument to MP_REGISTER_MODULE. 2022-06-02 16:31:37 +10:00
modmachine.h mimxrt/machine_rtc: Start RTC at boot and set datetime if not set. 2022-04-11 12:25:23 +10:00
modmimxrt.c all: Remove third argument to MP_REGISTER_MODULE. 2022-06-02 16:31:37 +10:00
modmimxrt.h
moduos.c
modutime.c all: Remove third argument to MP_REGISTER_MODULE. 2022-06-02 16:31:37 +10:00
mpconfigport.h ports: Use default VFS config for import_stat and builtin_open. 2022-05-25 13:04:45 +10:00
mphalport.c mimxrt/mphalport: Fix strict aliasing error with unique id. 2022-06-02 12:50:14 +10:00
mphalport.h
mpnetworkport.c
network_lan.c
pendsv.c
pendsv.h
pin.c
pin.h
qstrdefsport.h
sdcard.c mimxrt: Update port to work with new nxp_driver v2.10. 2022-06-03 10:48:49 +10:00
sdcard.h
systick.c
systick.h
ticks.c
ticks.h
tusb_config.h
tusb_port.c

README.md

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