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

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

3天内不再提示

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

技术让梦想更伟大 来源:strongerHuang 2024-01-11 09:37 次阅读

作者 |strongerHuang 微信公众号 |strongerHuang

单片机升级固件的方法有很多中,比如:ISP(在系统编程)、ICP(在电路编程)、IAP(在应用编程)等。

今天结合瑞萨单片机(RA4M3)、e2 studio开发环境给大家讲述的是单片机通过USB(U盘)升级固件的方法。

RA4M3通过USB实现固件升级

01固件更新应用案例

(1)修复程序错误

(2)功能升级

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

933a2f96-afc2-11ee-8b88-92fbcf53809c.png

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

934b6298-afc2-11ee-8b88-92fbcf53809c.png

04使用RTC设置系统时间。

936514c2-afc2-11ee-8b88-92fbcf53809c.png

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

937c952a-afc2-11ee-8b88-92fbcf53809c.png

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

9380cf3c-afc2-11ee-8b88-92fbcf53809c.png

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

9387c1e8-afc2-11ee-8b88-92fbcf53809c.png

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

93a009d8-afc2-11ee-8b88-92fbcf53809c.png

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

93bc9a76-afc2-11ee-8b88-92fbcf53809c.png

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

93d4a58a-afc2-11ee-8b88-92fbcf53809c.png

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

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

93eb08b6-afc2-11ee-8b88-92fbcf53809c.png

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

940bf0c6-afc2-11ee-8b88-92fbcf53809c.png

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

942c07d0-afc2-11ee-8b88-92fbcf53809c.png

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

94393d9c-afc2-11ee-8b88-92fbcf53809c.png

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

944a4ad8-afc2-11ee-8b88-92fbcf53809c.png

看到这里,你掌握了吗?

审核编辑:汤梓红

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

    关注

    6001

    文章

    43973

    浏览量

    620834
  • usb
    usb
    +关注

    关注

    59

    文章

    7432

    浏览量

    258161
  • 固件
    +关注

    关注

    9

    文章

    519

    浏览量

    22330
  • 开发环境
    +关注

    关注

    1

    文章

    203

    浏览量

    16460

原文标题:单片机通过USB(U盘)升级固件的方法

文章出处:【微信号:技术让梦想更伟大,微信公众号:技术让梦想更伟大】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    51单片机扩展USB接口的方法

    51单片机扩展USB接口的方法摘要:讨论了在P89C51RD 单片机上扩展USB 接口的方法.
    发表于 11-03 09:39

    单片机固件问题

    使用一个压力传感器与C8051F单片机相连进行数据传输。编一个单片机固件通过固件将读取到的电压信号转换成对应的压力信号。本人新手一枚,有些
    发表于 06-02 22:32

    51单片机通过模拟USB通信的实现方法

    基于高速51单片机的模拟USB接口设计作者:廖颂文摘要:参照AVRUSB技术给出了51单片机通过模拟USB通信的实现
    发表于 08-06 07:48

    8051系列单片机固件升级iap声明

    8051系列单片机固件升级iap声明:#define UPGRADE_FLAG 0xaa //升级标志位#define APP_START_ADDR 0x0000 //bootload
    发表于 12-01 07:01

    基于GPRS模组的单片机固件在线升级方法

    一、前言最近有朋友让我帮忙开发基于GPRS模组的单片机固件在线升级,这样的远程升级就两种方式: 1.自己定义协议,服务器端进行bin文件拆包,一包包下发。优点:可以每包一校验还可以断点
    发表于 01-20 07:17

    如何通过MicroSD卡升级主板上的固件

    使用MicroSD升级固件,需要在电脑上,通过做卡工具,将统一固件写入MicroSD卡,目前此操作只支持在Windows操作系统上完成。准备工具主板电脑SD卡
    发表于 04-26 18:00

    STM32F4DISCOVERY基于USB固件升级方法

    这文档主要介绍STM32F4DISCOVERY基于USB固件升级方法
    发表于 12-01 06:24

    如何通过ESP32S3的USB进行固件升级

    如果通过USB口,在不需要按IO0的情况下,进行升级。目前测试ESP-BOX的固件可以进行升级通过
    发表于 02-10 06:01

    如何通过ESP32S3的USB进行固件升级

    如果通过USB口,在不需要按IO0的情况下,进行升级。目前测试ESP-BOX的固件可以进行升级通过
    发表于 03-08 09:02

    GD32单片机STM32远程下载手机程序升级固件下载局域网网页升级工具

    完成STM32单片机升级。 自动编写BootLoader完成固件升级。如果需要远程升级功能,需要BootLoader完成联网的功能,需要的
    发表于 11-10 15:03

    基于USB接口的固件升级程序

    为了升级便携式设备的固件,开发一种基于USB接口的固件升级程序,使得操作方便,快捷。介绍固件文件
    发表于 12-29 17:45 69次下载

    STM32单片机网络远程升级固件的源码下载

    STM32单片机网络远程升级固件的源码下载
    发表于 04-17 09:27 69次下载

    RA4M3通过USB实现固件升级

    RA4M3通过USB实现固件升级 01 固件更新应用案例 (1)修复程序错误 (2)功能升级 0
    的头像 发表于 06-09 12:30 441次阅读
    RA4M3<b class='flag-5'>通过</b><b class='flag-5'>USB</b>实现<b class='flag-5'>固件</b><b class='flag-5'>升级</b>

    STM32单片机实现固件在线升级(IAP)

    1,固件升级方案综述单片机固件升级方式有很多种。1、ICP:简单说就是在单片机开发时使用烧录器
    的头像 发表于 12-16 08:00 887次阅读
    STM32<b class='flag-5'>单片机</b>实现<b class='flag-5'>固件</b>在线<b class='flag-5'>升级</b>(IAP)

    RA4M3通过USB实现固件升级

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