You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Fix FPU stack order issue and Improve FPU checking flow Fix Interrupt depth comparison logic Fix parameter mismatch in portmacro.h file Add comment to explain assembly code |
3 months ago | |
---|---|---|
.. | ||
README.md | 3 months ago | |
port.c | 3 months ago | |
portasm.s | 3 months ago | |
portmacro.h | 3 months ago |
README.md
RH850/F1K and F1Kx FreeRTOS Port with CC-RH Compiler
Introduction
This repository contains the port of FreeRTOS for Renesas RH850/F1K and F1Kx 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.
Prerequisites
- Compiler: CC-RH
- FreeRTOS version 11.1.0
Device | FPU | SMP |
---|---|---|
F1K | Yes | No |
F1KM-S1 | Yes | No |
F1KM-S2 | Yes | No |
F1KM-S4 | Yes | No |
F1KH-D8 | Yes | Yes |
Link to Test Project
The test project can be found here (RH850_F1Kx_CCRH
). This project contains example tasks and configurations to help you get started with FreeRTOS on the RH850/F1K and F1Kx.
Note
- Configure IPIR Interrupt: Ensure that the bit specifying the destination for binding (requesting) an interrupt is enabled (e.g: IBDxxx register of F1KH-D8) (1)
Channel 0
and address0xFFFEEC00
are used as default configuration for configIPIR_CHANNEL and configEXCLUSIVE_ADDRESS, in case of resource confliction other channel/address can be used. (2)- The minimal stack size (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 as36*4bytes = 144bytes
(when FPU enabled) or34*4bytes = 136
(when FPU disabled), configMAX_INT_NESTING is02
as default (Note that a value of0
is not allowed). configTIMER_PRESCALE
: This value is required in order to correctly configure clock forCPUCLK_L
. Refer to Hardware Manual atTable 44.22
foroption byte
: If the user sets the option byteCKDIVMD to 1
, thenconfigTIMER_PRESCALE = 4
. Otherwise, ifCKDIVMD is set to 0
, thenconfigTIMER_PRESCALE = 2
.
(1) This is applicable for F1KH-D8 with SMP only.
(2) This is optional and applicable for SMP only.
Other Relevant Information
-
Documentation:
- Refer to the official FreeRTOS documentation for detailed information on configuring and using FreeRTOS.
- Consult the RH850 F1K group user manual hardware manual for specific details about the microcontroller.
- For more information about Renesas RH850/F1K and F1Kx, please visit this website
- The CC-RH compiler can be downloaded here
-
Support:
- If you encounter any issues or have questions about this port, please open an issue in this repository or contact the maintainer.
-
Contributing:
- Contributions to improve this port are welcome. Please fork the repository, make your changes, and submit a pull request.