Difference between revisions of "Using embOS with Renesas RA family, Flexible Software Package (FSP) and IAR"

From SEGGER Wiki
Jump to: navigation, search
Line 1: Line 1:
  +
==Introduction==
 
The [https://github.com/renesas/fsp Renesas Flexible Software Package] (FSP) is an enhanced software package designed to provide easy-to-use, scalable, high-quality software for embedded system designs using Renesas RA family of Arm Microcontrollers.
 
The [https://github.com/renesas/fsp Renesas Flexible Software Package] (FSP) is an enhanced software package designed to provide easy-to-use, scalable, high-quality software for embedded system designs using Renesas RA family of Arm Microcontrollers.
   
  +
This Wiki describes how to add embOS Cortex-M IAR to an existing Renesas FSP project.
embOS board support packages (BSPs) for Renesas RA devices and evalboards are based on and designed to use the Renesas FSP.
 
  +
With the resulting project you can still use the Renesas Smart Configurator.
You can use the Renesas RA Smart Configurator to generate a separate project and to replace the FSP files in the BSP.
 
  +
The following description uses Renesas FSP 3.1 and Renesas Smart Configurator 2021-04.
If the existing FSP files should be replaced with new generated FSP files a few modifications need to be retained:
 
   
  +
[[File:RA Smart Configurator version.png]]
==IAR EWARM==
 
IAR EWARM uses the symbol CSTACK for the stack and CSTACK is used internally in embOS.
 
   
  +
==Generate the Renesas FSP project==
1. fsp.icf
 
  +
Start the Renesas Smart Configurator and create a new IAR EWARM project with the following options.
  +
Project name and location are up to you.
  +
This Wiki article assumes the project is created within an [https://www.segger.com/downloads/embos/ embOS shipment] in ''c:\Work\embOS_CortexM_IAR_V8_Free_V5.14.0.0\Start\BoardSupport\Renesas\R7FA4M2AD_EK_RA4M2\''.
  +
  +
[[File:RA Smart Configurator Project.png]]
  +
  +
[[File:RA Smart Configurator IAR.png]]
  +
  +
[[File:RA Smart Configurator Flat.png]]
  +
  +
[[File:RA Smart Configurator NoRTOS.png]]
  +
  +
[[File:RA Smart Configurator Bare Metal.png]]
  +
  +
==Open the project in IAR EWARM==
  +
  +
[[File:IAR open.png]]
  +
  +
==Add an embOS application and exclude main.c==
  +
  +
[[File:IAR application.png]]
  +
  +
==Add an embOS library and BSP files==
  +
Add all files from the embOS BSP folder ''SEGGER'' and ''Setup'' and one embOS library. You can take these two folders from an other embOS BSP within that shipment.
  +
BSP.c might need to be updated according to your hardware.
  +
  +
[[File:IAR BSP Lib.png]]
  +
  +
==Add Include paths and define==
  +
* Add the include paths ''$PROJ_DIR$/../../../Inc'' and ''$PROJ_DIR$/SEGGER''.
  +
* Add the define ''OS_LIBMODE_DP''.
  +
  +
[[File:IAR Preprocessor.png]]
  +
  +
==Update Renesas FSP files regarding stack symbol==
  +
The Renesas FSP files use the stack symbol ''.stack''.
  +
embOS instead uses the stack symbol ''CSTACK''.
  +
Therefore all occurrences of ''.stack'' needs to be replaced with ''CSTACK''.
  +
  +
* fsp.icf
 
<source lang="C">
 
<source lang="C">
 
rw section CSTACK };
 
rw section CSTACK };
Line 15: Line 55:
 
</source>
 
</source>
   
2. bsp_compiler_support.h
+
* bsp_compiler_support.h
 
<source lang="C">
 
<source lang="C">
 
#define BSP_SECTION_STACK BSP_UNINIT_SECTION_PREFIX "CSTACK"
 
#define BSP_SECTION_STACK BSP_UNINIT_SECTION_PREFIX "CSTACK"
 
</source>
 
</source>
   
3. system.c
+
* system.c
 
<source lang="C">
 
<source lang="C">
 
#define BSP_PRV_STACK_LIMIT ((uint32_t) __section_begin("CSTACK"))
 
#define BSP_PRV_STACK_LIMIT ((uint32_t) __section_begin("CSTACK"))
Line 27: Line 67:
 
#pragma section="CSTACK"
 
#pragma section="CSTACK"
 
</source>
 
</source>
  +
  +
==Build the project==
  +
You should now be able to successfully build the project:
  +
  +
[[File:IAR build.png]]
  +
  +
==Renesas Smart Configurator==
  +
If IAR EWARM is configured accordingly you can start the Renesas Smart Configurator directly from within the IDE and generate new FSP files:
  +
  +
[[File:IAR Smar tConfigurator.png]]
  +
  +
==Conclusion==
  +
With only a few steps it is possible to create an embOS project for any Renesas RA device and to still be able to use the Renesas Smart Configurator to generate or modify FSP files.

Revision as of 09:32, 23 July 2021

Introduction

The Renesas Flexible Software Package (FSP) is an enhanced software package designed to provide easy-to-use, scalable, high-quality software for embedded system designs using Renesas RA family of Arm Microcontrollers.

This Wiki describes how to add embOS Cortex-M IAR to an existing Renesas FSP project. With the resulting project you can still use the Renesas Smart Configurator. The following description uses Renesas FSP 3.1 and Renesas Smart Configurator 2021-04.

File:RA Smart Configurator version.png

Generate the Renesas FSP project

Start the Renesas Smart Configurator and create a new IAR EWARM project with the following options. Project name and location are up to you. This Wiki article assumes the project is created within an embOS shipment in c:\Work\embOS_CortexM_IAR_V8_Free_V5.14.0.0\Start\BoardSupport\Renesas\R7FA4M2AD_EK_RA4M2\.

File:RA Smart Configurator Project.png

File:RA Smart Configurator IAR.png

File:RA Smart Configurator Flat.png

File:RA Smart Configurator NoRTOS.png

File:RA Smart Configurator Bare Metal.png

Open the project in IAR EWARM

IAR open.png

Add an embOS application and exclude main.c

IAR application.png

Add an embOS library and BSP files

Add all files from the embOS BSP folder SEGGER and Setup and one embOS library. You can take these two folders from an other embOS BSP within that shipment. BSP.c might need to be updated according to your hardware.

IAR BSP Lib.png

Add Include paths and define

  • Add the include paths $PROJ_DIR$/../../../Inc and $PROJ_DIR$/SEGGER.
  • Add the define OS_LIBMODE_DP.

IAR Preprocessor.png

Update Renesas FSP files regarding stack symbol

The Renesas FSP files use the stack symbol .stack. embOS instead uses the stack symbol CSTACK. Therefore all occurrences of .stack needs to be replaced with CSTACK.

  • fsp.icf
rw section CSTACK };

rw section CSTACK,
  • bsp_compiler_support.h
#define BSP_SECTION_STACK                  BSP_UNINIT_SECTION_PREFIX "CSTACK"
  • system.c
#define BSP_PRV_STACK_LIMIT                          ((uint32_t) __section_begin("CSTACK"))
#define BSP_PRV_STACK_TOP                            ((uint32_t) __section_end("CSTACK"))

#pragma section="CSTACK"

Build the project

You should now be able to successfully build the project:

IAR build.png

Renesas Smart Configurator

If IAR EWARM is configured accordingly you can start the Renesas Smart Configurator directly from within the IDE and generate new FSP files:

File:IAR Smar tConfigurator.png

Conclusion

With only a few steps it is possible to create an embOS project for any Renesas RA device and to still be able to use the Renesas Smart Configurator to generate or modify FSP files.