一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

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

如何更簡單的給單片機(jī)更新固件?

UtFs_Zlgmcu7890 ? 來源:互聯(lián)網(wǎng) ? 作者:丁德輝 ? 2017-10-23 18:19 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

當(dāng)程序運(yùn)行時,按住指定的按鍵后按一下復(fù)位按鍵。就啟動了升級程序,此時將單片機(jī)的USB從機(jī)端口連接電腦。在電腦中可以發(fā)現(xiàn)一個U盤設(shè)備,如圖1和圖2所示。

1 U盤顯示

2 U盤文件

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

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

1.硬件基礎(chǔ)

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

2.編寫USB驅(qū)動程序

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

3.對存儲空間進(jìn)行修改

在步驟2中,我們已經(jīng)將FLASH的后半段用作U盤的存儲空間,在LPC54608中,片內(nèi)flash是512K,存儲起始地址是0x40000;結(jié)束地址是0x80000。根據(jù)FAT文件系統(tǒng)的存儲協(xié)議,存儲起始地址開始的前幾個扇區(qū)存放的是引導(dǎo)部分,F(xiàn)AT表項部分和根目錄部分。數(shù)據(jù)是從根目錄結(jié)束扇區(qū)的下一個扇區(qū)的開始存儲。

在本步驟中,對程序的改進(jìn)就是將數(shù)據(jù)扇區(qū)之前的幾個扇區(qū),放在RAM中,使0x40000地址開始存放的即為bin文件的數(shù)據(jù)??驁D如圖3所示。

3 存儲模型

4.對存儲內(nèi)容進(jìn)行修改

完成步驟3之后。每次接上USB線,電腦都要對u盤進(jìn)行格式化,因?yàn)镽AM區(qū)的數(shù)據(jù)為0,電腦需要從新格式化建立FAT文件系統(tǒng)并將存儲的相關(guān)信息寫到RAM中對應(yīng)的區(qū)域。在window10的電腦中,格式化之后電腦還會在U盤中增加幾個必要文件使我們寫入的bin文件數(shù)據(jù)并不是從0x40000開始,因此要進(jìn)行優(yōu)化。

在程序初始化的時候。根據(jù)FAT的協(xié)議填充RAM區(qū)域數(shù)據(jù)。包括引導(dǎo)扇區(qū),F(xiàn)AT表項和根目錄??梢栽谝龑?dǎo)扇區(qū)中優(yōu)化FAT表個數(shù)和根目錄大小來節(jié)省RAM空間。并在根目錄中放入一個大小為整個U盤大小的bin文件,之后在FAT表項中填充所有可用的簇,使USB線連接上之后,電腦端不需要再格式化并如圖1和圖2所示。

5.編寫bootloader

完成步驟4之后,大部分工作已經(jīng)完成。接下來就要編寫跳轉(zhuǎn)函數(shù)來實(shí)現(xiàn)向用戶程序的跳轉(zhuǎn)。在LPC54608中,我們以flash的前32K用作升級程序的bootloader區(qū)域,就是0x0~0x8000之間。32K之后用作用戶代碼區(qū)域。

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

6.增加按鍵判斷

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

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


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

原文標(biāo)題:如何更簡單的給單片機(jī)更新固件

文章出處:【微信號:Zlgmcu7890,微信公眾號:周立功單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    dlp3010更新固件失敗的原因?怎么解決?

    通過2.1.0版本GUI 3010EVM-LC 更新固件,第一次在update firmware界面執(zhí)行后GUI在 step2/3 卡主長時間沒有反應(yīng)。 掉電重啟后3010 狀態(tài)變成圖中左下角所示 再次通過update f
    發(fā)表于 02-27 08:41

    單片機(jī)Debug工具性能對比 單片機(jī)調(diào)試常用命令

    單片機(jī)(Microcontroller Unit, MCU)調(diào)試是嵌入式開發(fā)中的一個重要環(huán)節(jié),它幫助開發(fā)者發(fā)現(xiàn)和修復(fù)代碼中的錯誤,優(yōu)化程序性能。不同的單片機(jī)和開發(fā)環(huán)境可能使用不同的調(diào)試工具和命令
    的頭像 發(fā)表于 12-19 09:56 ?1409次閱讀

    AirPods如何進(jìn)行固件更新

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

    上位機(jī)如何實(shí)現(xiàn)發(fā)送參數(shù)給單片機(jī),單片機(jī)保存接收的參數(shù)重復(fù)運(yùn)行指定的功能

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

    單片機(jī)編程語言有哪些選擇

    單片機(jī)(Microcontroller Unit,MCU)編程是指為單片機(jī)編寫程序的過程,這些程序控制單片機(jī)的行為和功能。單片機(jī)廣泛應(yīng)用于嵌入式系統(tǒng),如家用電器、汽車電子、工業(yè)控制等領(lǐng)
    的頭像 發(fā)表于 11-01 14:13 ?2415次閱讀

    單片機(jī)怎么寫入程序

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

    使用bq2750x和EVM更新固件

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

    單片機(jī)的中斷機(jī)制

    單片機(jī)的中斷機(jī)制是一種重要的處理方式,它允許單片機(jī)在執(zhí)行主程序的過程中,能夠暫停當(dāng)前任務(wù),轉(zhuǎn)而處理外部或內(nèi)部緊急事件。這種機(jī)制極大地提高了系統(tǒng)的響應(yīng)速度和處理能力,使得單片機(jī)在各種應(yīng)用領(lǐng)域中得到廣泛應(yīng)用。以下是對
    的頭像 發(fā)表于 10-17 18:03 ?1969次閱讀

    MSP MCUs的安全現(xiàn)場固件更新

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

    便宜的單片機(jī)-英銳恩ENMCU系列OTP單片機(jī)

    景的多樣性: OTP單片機(jī)憑借其低成本和高安全性,在多個領(lǐng)域得到了廣泛應(yīng)用。例如,在消費(fèi)電子領(lǐng)域,OTP單片機(jī)常被用于觸控調(diào)光、電子玩具、小家電等產(chǎn)品中。 這些產(chǎn)品通常不需要頻繁更新固件
    發(fā)表于 09-26 10:55

    單片機(jī)方案開發(fā):如何電子產(chǎn)品單片機(jī)選型?

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

    單片機(jī)燒錄程序的基本步驟是什么

    單片機(jī)燒錄程序是單片機(jī)開發(fā)過程中非常重要的一步,它涉及到將編寫好的程序代碼通過一定的方式傳輸?shù)?b class='flag-5'>單片機(jī)內(nèi)部的存儲器中,使單片機(jī)能夠按照預(yù)定的邏輯執(zhí)行任務(wù)。 一、硬件準(zhǔn)備
    的頭像 發(fā)表于 09-02 09:47 ?2746次閱讀

    stm32和51單片機(jī)的區(qū)別是什么

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

    單片機(jī)為什么被認(rèn)為是一門簡單的技術(shù)?

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

    ESP8266-01如何更新固件?

    您好,我有 ESP8266-01,我需要通過 Arduino 更新固件......我有這個版本......esp_iot_sdk_v1.4.0_15_09_18.zip 可以任何鏈接重言同義嗎?
    發(fā)表于 07-22 07:33