在汽车电子项目的开发过程中,Bootloader是至关重要的一个环节。它负责在系统启动时初始化硬件,加载并跳转到应用程序。本文将介绍如何在Renesas RH850F1KMS1微控制器上实现Bootloader功能。
一般来说,编写Bootloader代码需要注意以下几点:
应用启动地址编写
中断向量表的移植
合并HEX文件
本章节将介绍如何在 RH850-F1KMS1 芯片上,开发Bootloader跳转至APP的功能。
本次实验采用了由霆宝科技开发的 RH850F1KM 评估板(型号: TPD-R7F7016843AFP_v1.0.0)。
功能分为Bootloader部分和APP部分,其中Booterload部分功能如下:
循环判断P10_0
引脚的电平,默认为高电平;
当P10_0
引脚为低电平时,串口打印“Jump APP”,然后程序跳转至APP。
APP部分功能如下:
串口打印“APP”字符串。
本次实验,将使用UART0完成,按照原理图连接好跳线、仿真器、调试工具。
通讯速率为:115200
无校验位
8bit数据
1停止位
本次实验的开发环境为CS+ for CC V8.11
,建议拷贝一份我们提供的 Bootloader
工程,进行验证。
定义Boot跳转地址,即APP开始地址(例程APP地址0x20000)
跳转语句,跳转前需要引用DI()函数,关闭Boot中断
功能代码编写:
定义APP启动地址和中断向量表段
在cstart.asm文件中,EBASE的偏移设置:
在boot.asm文件中,定义APP中断向量表引用:
boot.asm允许外部引用Dummy和Dummy_Ei:
创建vecttbl.asm文件,初始化APP区域的中断向量表及向量表首地址:
中断向量表跳转中断函数(以UART0为例),中断函数需与中断号对应:
APP工程中添加Boot hex文件进行仿真
RH850 E1(LPD)(Debug Tool)–> Download File Settings --> Download files:
Add --> File type --> Hex file , File选择Boot的hex文件:
然后是将Boot Hex和APP Hex文件合并,由于步骤较多,暂不在此展开,可以参考《Bootloader Hex文件合成说明.pdf》
可以看到,上电后Bootloader成功运行,并且程序成功跳转到了APP,至此实验完成。
本次测试Boot部分也重新定义了中断向量表
boot.asm
部分修改没有进行重复说明,请参考CS+空白例程模板创建说明
如采用SmartConfigurator
生成代码,需要将r_cg_intvector.c
禁用,不参与编译
参考例程以及PDF文件请联系霆宝销售&FAE进行获取
如有需求请联系霆宝科技销售团队,邮件至sales@teampo.com,或致电0755-83187999。