本文聚焦 RH850F1KM-S2 的 IAR 工程搭建,涵盖从新建项目、配置设备与烧录器到添加必要文件等步骤。同时,针对 UART 中断无法进入、打印异常问题,提供了中断配置及 RAM 清零解决办法,为开发者提供参考。

IAR工程建立

在IAR界面中选择Project-->Create New Project

选择RH850,并选定保存位置

右键工程,打开Options...设置页面

General Options-->Device-->RH850-F1x-->RH850-F1KM-S2 100pin-->RH850-R7F701760(选择对应的MCU型号)

Debugger-->E2(根据实际使用烧录器进行选择)

在IAR安装目录中获取以下文件

icf文件...\IAR Systems\Embedded Workbench 9.1\rh850\config

cstartup.s文件...\IAR Systems\EmbeddedWorkbench9.1\rh850\src\lib\rh850

low_level_init.c文件...\IAR Systems\Embedded Workbench 9.1\rh850\src\lib

在SmartConfigurator安装目录下获取以下文件

iodefine.h文件 ...\SmartConfigurator\RH850\RH850F1KM_SampleProjects\iodefine.h

添加icf文件到工程中

添加start文件夹路径到工程中

UART中断进入方式

Smart configuration生成UART模块到工程中(注意Toolchain要选择 IAR)

生成的UART中断无法直接进入,需要在在Config_UART0_user.c文件中,添加以下代码,并正确填写中断向量号

UART打印异常,RAM清零操作   

在main()函数中添加打印g_testStruct地址和g_testStruct[0] - g_testStruct[2],在Debug中,UART数据显示正常,使用RFP烧录后,UART数据显示异常

原因:Debug模式下,E2烧录器会对RAM进行清零操作,RFP烧录缺少这一步,需要做如下操作:

在cstartuo.s文件中,将 SECTION .text:CODE:NOROOT(1)修改为 SECTION.text:CODE:ROOT(1)

在low_level_init.c中添加GLOBAL RAM和Local RAM清零的操作

Local RAM和Global RAM地址参考如下

添加RAM清零操作后,RFP烧录,UART数据显示正常

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