最新免费av在线观看,亚洲综合一区成人在线,中文字幕精品无码一区二区三区,中文人妻av高清一区二区,中文字幕乱偷无码av先锋

解析:單片機 BootLoader 的發(fā)展進化全記錄

出處:網(wǎng)絡(luò)整理 發(fā)布于:2025-06-18 14:49:38

    在嵌入式系統(tǒng)領(lǐng)域,Bootloader 是一個至關(guān)重要的軟件程序,它通常存儲在芯片的非易失性存儲器(如閃存)中。其主要功能是在系統(tǒng)上電后,負責初始化系統(tǒng)硬件,并將操作系統(tǒng)或應(yīng)用程序加載到內(nèi)存中執(zhí)行。下面,我們將詳細探討 Bootloader 的工作流程、主要功能,以及其發(fā)展進化的歷程。

   Bootloader 的工作流程和主要功能


  1. 硬件初始化:Bootloader 啟動后,首先會對處理器、時鐘、內(nèi)存和外設(shè)等硬件資源進行初始化,確保系統(tǒng)處于合適的狀態(tài),為后續(xù)操作做好準備。
  2. 引導設(shè)備選擇:它需要檢測可用的引導設(shè)備,如閃存、外部存儲器或串口等,并從中選擇一個作為加載操作系統(tǒng)或應(yīng)用程序的來源。
  3. 加載操作系統(tǒng)或應(yīng)用程序:依據(jù)預定義的引導策略,Bootloader 從選定的引導設(shè)備中讀取操作系統(tǒng)鏡像或應(yīng)用程序,并將其加載到內(nèi)存中。
  4. 執(zhí)行加載的程序:程序加載到內(nèi)存后,Bootloader 會跳轉(zhuǎn)到該程序的入口點,啟動執(zhí)行。對于操作系統(tǒng),這意味著將控制權(quán)移交給操作系統(tǒng)內(nèi)核;對于應(yīng)用程序,則開始執(zhí)行其主函數(shù)。
  5. 錯誤處理和回滾:Bootloader 通常具備錯誤處理機制,在發(fā)生錯誤時執(zhí)行相應(yīng)操作,如跳轉(zhuǎn)到備用引導設(shè)備或恢復到出廠設(shè)置狀態(tài)。
  6. 升級支持:部分 Bootloader 還支持固件升級,允許通過特定接口或協(xié)議更新系統(tǒng)固件,無需物理訪問設(shè)備。

燒錄方式的更新迭代


  1. 古老的燒錄方式:20 世紀 80 年代,以 51 單片機為代表開始廣泛應(yīng)用于工業(yè)控制、家電等行業(yè)。起初,將可執(zhí)行程序?qū)懭雴纹瑱C內(nèi)部 ROM 并非易事,且成本較高,需要依賴專門的燒錄設(shè)備。受半導體技術(shù)與工藝限制,ROM 燒寫大多需要高壓,這種狀況一直持續(xù)到 2000 年左右。
  2. ISP 與 ICP 燒錄方式:隨著低壓電可擦寫 ROM 的成熟,單片機開始集成可通過數(shù)字電平直接讀寫的存儲介質(zhì),實現(xiàn)了在系統(tǒng)或在電路直接燒錄程序,即 ISP(In System Programming)或 ICP(In Circuit Programming)。從廣義上講,兩者區(qū)別不大,但嚴格來說,ISP 要求單片機駐留有專門程序與上位機通信,接收固件數(shù)據(jù)并燒錄到自身 ROM,需具備基本的系統(tǒng)電路;而 ICP 可將 MCU 視為可供外部讀寫的存儲電路,無需預置程序,也無需芯片處于可運行狀態(tài)。以 AT89S51 為代表的支持 ISP 或 ICP 的芯片,讓很多人擺脫了對燒錄器的依賴,降低了單片機入門門檻。


  3. 更方便的 ISP 燒錄方式
    • 串口 ISP:2005 年前后,STC 單片機憑借串口 ISP 功能受到廣泛關(guān)注。它進一步降低了單片機學習門檻,即使電腦并口逐漸減少,通過 USB - TTL 串口也能方便地進行燒錄。如今,包括 STM32 全系列在內(nèi)的很多單片機都支持串口 ISP,使其成為一種標配的程序燒錄手段。
    • 各種 USBISP:當固件體積較大時,串口 ISP 的速度成為短板。因此,一些單片機配有專門的 USBISP 器,如 AVR、C8051F、MSP430 等。然而,這些燒錄方式存在依賴專門上位機或器硬件、價格較高、時需附加額外操作等弊端。

Bootloader 的基本形態(tài)和功能


Bootloader 是一段存儲在 ROM 中的程序,主要實現(xiàn)以下 4 個功能:


  1. 通過某種途徑獲取要燒錄的固件數(shù)據(jù)。
  2. 將固件數(shù)據(jù)寫入到 ROM 的 APP 區(qū)中。
  3. 跳轉(zhuǎn)到 APP 區(qū)運行,引導燒錄進去的用戶程序啟動。
  4. 在整個過程中,提供必要且友好的人機交互界面。

