吴忠躺衫网络科技有限公司

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

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

3天內不再提示

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

UtFs_Zlgmcu7890 ? 來源:互聯網 ? 作者:丁德輝 ? 2017-10-23 18:19 ? 次閱讀

單片機已經焊接到電路板上時,如何更簡單更便捷的為單片機升級固件便成了一件值得深思的問題。縱觀市面上現有的大多數升級方式,不僅需要硬件支持,還需要專用的燒寫工具或軟件來升級固件,升級過程較為復雜。本文介紹了一種更簡單更便捷的固件升級方式,不需要任何專用工具,只是簡單的一個刪除粘貼操作,便可實現固件更新

當程序運行時,按住指定的按鍵后按一下復位按鍵。就啟動了升級程序,此時將單片機的USB從機端口連接電腦。在電腦中可以發現一個U盤設備,如圖1和圖2所示。

1 U盤顯示

2 U盤文件

將原文件刪除,然后將最新固件的bin文件復制到此U盤中,此時U盤中只有用戶用于升級的bin文件。然后拔下USB線,復位重啟,便可運行最新固件。

以上就是詳細的升級步驟,相比其他方法更便捷也更簡單。接下來以NXP公司LPC54608單片機為例來介紹這種升級方法的制作流程。

1.硬件基礎

此升級方法的制作至少需要單片機有一個硬件的USB從機。和足夠的flash用來存放一段bootloade的代碼。

2.編寫USB驅動程序

首先要寫好USB驅動程序,將片內FLASH的前半段用作代碼空間,后半段用作存儲空間。使電腦能將其識別為一個U盤,并能夠進行讀寫操作。USB驅動的編寫可參考官方例程。

3.對存儲空間進行修改

在步驟2中,我們已經將FLASH的后半段用作U盤的存儲空間,在LPC54608中,片內flash是512K,存儲起始地址是0x40000;結束地址是0x80000。根據FAT文件系統的存儲協議,存儲起始地址開始的前幾個扇區存放的是引導部分,FAT表項部分和根目錄部分。數據是從根目錄結束扇區的下一個扇區的開始存儲。

在本步驟中,對程序的改進就是將數據扇區之前的幾個扇區,放在RAM中,使0x40000地址開始存放的即為bin文件的數據。框圖如圖3所示。

3 存儲模型

4.對存儲內容進行修改

完成步驟3之后。每次接上USB線,電腦都要對u盤進行格式化,因為RAM區的數據為0,電腦需要從新格式化建立FAT文件系統并將存儲的相關信息寫到RAM中對應的區域。在window10的電腦中,格式化之后電腦還會在U盤中增加幾個必要文件使我們寫入的bin文件數據并不是從0x40000開始,因此要進行優化。

在程序初始化的時候。根據FAT的協議填充RAM區域數據。包括引導扇區,FAT表項和根目錄。可以在引導扇區中優化FAT表個數和根目錄大小來節省RAM空間。并在根目錄中放入一個大小為整個U盤大小的bin文件,之后在FAT表項中填充所有可用的簇,使USB線連接上之后,電腦端不需要再格式化并如圖1和圖2所示。

5.編寫bootloader

完成步驟4之后,大部分工作已經完成。接下來就要編寫跳轉函數來實現向用戶程序的跳轉。在LPC54608中,我們以flash的前32K用作升級程序的bootloader區域,就是0x0~0x8000之間。32K之后用作用戶代碼區域。

對于我們制作的U盤存儲空間來說,0x8000處開始存放的就是用戶bin文件。因此,我們只要在更新完固件后跳轉到0x8000處執行程序就行了。跳轉代碼要包括SP指針的重新賦值,中斷向量表的重映射。

6.增加按鍵判斷

程序在上電之后,從0x0地址處取址,此處運行的是bootloader程序,程序在開始的時候判斷按鍵是否按下,如果按下,就進入bootloader程序,如果沒有按下,就跳轉到用戶代碼。

至此,整個升級方法的時間就完成了!現在開始體驗便捷的升級方式吧。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴

原文標題:如何更簡單的給單片機更新固件

