This repository contains the port of FreeRTOS for Renesas RH850/U2x microcontrollers using the GHS compiler. The following sections provide instructions on how to use this port, a link to the test project, and other relevant information.
| Device | FPU | FXU | SMP |
|---|---|---|---|
| U2A6 | Yes | No | Yes |
| U2A8 | Yes | No | Yes |
| U2A16 | Yes | No | Yes |
| U2B6 | Yes | Yes | Yes |
| U2B10 | Yes | Yes | Yes |
The test project can be found in RH850_U2Ax_GHS and RH850_U2Bx_GHS. These projects contain example tasks and configurations to help you get started with FreeRTOS on the RH850/U2Ax and U2Bx.
configMINIMAL_STACK_SIZE must be included the reserved memory for nested interrupt. This formula can be referred: (task_context_size) * (2 + configMAX_INT_NESTING) + Stack_depth_of_taskcode In which, task_context_size is calculated as 36*4bytes = 144bytes (when FPU enabled) or 34*4bytes = 136 (when FPU disabled), configMAX_INT_NESTING is 02 as default (Note that a value of 0 is not allowed).mev_address in CRAM for Exclusive Control functionality. Users should initialize the mev_address section in the startup file.Example:
-- .mev_address section in CRAM is used for Sync flags mov ___ghsbegin_mev_address, r20 st.w r0, 0[r20]
FXU unit is only available on core 0. Users must ensure that FXU operations are restricted to core 0 by using the vTaskCoreAffinitySet function provided by FreeRTOS SMP.configENABLE_FXU to 1 to enable the FXU unit; otherwise set 0 to disable FXU unit.configDEVICE_NAME with the value U2Bx_DEVICES or U2Ax_DEVICES to specify which device is being used.configTIMER_INT_PRIORITY, with 16 levels available (0 being the highest priority and 15 the lowest).Documentation:
Support:
Contributing: