2026 / 07 / 21
如何在IAR中创建RA库项目

通常来说,针对RA的开发,瑞萨对于第三方IDE的支持(如IAR EW for ARM)均通过RASC(Renesas RA Smart Configurator)实现。具体地说,通过RASC创建基础工程,在FSP界面中添加相关驱动/中间件,生成可以在IAR EW for ARM中打开的***.eww (the workspace file)文件。


假如在开发过程需要多人协作,则需要将原始的单一工程拆分为库文件对应的工程和应用程序对应的工程。本文介绍一种在IAR中生成库文件,并被应用工程调用的参考流程。以RA6M5为例进行说明。


分为以下几步:

利用RASC创建基础驱动工程ra6m5_rasc_driver

在IAR中创建库工程ra6m5_lib,并将第一步生成的ra6m5_rasc_driver内容添加进来

在IAR中创建空的C工程ra6m5_iar_demo

调试ra6m5_iar_demo和ra6m5_lib.a


create ra6m5_rasc_driver with rasc

利用RASC创建RA工程

按照以下步骤创建RA的IAR工程,命名为ra6m5_rasc_driver,该工程内容是生成库工程的基础

1 设置工程名称和位置,建议在位置界面路径添加和工程名称一样的字符串,会在相应路径下创建一个同名文件夹用于存储工程内容


2 Device and Tools Selection界面按照实际需求配置即可


3 Project Type Selection界面选择Flat


4 RTOS Selection界面选择No RTOS


5 Project Template Selection界面选择Bare Metal - Minimal


在FSP中增加UART驱动

以添加UART驱动为例进行说明

1 在Stack选项卡,New Stack → Connectivity → UART (r_sci_uart)


2 更改驱动属性,如g_uart7 UART (r_sci_uart)


3 更新hal_entry.c以支持新增驱动,如增加对callback的定义

4 点击Generate Project Content以生成相关代码

5 在IAR中对工程进行编译


create ra6m5_lib in iar

在IAR中创建新的workspace ra6m5_lib

现在,我们在IAR中新建库类型的workspace,作为后续添加库工程的基础。

File → New Workspace


File → Save Workspace As…


将workspace另存为ra6m5_lib.eww


新建工程ra6m5_lib

按照以下步骤进行创建

Project → Create New Project…


Project templates → Empty project


另存为ra6m5_lib.ewp


将文件夹和文件拷贝到ra6m5_Lib

将ra6m5_rasc_driver文件夹中的以下内容拷贝到ra6m5_lib工程中

ra

ra_cfg

ra_gen

script

src

memory_regions.icf

partition_device.mac


在工程中添加源文件

添加以下源文件 (***.c)

ra\board\ra6m5_ek

ra\fsp\src\bsp\cmsis\Device\RENESAS\Source

ra\fsp\src\bsp\mcu\all

ra\fsp\src\r_ioport

ra\fsp\src\r_sci_uart

ra_gen

src


修改配置C/C++ Compiler - preprocessor

将以下内容粘贴至Options for node “ra6m5_lib” → C/C++ Compiler → Preprocessor → Additional include directories:

$PROJ_DIR$/ra/arm/CMSIS_5/CMSIS/Core/Include

$PROJ_DIR$/ra/board/ra6m5_ek

$PROJ_DIR$/ra/fsp/inc/api

$PROJ_DIR$/ra/fsp/inc/instances

$PROJ_DIR$/ra_cfg/fsp_cfg/bsp

$PROJ_DIR$/ra_gen

$PROJ_DIR$/ra/fsp/inc

$PROJ_DIR$/ra_cfg/fsp_cfg

将以下内容粘贴至Defined symbols:

_RENESAS_RA_

_RA_CORE=CM33


修改配置assembler - preprocessor

将以下内容粘贴至Assembler → Preprocessor → Additional include directories:

$PROJ_DIR$/ra/arm/CMSIS_5/CMSIS/Core/Include

$PROJ_DIR$/ra/fsp/inc

$PROJ_DIR$/ra/fsp/inc/api

$PROJ_DIR$/ra/fsp/inc/instances

$PROJ_DIR$/ra_cfg/fsp_cfg

$PROJ_DIR$/ra_cfg/fsp_cfg/bsp

$PROJ_DIR$/ra_gen

$PROJ_DIR$/src

将以下内容粘贴至Defined symbols:

_RENESAS_RA_

_RA_CORE=CM33


修改配置Linker

config

在Linker → Config界面勾选Override default,填入以下内容:

$PROJ_DIR$\script\fsp.icf


create ra6m5_lib in iar

在IAR中创建新的workspace ra6m5_lib

修改配置Linker

Library

在Linker → Library界面勾选Override default program entry,勾选Entry symbol,并填入以下内容:

Reset_Handler


extra options

在Linker → Extra Options界面勾选Use command line options,参数界面填入以下内容:

--config_search “$PROJ_DIR$”


修改配置Debugger

setup 

在Debugger → Setup界面,Driver → J-Link/J-Trace

Setup macros勾选Use marco file(s),参数界面填入:

$PROJ_DIR$\partition_device.mac


download

在Debugger → Download界面,取消勾选 Use flash loader(s)


extra options

在Debugger → Extra Options界面,勾选 Use command line options,参数界面填入以下内容:

--drv_vector_table_base=__Vectors

--proc_stack_main=g_main_stack,g_main_stack+sizeof(g_main_stack)


修改配置general options

1 在ra6m5_lib 上点击右键,选择Options…


2 General Options → Target → Device → Renesas R7FA6M5BH


