瑞萨单片机在线升级操作说明
说明:共有两个程序代码,上电复位运行Bootload程序,然后检查EEPROM里面是否置位,如果置位,则需要进行APP代码更新,否则运行已有的APP代码。
一、使用瑞萨单片机R5F2L357C为例 该单片机ROM资源如下,
1、块A-D为数据闪存,未用。
2、默认ROM空间起始地址为0x4000h
3、中断向量分为固定向量和可变向量,默认地址分别为: 固定向量Fvector:0xFFD8-0xFFFF
可变向量vector:0xFED8(至偏移256字节处) 工程文件中可查:
在fvector.c文件中
#pragma sectaddress fvector,ROMDATA 0xFFD8
我们要修改的两个程序代码空间分配为 1、APP 用户程序代码编译出来有35.4K的空间 ,存放在块2、块3和块4,共40K的空间,地址为04000h-0DFFFh
2、Bootload程序代码编译出来有5.2K的空间,存放在块0和块1,共8K的空间,地址为0E000h-0FFFFh。
二、Bootload程序代码制作
1、修改ROM空间的起始地址,默认为0x4000,改为0xE000,如下所示。
编译完成后,可直接烧录该文件。
三、APP用户代码制作(I_Collector_Update)
1、修改APP用户代码的固定向量和可变向量地址:
将vector地址由0xFED8改为0x0DED8 在fvector.c文件中
#pragma sectaddress fvector,ROMDATA 0xffd8改为 #pragma sectaddress fvector,ROMDATA 0xdfd8
重新编译下,可以看出,地址不超出0x0e000,在块2范围内
将编译的mot文件用FDT4.09工具打开另存为.bin文件,
用UltraEdit打开.bin文件,将0x4000-0xe000地址以外的数据删除,保存。此文件为在线烧录更新的文件。
这个文件可以用电脑串口发给单片机,单片机接收后IAP,自动运行。
四、系统运行
1、上电后,系统从bootload程序地址为0FFFCh上电复位,检测EEPROM存储器是否置位,如置
位,则需要更新APP应用程序,否则从APP应用程序的复位地址0DFFC处执行。
2、上位机和单片机通信使用了X-mode协议。每个数据帧为128个字节。