This repository contains the port of FreeRTOS for Renesas RH850/U2x microcontrollers using the CC-RH 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_CCRH and RH850_U2Bx_CCRH. This project contains example tasks and configurations to help you get started with FreeRTOS on the RH850/U2Ax and U2Bx.
(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 #__s.mev_address.bss, 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.-DconfigENABLE_FXU. FPU can be enabled by specific compiler option -DconfigENABLE_FPUconfigENABLE_FXU and configENABLE_FPU must be defined in FreeRTOSConfig.h.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: