基于瑞萨RH850的BootLoader调试问题记录

最近要基于瑞萨的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

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
瑞萨RH850系列的Bootloader可以通过以下步骤来实现: 1. 确定Bootloader的启动方式。在RH850系列中,Bootloader可以通过多种方式启动,例如复位向量、外部中断等。需要根据具体应用选择合适的启动方式。 2. 设计Bootloader程序。Bootloader程序是用于更新应用程序的程序。需要设计一个能够从外部存储器中读取新的应用程序数据并将其写入内部存储器的程序。同时,还需要实现一些额外的功能,例如版本检测、数据校验等。 3. 让应用程序支持Bootloader。为了让应用程序能够被Bootloader更新,需要做一些额外的工作。例如,需要在应用程序中留出一定的空间,以便存放新的应用程序数据。还需要定义一个标志位,用于告诉Bootloader应该从哪个地址开始写入新的应用程序数据。 4. 实现Bootloader的自举。为了使Bootloader能够正常工作,需要实现自举功能。自举功能是指Bootloader能够从外部存储器中加载自己的程序代码,并开始执行。在RH850系列中,自举功能可以通过复位向量实现。 5. 测试和验证Bootloader。在完成Bootloader的设计和实现之后,需要进行测试和验证。可以使用一些测试工具和方法,例如仿真、代码覆盖率测试等。 需要注意的是,Bootloader的实现需要根据具体应用进行适当的修改和优化。同时,也可以使用一些开源的Bootloader程序作为参考,以加速开发过程。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值