最近要基于瑞萨的RH850开发BootLoader,调试过程遇到了一些问题,在这里记录一下。

1 Flash擦写问题

1.1 Flash介绍

Flash分为DFlash和CFlash
DFlash一般也被用作模拟E2,用于存储整车上的物流信息等,Boot和App都有权限访问这块区域,一般是通过Fee和NvM组合的形式访问,当然也可以通过自己写api去擦写这块区域的相关信息;
CFlash用于存储代码,如我们的Boot和App的代码就存储在CFlash,包括一些标定数据也都存放在这里,可以通过特定的接口(Mcal里Fls模块配置生成的)去访问CFlash。
需要注意的是:擦写驱动的相关代码不能跟擦写的目标区域放在同一个bank中,具体要求不同芯片的定义不一样,以瑞萨为例:我目前的代码都是放在bank A中,现在要擦除bank A中的部分区域,那么擦写驱动就不能放在bank A中,比较好的选择是放到ram中或者放到其他bank里,这样子都可以。

1.2 问题记录

boot的开发需要一个能够正常运行的最小系统,有了最小系统之后把上层的逻辑移植过来即可。这个最小系统需要具备如下功能:Can收发功能、定时器功能、Port口配置功能、AD采样功能、SPI配置功能、Flash擦写功能。
手里的最小系统大部分功能都调通了,Flash的擦写一直有问题。Flash的擦写驱动是直接找瑞萨的fae要过来的,但是不能直接用,需要移植一下。

1.3 问题现象

调用擦除flash

06-16 15:07