f3d1495fd3
Changes include: - Some mbedtls source files renamed or deprecated. - Our `mbedtls_config.h` files are renamed to `mbedtls_config_port.h`, so they don't clash with mbedtls's new default configuration file named `mbedtls_config.h`. - MBEDTLS_TLS_DEFAULT_ALLOW_SHA1_IN_KEY_EXCHANGE is deprecated. - MBEDTLS_HAVE_TIME now requires an `mbedtls_ms_time` function to be defined but it's only used for TLSv1.3 (currently not enabled in MicroPython so there is a lazy implementation, i.e. seconds * 1000). - `tests/multi_net/ssl_data.py` is removed (due to deprecation of MBEDTLS_TLS_DEFAULT_ALLOW_SHA1_IN_KEY_EXCHANGE), there are the existing `ssl_cert_rsa.py` and `sslcontext_server_client.py` tests which do very similar, simple SSL data transfer. - Tests now use an EC key by default (they are smaller and faster), and the RSA key has been regenerated due to the old PKCS encoding used by openssl rsa command, see https://stackoverflow.com/questions/40822328/openssl-rsa-key-pem-and-der-conversion-does-not-match (and `tests/README.md` has been updated accordingly). Signed-off-by: Carlos Gil <carlosgilglez@gmail.com> |
||
---|---|---|
.. | ||
boards | ||
fsp_cfg | ||
lwip_inc | ||
mbedtls | ||
ra | ||
Makefile | ||
RA4M1_hal.h | ||
RA4W1_hal.h | ||
RA6M1_hal.h | ||
RA6M2_hal.h | ||
RA6M5_hal.h | ||
README.md | ||
boardctrl.c | ||
boardctrl.h | ||
build_all_boards.sh | ||
extint.c | ||
extint.h | ||
factoryreset.c | ||
factoryreset.h | ||
fatfs_port.c | ||
flash.c | ||
flash.h | ||
flashbdev.c | ||
gccollect.c | ||
gccollect.h | ||
help.c | ||
irq.c | ||
irq.h | ||
led.c | ||
led.h | ||
machine_adc.c | ||
machine_dac.c | ||
machine_i2c.c | ||
machine_pin.c | ||
machine_pwm.c | ||
machine_rtc.c | ||
machine_sdcard.c | ||
machine_spi.c | ||
machine_uart.c | ||
main.c | ||
modmachine.c | ||
modmachine.h | ||
modos.c | ||
modtime.c | ||
mpbthciport.c | ||
mpbthciport.h | ||
mpconfigboard_common.h | ||
mpconfigport.h | ||
mpconfigport.mk | ||
mphalport.c | ||
mphalport.h | ||
mpnetworkport.c | ||
mpnimbleport.c | ||
mpnimbleport.h | ||
mpthreadport.c | ||
mpthreadport.h | ||
pendsv.c | ||
pendsv.h | ||
pin.h | ||
powerctrl.c | ||
powerctrl.h | ||
powerctrlboot.c | ||
pybthread.c | ||
pybthread.h | ||
qstrdefsport.h | ||
ra_hal.c | ||
ra_it.c | ||
ra_it.h | ||
rng.c | ||
rng.h | ||
rtc.h | ||
spi.h | ||
storage.c | ||
storage.h | ||
systick.c | ||
systick.h | ||
timer.c | ||
timer.h | ||
uart.c | ||
uart.h | ||
usbd.c | ||
usrsw.c | ||
usrsw.h |
README.md
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.
time
module with sleep, time, and ticks functions.os
module with VFS support.machine
module with the following classes:Pin
,ADC
,PWM
,DAC
,I2C
,SPI
,SoftI2C
,SoftSPI
,UART
,RTC
,SDCard
.sdcard
module for MCUs without nativemachine.SDCard
support.
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-cross
This 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 compiler
is 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_COMPILE
variable when invokingmake
. -
Protocol buffer compiler Building for the
ARDUINO_PORTENTA_C33
board will build theesp_hosted
driver, that depends on the Protocol Buffer Compiler being installed. On Debian/Ubuntu, this can be installed withsudo apt-get install protobuf-compiler
. -
Obtain submodules First the submodules must be obtained using:
$ make submodules
-
Build binary image
.hex
Then to build for a given board subdirectory name, run:$ make BOARD=EK_RA6M2 clean $ make BOARD=EK_RA6M2
The default board subdirectory name is EK_RA6M2 (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
,EK_RA4M1
,EK_RA4W1
andEK_RA6M1
. The above command should produce binary imagesfirmware.hex
in the build-EK_RA6M2/` 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.