0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RA4M3通过USB实现固件升级

瑞萨MCU小百科 来源:未知 2023-06-09 12:30 次阅读

RA4M3通过USB实现固件升级

01

固件更新应用案例

(1)修复程序错误

(2)功能升级

02

首先必须规划好Bootloader和Application的空间分配。如下图所示,案例使用R7FA4M3AF3CFB,有1M的ROM。Bootloader从0x000000开始存储,结束地址为0x1FFFF,所占空间大小为0x20000;Application从0x20000开始存储,结束地址为0x000FFFFF,所占空间大小为0xE0000。

5bd4c412-067b-11ee-962d-dac502259ad0.png

03

创建一个Bootloader工程,添加USB_HMSC、Flash、RTC和CRC等外设。其中USB添加主机大容量存储类(HMSC)驱动程序,它实现了USB HMSC接口,可从USB大容量存储设备中读取、写入和擦除数据。

5bf2388a-067b-11ee-962d-dac502259ad0.png

04

使用RTC设置系统时间。

5c293e02-067b-11ee-962d-dac502259ad0.png

05

初始化flash驱动,然后在data flash中读取设备设置的log。

5c592748-067b-11ee-962d-dac502259ad0.png

06

初始化USB驱动,等待USB设备插入,如果检测到有USB设备插入,将会根据文件"0:Put Image Here/update.txt"中的内容,找到相应的***.srec文件,并打开文件读写数据(将文件内容解析后烧写到Application对应的地址空间),读写完成后将文件名改为"0:Put Image Here/loaded.txt",表示已完成数据读写。

5c8a5426-067b-11ee-962d-dac502259ad0.png

07

根据信息类型擦除data flash中的数据,擦除成功后写入新的设备设置参数

5ca3f50c-067b-11ee-962d-dac502259ad0.png

08

在属性→设置中输出srec格式文件作为Bootloader烧录文件。

5cda9d78-067b-11ee-962d-dac502259ad0.png

09

将Bootloader烧录到EK-RA4M3开发板上。首先,利用J-Flash Lite将RA4M3整片擦除,然后将ra4m3_hmsc_noRTOS.srec烧写到芯片中,由于此时app部分内容为空,红色LED闪烁(按下reset大概10秒后,红色LED闪烁)。

5d14e172-067b-11ee-962d-dac502259ad0.png

10

打开e2 studio新建Application工程,用来验证可以通过Bootloader成功升级Application,若成功升级,三颗LED灯会不停地闪烁。

5d3caf04-067b-11ee-962d-dac502259ad0.png

11

打开memory_regions.ld文件,FLASH_LENGTH = 0x100000;更新为FLASH_LENGTH = 0xE0000;

由于Bootloader占用了0x20000大小,因此对于EK-RA4M3来说,仅剩下0x100000-0x20000=0xE0000大小可供Application使用。

5d76de9a-067b-11ee-962d-dac502259ad0.png

12

Application工程生成srec格式文件,下图红框位置勾选 Section: -j .text & -j .data,使得application project仅生成code flash对应的内容。

5db379a4-067b-11ee-962d-dac502259ad0.png

13

准备一个U盘(FAT32格式),在里面建一个文件夹,命名为“Put Image Here”,将RA4M3_BLINKY.srec文件添加进去

5de0e72c-067b-11ee-962d-dac502259ad0.png

14

update.txt文件里面添加RA4M3_BLINKY.srec

5dfe7c88-067b-11ee-962d-dac502259ad0.png

15

将U盘插入,开发板上电,当前运行的代码是Bootloader,由于此时尚未执行Application升级,因此LED2常亮,按下复位键,使得Bootloader重新运行,执行Application代码升级,可以看到LED灯按照RA4M3_BLINKY程序闪烁。将U盘插回电脑查看“Put Image Here”文件夹,可以看到update.txt变为loaded.txt,程序升级成功。

5e1e9e14-067b-11ee-962d-dac502259ad0.png

更多内容请识别下方二维码查看:

5e6cf262-067b-11ee-962d-dac502259ad0.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16016

    浏览量

    343609
  • 瑞萨
    +关注

    关注

    32

    文章

    22214

    浏览量

    84915

原文标题:RA4M3通过USB实现固件升级

文章出处:【微信号:瑞萨MCU小百科,微信公众号:瑞萨MCU小百科】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何对miniprog4进行升级Firnware,需要下载固件吗?

    请问如何对miniprog4进行升级 Firnware,需要下载固件吗? 能否提供一个升级步骤,谢谢!
    发表于 03-06 06:43

    如何将USB-UART bridge固件复合进来,实现synchronous slave FIFO和USB-UART bridge同时工作?

    控制端口的同时,也与UART相连接,做bulk传输方向控制 当PC通过端口0发送 21 01 00 00 00 00 01 00后,FX3 固件会把PC随后通过端口0发送的1字节数据由
    发表于 02-29 07:09

    FX3通过USB3.0引导烧录固件后设备无法识别的原因?怎么解决?

    自己设计的板子中移植了FX3部分的电路,采用USB引导烧录固件之后,显示烧录成功,但原来可以识别的设备消失不见了,有朋友出现这种情况嘛?无奈通过
    发表于 02-27 07:50

    请问M452通过USB升级固件的PC端工具软件是什么?

    现在用的是M452, 带USB Bootloader,但是没找到上位机的工具软件? 求告知,谢谢
    发表于 01-17 06:05

    单片机通过USB升级固件的方法

    单片机升级固件的方法有很多中,比如:ISP(在系统编程)、ICP(在电路编程)、IAP(在应用编程)等。
    的头像 发表于 01-11 09:37 604次阅读
    单片机<b class='flag-5'>通过</b><b class='flag-5'>USB</b><b class='flag-5'>升级</b><b class='flag-5'>固件</b>的方法

    AT32 MCU如何使用OTA通过USART实现固件的在线升级更新

    AT32 MCU如何使用OTA通过USART实现固件的在线升级更新
    的头像 发表于 10-26 17:09 920次阅读
    AT32 MCU如何使用OTA<b class='flag-5'>通过</b>USART<b class='flag-5'>实现</b>对<b class='flag-5'>固件</b>的在线<b class='flag-5'>升级</b>更新

    如何使用AT32F415 USB HOST接U盘进行固件升级

    AT32F415 IAP using a USB host connected U disk描述如何使用AT32F415 USB HOST接U盘进行固件升级
    发表于 10-24 06:50

    RA4M3通过USB实现固件升级

    RA4M3通过USB实现固件升级
    的头像 发表于 10-18 08:06 153次阅读
    <b class='flag-5'>RA4M3</b><b class='flag-5'>通过</b><b class='flag-5'>USB</b><b class='flag-5'>实现</b><b class='flag-5'>固件</b><b class='flag-5'>升级</b>

    AT32 MCU如何使用IAP通过USART实现固件的在线升级更新

    AT32 MCU如何使用IAP通过USART实现固件的在线升级更新
    的头像 发表于 09-19 16:51 1172次阅读
    AT32 MCU如何使用IAP<b class='flag-5'>通过</b>USART<b class='flag-5'>实现</b>对<b class='flag-5'>固件</b>的在线<b class='flag-5'>升级</b>更新

    Ethernet远程固件升级

    本实验工程实现了Ethernet远程固件升级通过编译下载工程到STM32F769 Flash bank1并执行,能够实现从远程服务器下载
    发表于 09-11 06:00

    如何通过安卓装置的USB OTG连接升级NUC240的固件

    - EVB - NUC240 - LQFP100 V1.0 这一样本代码表明如何通过安卓装置的USB OTG(On-The-Go)连接升级NUC240的固件。 您可以在下列时间下载
    发表于 08-31 07:59

    如何使用M451 CAN接口来升级APROM的固件

    应用程序:此示例代码使用 M451 CAN 接口来升级APROM 的固件。 BSP 版本:M451系列BSP CMSIS V3.01.001 硬件: NuMaker-PFM-
    发表于 08-23 07:46

    详解蓝牙空中升级(BLE OTA)原理与步骤

    如何实现BLE OTA?什么叫DFU?如何通过UART实现固件升级?又如何通过
    的头像 发表于 07-10 09:36 3950次阅读
    详解蓝牙空中<b class='flag-5'>升级</b>(BLE OTA)原理与步骤

    RA4M3 组 用户手册: 硬件

    RA4M3 组 用户手册: 硬件
    发表于 06-30 18:41 0次下载
    <b class='flag-5'>RA4M3</b> 组 用户手册: 硬件

    RA4M3 组 数据表

    RA4M3 组 数据表
    发表于 06-30 18:41 0次下载
    <b class='flag-5'>RA4M3</b> 组 数据表