0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

單片機通過USB升級固件的方法

技術讓夢想更偉大 ? 來源:strongerHuang ? 2024-01-11 09:37 ? 次閱讀

作者 |strongerHuang 微信公眾號 |strongerHuang

單片機升級固件的方法有很多中,比如:ISP(在系統(tǒng)編程)、ICP(在電路編程)、IAP(在應用編程)等。

今天結合瑞薩單片機(RA4M3)、e2 studio開發(fā)環(huán)境給大家講述的是單片機通過USB(U盤)升級固件的方法。

RA4M3通過USB實現(xiàn)固件升級

01固件更新應用案例

(1)修復程序錯誤

(2)功能升級

02首先必須規(guī)劃好Bootloader和Application的空間分配。如下圖所示,案例使用R7FA4M3AF3CFB,有1M的ROM。Bootloader從0x000000開始存儲,結束地址為0x1FFFF,所占空間大小為0x20000;Application從0x20000開始存儲,結束地址為0x000FFFFF,所占空間大小為0xE0000。

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

03創(chuàng)建一個Bootloader工程,添加USB_HMSC、Flash、RTC和CRC等外設。其中USB添加主機大容量存儲類(HMSC)驅(qū)動程序,它實現(xiàn)了USB HMSC接口,可從USB大容量存儲設備中讀取、寫入和擦除數(shù)據(jù)。

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

04使用RTC設置系統(tǒng)時間。

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

05初始化flash驅(qū)動,然后在data flash中讀取設備設置的log。

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

06初始化USB驅(qū)動,等待USB設備插入,如果檢測到有USB設備插入,將會根據(jù)文件"0:Put Image Here/update.txt"中的內(nèi)容,找到相應的***.srec文件,并打開文件讀寫數(shù)據(jù)(將文件內(nèi)容解析后燒寫到Application對應的地址空間),讀寫完成后將文件名改為"0:Put Image Here/loaded.txt",表示已完成數(shù)據(jù)讀寫。

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

07根據(jù)信息類型擦除data flash中的數(shù)據(jù),擦除成功后寫入新的設備設置參數(shù)。

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

08在屬性→設置中輸出srec格式文件作為Bootloader燒錄文件。

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

09將Bootloader燒錄到EK-RA4M3開發(fā)板上。首先,利用J-Flash Lite將RA4M3整片擦除,然后將ra4m3_hmsc_noRTOS.srec燒寫到芯片中,由于此時app部分內(nèi)容為空,紅色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文件,F(xiàn)LASH_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對應的內(nèi)容。

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盤插入,開發(fā)板上電,當前運行的代碼是Bootloader,由于此時尚未執(zhí)行Application升級,因此LED2常亮,按下復位鍵,使得Bootloader重新運行,執(zhí)行Application代碼升級,可以看到LED燈按照RA4M3_BLINKY程序閃爍。將U盤插回電腦查看“Put Image Here”文件夾,可以看到update.txt變?yōu)閘oaded.txt,程序升級成功。

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

看到這里,你掌握了嗎?

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6026

    文章

    44451

    瀏覽量

    630774
  • usb
    usb
    +關注

    關注

    60

    文章

    7845

    瀏覽量

    263279
  • 固件
    +關注

    關注

    9

    文章

    548

    瀏覽量

    22851
  • 開發(fā)環(huán)境

    關注

    1

    文章

    215

    瀏覽量

    16548

原文標題:單片機通過USB(U盤)升級固件的方法