3 General Options → Target → Output → Output file → Library


检查lra6m5_lib.a文件

1 编译工程ra6m5_lib


2 在Build console中确认编译操作成功


3 在ra6m5_lib\Debug\Exe文件下确认已生成ra6m5_lib.a库文件


Create RA6M5 IAR DEMO in IAR

创建新workspace ra6m5_IAR_DEMO

接下来,我们将创建新的workspace,作为应用工程,命名为ra6m5_iar_demo

File → New Workspace


File → Save Workspace As…


另存为ra6m5_iar_demo.eww

重复 新建工程ra6m5_lib ~ 修改配置debugger - extra options 的操作步骤


创建新工程ra6m5_iar_demo

创建新的工程并添加至新创建的workspace中

Project → Create New Project…


Project templates → Empty project


Save as ra6m5_iar_demo.ewp


将文件夹和文件拷贝到ra6m5_iar_demo

从ra6m5_lib中复制一下内容,并拷贝到ra6m4_iar_demo文件夹

script

memory_regions.icf

partition_device.mac

vector_data.c (位于ra6m5_lib的ra_gen文件夹下)


修改配置C/C++ Compiler

Preprocessor

将以下内容粘贴至C/C++ Compiler → Preprocessor → Additional include directories:

../../ra6m5_lib/ra/arm/CMSIS_5/CMSIS/Core/Include

../../ra6m5_lib/ra/fsp/inc

../../ra6m5_lib/ra/fsp/inc/api

../../ra6m5_lib/ra/fsp/inc/instances

../../ra6m5_lib/ra_cfg/fsp_cfg

../../ra6m5_lib/ra_cfg/fsp_cfg/bsp

../../ra6m5_lib/ra_gen

../../ra6m5_lib/src

将以下内容粘贴至Defined symbols:

_RENESAS_RA_

_RA_CORE=CM33


修改配置Assembler

Preprocessor

将以下内容粘贴至Assembler → Preprocessor → Additional include directories:

$PROJ_DIR$/ra/arm/CMSIS_5/CMSIS/Core/Include

$PROJ_DIR$/ra/fsp/inc

$PROJ_DIR$/ra/fsp/inc/api

$PROJ_DIR$/ra/fsp/inc/instances

$PROJ_DIR$/ra_cfg/fsp_cfg

$PROJ_DIR$/ra_cfg/fsp_cfg/bsp

$PROJ_DIR$/ra_gen

$PROJ_DIR$/src

将以下内容粘贴至Defined symbols:

_RENESAS_RA_

_RA_CORE=CM33


修改配置linker

config

在Linker → Config界面

勾选 Override default

参数界面填入 $PROJ_DIR$\script\fsp.icf


在Linker → Library界面

参数填入

$PROJ_DIR$\..\ra6m5_lib\Debug\Exe\ra6m5_lib.a

勾选Override default program entry

勾选Entry symbol,参数界面填入 Reset_Handler


extra options

在Linker → Extra Options界面

勾选 Use command line options

参数填入 --config_search “$PROJ_DIR$”


修改配置Debugger

Setup 

在Debugger → Setup界面

Driver → J-Link/J-Trace

Setup macros

勾选 Use marco file(s)

参数填入 $PROJ_DIR$\partition_device.mac


Download

在Debugger → Download界面

取消勾选 Use flash loader(s)


Extra Options

在Debugger → Extra Options界面

勾选 Use command line options

参数界面填入以下内容

--drv_vector_table_base=__Vectors

--proc_stack_main=g_main_stack,g_main_stack+sizeof(g_main_stack)


修改配置general options

1 在 ra6m5_iar_demo上点击右键,选择 Options…


2 General Options → Target → Device → Renesas R7FA6M5BH


Debug ra6m5_iar_demo + ra6m5_lib.a


在IAR中调试ra6m5_iar_demo

1 利用USB-UART连接RA6M5的SCI7和PC (TxD7 - P613, RxD7 - P614)

2 编译ra6m5_iar_demo并调试

3 在TeraTerm中检查打印的log


注意,此时ra6m5_iar_demo调用的API均来自ra6m5_lib.a,UART相关callback的实现也在ra6m5_lib.a中。


至此,已经完成了在IAR中利用Lib开发RA产品的全部流程。



概括一下,需借助RASC生成基础工程,并基于此生成Library工程,应用工程可在IAR中单独建立,添加RA相关的配置后,再关联Library即可完成。

文件下载
隐私条款

一、接受条款 使用者(也称"您")在访问或使用本网站及其服务时,即已经表示同意并不加修改地接受本《用户协议》、本网站的《隐私声明》、《法律声明》以及其关或相链接的网页和网站的条件和条款的规定。我们强烈建议:在您阅读和接受本《用户协议》时,也应阅读并接受本《用户协议》中所提到《隐私声明》、《法律声明》及其相关或相链接网页或网站所包含的资料,因为《隐私声明》、《法律声明》及其它相关网页或网站可能包含对您适用的进一步规定。(请注意:点击划有底线的词句即可链接到上述《隐私声明》、《法律声明》及其它相关或相链接的网页和网站。

 

二、使用者的资格要求 在本网站中"使用者"指的是浏览、阅读、使用本网站信息或服务的任何个人或组织。本网站的服务仅适用于根据相关法律的规定具有签订有约束力的合同的个人或组织并仅由其使用。本网站的服务不向18周岁以下的个人使用者提供,也不向临时被本网站中止或取消使用者资格的使用者提供。如果使用者不符合本条规定,请停止使用本网站或本网站的服务。

样品
申请

应用
资源

微信