Bootloader 的設(shè)計實例


  1. 帶 Shell 命令行的串口 BL:用戶通過超級終端、SecureCRT 或 Xshell 等串口終端輸入命令 “program”,BL 接收到命令后等待接收固件文件數(shù)據(jù),串口終端通過文件數(shù)據(jù)傳輸協(xié)議將固件數(shù)據(jù)傳給 BL,BL 將數(shù)據(jù)寫入 ROM 的 APP 區(qū),然后跳轉(zhuǎn)到 APP 區(qū)運行程序。
  2. 插 SD 卡即燒錄的 BL:將待燒錄的固件拷貝到 SD 卡中,插入卡槽,BL 檢測到 SD 卡插入后,搜索卡中的 BIN 文件,將其數(shù)據(jù)讀出寫入 ROM 的 APP 區(qū),跳轉(zhuǎn)到 APP 區(qū)運行程序。

BL 實現(xiàn)的要點


  1. 芯片體系架構(gòu)要支持:單片機程序的開頭是中斷向量表,包含程序棧頂?shù)刂泛?Reset 程序入口。從 BL 向 APP 跳轉(zhuǎn)時,APP 程序必須有自己的中斷向量表,且單片機體系架構(gòu)要允許中斷向量表重定向。傳統(tǒng) 51 單片機的中斷向量表只能放在 ROM 開頭,不支持 BL;而 STC 的 51 單片機通過硬件架構(gòu)改進,實現(xiàn)了 BL 功能。此外,AVR 單片機通過配置熔絲位可控制復位入口地址以及 BOOT 區(qū)的大小和開始地址;STM32 則在 NVIC 控制器中提供了中斷向量表偏移量的相關(guān)配置,程序可放置在 ROM 的任何位置運行。
  2. ROM 要支持 IAP:在 BL 獲取到固件數(shù)據(jù)后,需要將其寫入 ROM 的 APP 區(qū),因此單片機需支持 IAP(In Application Programming)操作,即在程序運行過程中對自身 ROM 進行擦除和編程操作。支持串口 ISP 的單片機通常都支持 IAP 功能。
  3. APP 程序的配套修改:為使 BL 能順利引導 APP 程序運行,APP 程序開發(fā)時需進行相應(yīng)修改,主要包括修改中斷向量表的開始地址和對中斷控制器的配置。以 STM32 為例,使用不同開發(fā)環(huán)境時,需對相關(guān)文件進行修改,并配置 NVIC 的中斷向量表偏移量。
  4. BL 中的跳轉(zhuǎn)代碼:跳轉(zhuǎn)代碼是 BL 的關(guān)鍵,直接影響 APP 程序能否正常運行。以 STM32 為例,其 jump_app 函數(shù)代碼用于實現(xiàn)從 BL 到 APP 的跳轉(zhuǎn)。

Bootloader 的多樣化應(yīng)用


  1. BL 的實現(xiàn)與延伸(串口傳輸固件):在串口傳輸固件的過程中,會涉及串口通信協(xié)議、固件數(shù)據(jù)暫存和校驗等問題。串口通信協(xié)議和文件傳輸實現(xiàn)的內(nèi)容較為繁雜,可在相關(guān)章節(jié)深入學習。為保證固件數(shù)據(jù)的正確性,通常會對數(shù)據(jù)進行整體校驗,并在文件中加入校驗碼。雖然可以不暫存固件直接實時燒寫,但建議在成本允許的情況下對固件進行整體校驗,并適當擴大 ROM 容量,以應(yīng)對 APP 區(qū)固件損壞的情況。
  2. 10 米之內(nèi)隔空燒錄 OTA(On the Air):“隔空燒錄” 源于一個 IoT 項目,用于解決空調(diào)外機硬件升級嵌入式程序的困難。通過改進的 AVRUBD 通信協(xié)議,結(jié)合手機版上位機軟件,實現(xiàn)了用手機進行 “隔空燒錄”。
  3. BL 的分散燒錄:在復雜系統(tǒng)架構(gòu)(如主 MCU + CPLD + 通信協(xié)處理器 + 采集協(xié)處理器)中,為解決批量生產(chǎn)時燒錄程序繁瑣的問題,引入了 “BL 的分散燒錄” 機制。將所有固件拼裝成一個大固件,預先燒錄到外擴 ROM 中,主 MCU 燒錄好 BL 后,在 PCBA 首次上電時,BL 從外擴 ROM 中讀取大固件,并分離出各個小固件,分別燒錄到各個部件中。

不走尋常路的 BL


  1. Bootpatcher:一般情況下,Bootloader 在 ROM 中的位置位于 APP 區(qū)前面。但在某些特殊情況下,若 APP 必須放在 0X08000000 位置,可將 BL 放在 APP 后面,稱為 Bootpatcher。APP 運行時,可跳轉(zhuǎn)到 Bootpatcher 接收固件文件,校驗后寫入 APP 區(qū),再跳轉(zhuǎn)到 APP 區(qū)或重啟。不過,這種做法有風險,APP 區(qū)燒錄失敗可能導致產(chǎn)品變磚。
  2. APP 反燒 BL:當 BL 需要升級時,除了使用 JLINK,還可在 APP 程序中實現(xiàn)接收固件文件、暫存校驗并燒錄到 BL 區(qū)。這種逆向思維的方法雖有一定風險,但通常可行。
關(guān)鍵詞:單片機

版權(quán)與免責聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://udpf.com.cn,違反者本網(wǎng)將追究相關(guān)法律責任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔此類作品侵權(quán)行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權(quán)等法律責任。

如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

我司代理分銷MOS管,單片機,電源IC,驅(qū)動IC,PD協(xié)議IC等,專業(yè)提供各種電子元器件!
廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時間周一至周五
9:00-17:30

關(guān)注官方微信號,
第一時間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動力!意見一經(jīng)采納,將有感恩紅包奉上哦!