文章出處:【微信號:技術讓夢想更偉大,微信公眾號:技術讓夢想更偉大】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    GD32單片機STM32遠程下載手機程序升級固件下載局域網(wǎng)網(wǎng)頁升級工具

    GD32、STM32單片機,是我們最常見的一種MCU。通常我們在使用STM32單片機都會遇到程序在線升級下載的問題。使用該方法可以完成手機網(wǎng)頁在線程序
    的頭像 發(fā)表于 11-09 12:31 ?1855次閱讀
    GD32<b class='flag-5'>單片機</b>STM32遠程下載手機程序<b class='flag-5'>升級</b><b class='flag-5'>固件</b>下載局域網(wǎng)網(wǎng)頁<b class='flag-5'>升級</b>工具

    51單片機擴展USB接口的方法

    51單片機擴展USB接口的方法摘要:討論了在P89C51RD 單片機上擴展USB 接口的方法.
    發(fā)表于 11-03 09:39

    51單片機通過模擬USB通信的實現(xiàn)方法

    基于高速51單片機的模擬USB接口設計作者:廖頌文摘要:參照AVRUSB技術給出了51單片機通過模擬USB通信的實現(xiàn)
    發(fā)表于 08-06 07:48

    基于GPRS模組的單片機固件在線升級方法

    一、前言最近有朋友讓我?guī)兔﹂_發(fā)基于GPRS模組的單片機固件在線升級,這樣的遠程升級就兩種方式: 1.自己定義協(xié)議,服務器端進行bin文件拆包,一包包下發(fā)。優(yōu)點:可以每包一校驗還可以斷點
    發(fā)表于 01-20 07:17

    GD32單片機STM32遠程下載手機程序升級固件下載局域網(wǎng)網(wǎng)頁升級工具

    完成STM32單片機升級。 自動編寫B(tài)ootLoader完成固件升級。如果需要遠程升級功能,需要BootLoader完成聯(lián)網(wǎng)的功能,需要的
    發(fā)表于 11-10 15:03

    51單片機擴展USB接口的方法

    51單片機擴展USB接口的方法 討論了在P89C51RD 單片機上擴展USB 接口的方法. 介
    發(fā)表于 02-21 09:02 ?272次下載

    基于AVR單片機USB接口設計

    以AVR單片機ATmega8和USB接口器件PDIUSBD12為核心,基于標準的USB1.1協(xié)議,設計一種通用USB接口模塊,以滿足嵌入式系統(tǒng)中對U
    發(fā)表于 12-16 15:30 ?141次下載

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

    為了升級便攜式設備的固件,開發(fā)一種基于USB接口的固件升級程序,使得操作方便,快捷。介紹固件文件
    發(fā)表于 12-29 17:45 ?69次下載

    如何更簡單的給單片機更新固件

    單片機已經(jīng)焊接到電路板上時,如何更簡單更便捷的為單片機升級固件便成了一件值得深思的問題。本文介紹了一種更簡單更便捷的固件
    的頭像 發(fā)表于 10-23 18:19 ?1.7w次閱讀
    如何更簡單的給<b class='flag-5'>單片機</b>更新<b class='flag-5'>固件</b>?

    STM32單片機網(wǎng)絡遠程升級固件的源碼下載

    STM32單片機網(wǎng)絡遠程升級固件的源碼下載
    發(fā)表于 04-17 09:27 ?70次下載

    單片機升級

    我了解的單片機升級有兩種:一種是通過單片機的程序走得,自動升級。需要單片機當前軟件支持的第二種是
    發(fā)表于 11-15 11:51 ?5次下載
    <b class='flag-5'>單片機</b><b class='flag-5'>升級</b>

    8051系列單片機固件升級iap

    8051系列單片機固件升級iap聲明:#define UPGRADE_FLAG 0xaa //升級標志位#define APP_START_ADDR 0x0000 //bootload
    發(fā)表于 11-23 16:51 ?18次下載
    8051系列<b class='flag-5'>單片機</b><b class='flag-5'>固件</b><b class='flag-5'>升級</b>iap

    基于單片機的智能儀表擴展USB 接口的方法

    電子發(fā)燒友網(wǎng)站提供《基于單片機的智能儀表擴展USB 接口的方法.pdf》資料免費下載
    發(fā)表于 10-19 11:01 ?5次下載
    基于<b class='flag-5'>單片機</b>的智能儀表擴展<b class='flag-5'>USB</b> 接口的<b class='flag-5'>方法</b>

    STM32/GD32系列單片機固件服務器使用手冊

    GD32、STM32單片機,是我們最常見的一種MCU。通常我們在使用STM32單片機都會遇到程序在線升級下載的問題。該方法可以通過
    發(fā)表于 11-09 16:36 ?5次下載

    STM32單片機實現(xiàn)固件在線升級(IAP)

    1,固件升級方案綜述單片機固件升級方式有很多種。1、ICP:簡單說就是在單片機開發(fā)時使用燒錄器
    的頭像 發(fā)表于 12-16 08:00 ?4326次閱讀
    STM32<b class='flag-5'>單片機</b>實現(xiàn)<b class='flag-5'>固件</b>在線<b class='flag-5'>升級</b>(IAP)