Changes in this commit:
- Manifest include's now use the directory path where possible (no longer
necessary to include the manifest.py file explicitly).
- Add manifest.py for all drivers and components that are referenced by
port/board manifests.
- Replace all uses of freeze() with package()/module(), except for port and
board modules.
- Use opt=3 everywhere, for consistency and to reduce code size.
- Use require() instead of include() for all micropython-lib references.
- Remove support for optional board-level manifest.py in mimxrt port, to
make it behave the same as other ports (the board must set
FROZEN_MANIFEST to a custom manifest.py, which can optionally include the
default, port-level manifest).
- Also reinstates modules that were accidentally removed from the esp8266
512k build in fbe9417b90.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
Signed-off-by: Damien George <damien@micropython.org>
The Renesas RA port
This is a port of MicroPython to the Renesas RA family of microcontrollers. Currently supported features are:
- Filesystem on the internal flash using FatFs.
utimemodule with sleep, time, and ticks functions.uosmodule with VFS support.machinemodule with the following classes:Pin,ADC,I2C,SPI,SoftI2C,SoftSPI,UART,RTC- sdcard driver if frozen driver is installed.
Currently supported board product names are:
- EK-RA6M2
- RA4M1 CLICKER
- EK-RA6M1
- EK-RA4M1
- EK-RA4W1
Please refer to the quick reference of renesas-ra port for more
information about the boards.
Build instructions
-
MicroPython cross-compier The MicroPython cross-compiler must be built first, which will be used to pre-compile (freeze) built-in Python code. THis cross-compiler is built and run on the host machine, using:
$ make -C mpy-crossThis command should be executed from the root directory of this repository. All other commands below should be executed from the ports/renesas-ra/ directory.
-
Arm compiler An
Arm compileris required for the build, along with the associated binary utilities. The default compiler isarm-none-eabi-gcc, which is available for Linux, Mac and Windows hosts via https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads. The compiler can be changed using theCROSS_COMPILEvariable when invokingmake. -
Obtain submodules First the submodules must be obtained using:
$ make submodules -
Build binary image
.hexThen to build for a given board subdirectory name, run:$ make BOARD=RA6M2_EK clean $ make BOARD=RA6M2_EKThe default board subdirectory name is RA6M2_EK (which is for EK-RA6M2 board) but any of the names of the subdirectories in the
boards/directory can be passed as the argument toBOARD=; for exampleRA4M1_CLICKER,RA4M1_EK,RA4W1_EKandRA6M1_EK. The above command should produce binary imagesfirmware.hexin the build-RA6M2_EK/` subdirectory (or the equivalent directory for the board specified).
Supported/Unsupprted funtions
Please refer to the renesas-ra quick reference.
Known issues
all boards
-
machine.lightsleep(time_ms) and machine.deepsleep(time_ms) raise uncaught exceptions.
machine.deepsleep(1000) Uncaught exception in ExtInt interrupt handler line 16 TypeError:
RA4M1-CLICKER
- mpremote: mount command is not available due to limited memory resources.
EK-RA4M1
- mpremote: mount command is not available due to limited memory resources.
EK-RA4W1
- mpremote: "Execution: timeout waiting for remote" error happens when importing a file on /remote.