文章出處:【微信號:Zlgmcu7890,微信公眾號:周立功單片機】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    AirPods如何進行固件更新

    AirPods的固件更新通常是通過與iPhone、iPad或Mac等蘋果設備連接時自動進行的。以下是更新AirPods固件的介紹: 一、準備工作 確保設備連接 : 將AirPods放入
    的頭像 發表于 12-05 14:59 ?613次閱讀

    上位如何實現發送參數給單片機單片機保存接收的參數重復運行指定的功能

    ,并且能夠重復以接收到的參數執行指定的功能,知道上位發送新的參數進來,如果一直不更新且斷開上位連接,那么單片機就一直以上一次接收的參數運行指定的功能。 3.假設需要按順序運行多個功
    發表于 12-04 08:19

    單片機怎么寫入程序

    單片機(Microcontroller Unit,MCU)是一種集成電路芯片,它將計算機的CPU、存儲器、輸入/輸出接口等功能集成在一個芯片上。單片機廣泛應用于嵌入式系統和物聯網設備中。編寫單片機
    的頭像 發表于 10-21 11:21 ?926次閱讀

    使用bq2750x和EVM更新固件

    電子發燒友網站提供《使用bq2750x和EVM更新固件.pdf》資料免費下載
    發表于 10-18 11:41 ?0次下載
    使用bq2750x和EVM<b class='flag-5'>更新</b><b class='flag-5'>固件</b>

    單片機的中斷機制

    單片機的中斷機制是一種重要的處理方式,它允許單片機在執行主程序的過程中,能夠暫停當前任務,轉而處理外部或內部緊急事件。這種機制極大地提高了系統的響應速度和處理能力,使得單片機在各種應用領域中得到廣泛應用。以下是對
    的頭像 發表于 10-17 18:03 ?965次閱讀

    MSP MCUs的安全現場固件更新

    電子發燒友網站提供《MSP MCUs的安全現場固件更新.pdf》資料免費下載
    發表于 10-09 09:21 ?0次下載
    MSP MCUs的安全現場<b class='flag-5'>固件</b><b class='flag-5'>更新</b>

    單片機方案開發:如何電子產品單片機選型?

    在給電子項目做IC方案開發時,總是需要考慮到許多關鍵因素。在本文中,對于即將開發的電子產品做好單片機選型。英銳恩單片機開發工程師將從以下幾點進行介紹。 一、選擇制造商: 許多生產單片機
    發表于 09-25 10:56

    單片機燒錄程序的基本步驟是什么

    單片機燒錄程序是單片機開發過程中非常重要的一步,它涉及到將編寫好的程序代碼通過一定的方式傳輸到單片機內部的存儲器中,使單片機能夠按照預定的邏輯執行任務。 一、硬件準備
    的頭像 發表于 09-02 09:47 ?1436次閱讀

    stm32和51單片機的區別是什么

    。 性能差異: STM32具有更高的主頻和更大的內存空間,可以處理復雜的任務和算法。 51單片機的主頻和內存空間相對較小,適用于簡單的控制和數據處理任務。 外設差異: STM32具有
    的頭像 發表于 09-02 09:33 ?914次閱讀

    單片機為什么被認為是一門簡單的技術?

    單片機(Microcontroller Unit, MCU)技術被廣泛認為“簡單”可能源于幾個方面的誤解或相對性考慮,但實際上,單片機技術的復雜性和應用廣度遠超過“簡單”一詞所能涵蓋的
    的頭像 發表于 08-21 09:15 ?374次閱讀
    <b class='flag-5'>單片機</b>為什么被認為是一門<b class='flag-5'>簡單</b>的技術?

    UCGUI單片機源碼

    UCGUI單片機源碼
    發表于 07-04 17:11 ?1次下載

    如何系統、科學地自學單片機

    很多初學者都會面臨這個問題,我想學習單片機、我也想學好單片機、我也想系統地學習單片機,但是單片機涉及到的學科多且雜根本不是三天兩天就能學完的,很多人都逃脫不了從入門到放棄的怪圈?那么我
    的頭像 發表于 03-28 08:03 ?1193次閱讀
    如何系統、科學地自學<b class='flag-5'>單片機</b>?

    單片機抗干擾措施有哪些?

    電磁干擾(EMI)問題日益成為影響單片機穩定性與可靠性的主要障礙。因此,探討和實施有效的抗干擾措施對于提高單片機系統的性能至關重要。下面為大家簡單介紹一種單片機抗干擾措施
    的頭像 發表于 03-15 16:36 ?2910次閱讀
    <b class='flag-5'>單片機</b>抗干擾措施有哪些?

    fpga和單片機的區別和聯系 fpga和cpu區別

    。FPGA偏向于硬件電路,其結構是查找表結構,其程序不需要過多考慮芯片的結構,而主要關注時序問題。相比之下,單片機偏于軟件方向,它是一個微控制器,通過加載模塊軟件來實現某種功能。單片機
    的頭像 發表于 03-14 17:33 ?1236次閱讀

    單片機的BootLoader高階玩法

    經過串口傳輸最終由單片機接收到的固件數據是可能出現差錯的,而有錯誤的固件冒然直接寫入到APP區,是一定運行不起來的。
    發表于 03-08 13:58 ?790次閱讀
    <b class='flag-5'>單片機</b>的BootLoader高階玩法
    百家乐终端下载| 百家乐官网必胜课| 威尼斯人娱乐备用622| 首席百家乐官网的玩法技巧和规则 | 百家乐娱乐平台代理佣金| 百家乐官网心术| 尊龙娱乐开户| 海王星百家乐的玩法技巧和规则| 五张百家乐官网的玩法技巧和规则 | 青鹏棋牌官网下载| 百家乐桌现货| 七胜百家乐官网娱乐场| 百家乐免费试玩| 尊龙百家乐娱乐城| 百家乐看牌技巧| 百家乐官网投注哪个信誉好| 娱乐城开户送| 新彩百家乐的玩法技巧和规则| 大世界百家乐官网的玩法技巧和规则| 百家乐官网扑克玩法| 大发888完整客户端| 百家乐强对弱的对打法| 太阳百家乐官网网址| 百家乐技术方式| 赌场百家乐官网攻略| 皇冠足球赔| 大发888亚洲游戏咋玩| 百家乐散台| 澳门百家乐官网群代理| 澳门百家乐官网哪家信誉最好 | 德州百家乐官网扑克桌| 百家乐官网游戏网站| 通许县| 德州扑克辅助软件| 广发百家乐的玩法技巧和规则 | 百家乐官网赌博分析网| 百家乐官网有技巧么| 爱拼娱乐城| 大发888娱乐日博备用| 百佬汇百家乐的玩法技巧和规则| 伟易博百家乐现金网|