日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 揭秘STM32 OTA升級(jí):輕松實(shí)現(xiàn)固件遠(yuǎn)程無(wú)縫更新(二)

          揭秘STM32 OTA升級(jí):輕松實(shí)現(xiàn)固件遠(yuǎn)程無(wú)縫更新(二)

          作者:嵌入式芯視野 時(shí)間:2025-06-11 來(lái)源:今日頭條 收藏

          在嵌入式開發(fā)中,遠(yuǎn)程固件升級(jí)(, Over-The-Air)技術(shù)早已成為產(chǎn)品迭代和維護(hù)的關(guān)鍵能力。尤其是在 系列微控制器廣泛應(yīng)用的今天,構(gòu)建一個(gè)穩(wěn)定、通用、安全的 升級(jí)系統(tǒng),是每個(gè)工程師都繞不過(guò)去的一關(guān)。

          本文引用地址:http://yuyingmama.com.cn/article/202506/471235.htm

          本項(xiàng)目基于開源 工程,完整實(shí)現(xiàn)了以下內(nèi)容:

          • Bootloader 啟動(dòng)邏輯及升級(jí)流程

          • 固件打包機(jī)制(含安全校驗(yàn))

          • 上位機(jī)串口升級(jí)工具(YModem 協(xié)議)

          • SPI/QSPI Flash 分區(qū)管理

          • 多種異常處理機(jī)制:斷電保護(hù)、CRC 校驗(yàn)失敗、回滾機(jī)制等

          本文重點(diǎn)介紹該系統(tǒng)的升級(jí)流程細(xì)節(jié)、Bootloader 模塊結(jié)構(gòu)與關(guān)鍵代碼,以及如何使用配套打包和升級(jí)工具,實(shí)現(xiàn)一站式 OTA。

          一、升級(jí)流程詳解:Bootloader 主導(dǎo) OTA 的全流程

          1. 流程概述

          OTA 的標(biāo)準(zhǔn)流程如下圖所示:


          整個(gè)流程設(shè)計(jì)注重魯棒性與安全性,例如:

          • 使用 Magic Code 校驗(yàn)包頭,防止誤識(shí)別

          • 加入 CRC32 校驗(yàn),確保固件傳輸完整性

          • 支持中斷恢復(fù)和自動(dòng)回滾機(jī)制

          • Bootloader 和 APP 分區(qū)獨(dú)立,互不干擾

          2. 進(jìn)入升級(jí)模式的判定方式包括:

          • 指定 Flash 中某個(gè)標(biāo)志位

          • 外部引腳(如按鍵)觸發(fā)

          • 上電后延時(shí)判斷是否接收到上位機(jī)固件包頭

          • 上次升級(jí)失敗自動(dòng)回滾(故障回溯)

          固件檢測(cè)與處理機(jī)制

          這種靈活的判斷機(jī)制確保了在各種場(chǎng)景下都能正常觸發(fā)升級(jí),提升用戶體驗(yàn)與維護(hù)效率。


          二、Bootloader 結(jié)構(gòu)設(shè)計(jì)與關(guān)鍵模塊源碼說(shuō)明

           Bootloader 架構(gòu)分層

          整個(gè) Bootloader 系統(tǒng)按以下模塊劃分:

          模塊名稱

          功能說(shuō)明

          啟動(dòng)判定模塊

          檢查是否進(jìn)入 OTA 模式,或跳轉(zhuǎn)到 APP

          Flash 操作模塊

          擦除/寫入/讀取 SPI 或 QSPI Flash

          協(xié)議接收模塊

          通過(guò)串口接收 YModem 協(xié)議格式的固件數(shù)據(jù)

          固件解析模塊

          解包 .fpk 固件,提取版本號(hào)、長(zhǎng)度、CRC 等字段

          固件校驗(yàn)?zāi)K

          Magic Code 檢查 + CRC32 校驗(yàn)

          升級(jí)標(biāo)志模塊

          管理升級(jí)狀態(tài)和失敗回滾標(biāo)志

          安全跳轉(zhuǎn)模塊

          關(guān)閉中斷、設(shè)置棧頂?shù)刂泛筇D(zhuǎn)到 APP

           關(guān)鍵代碼片段展示

          啟動(dòng)判斷邏輯:

          void boot_entry(void) {    if (check_upgrade_flag() || button_pressed()) {
                 enter_upgrade_mode();
             } else {
                 jump_to_app();
             }
          }

          校驗(yàn)固件包頭:

          bool verify_firmware_header(firmware_header_t *hdr) {    if (hdr->magic != 0xDEADBEEF) return false;    if (!check_crc32(hdr)) return false;    return true;
          }

          跳轉(zhuǎn)到 APP:

          void jump_to_app(void) {    uint32_t app_addr = APP_START_ADDR;
             __disable_irq();
             __set_MSP(*(uint32_t*)app_addr);
             ((void (*)())(*(uint32_t*)(app_addr + 4)))();
          }

          通過(guò)上述模塊組合,可以保證 Bootloader 精簡(jiǎn)、高效,并具備 OTA 所需的所有關(guān)鍵能力。


          三、配套工具使用指南:打包器 & 固件上傳助手

          為實(shí)現(xiàn)無(wú)縫的 OTA 流程,我們提供了兩套實(shí)用工具,支持命令行或 GUI 使用:


           1. 固件打包工具(Firmware_Packager)

          該工具將普通 .bin 固件封裝為 .fpk 固件包,自動(dòng)生成校驗(yàn)字段,支持版本號(hào)管理。

          打包命令示例:

          Firmware_Packager.exe -i app.bin -o upgrade.fpk -v 1.0.3

          固件包頭結(jié)構(gòu)(16 字節(jié)):

          字段

          長(zhǎng)度

          含義說(shuō)明

          Magic Code

          4B

          固件合法標(biāo)志(0xDEADBEEF)

          Version

          4B

          固件版本號(hào),如 0x010003

          Length

          4B

          固件數(shù)據(jù)部分大小

          CRC32

          4B

          數(shù)據(jù)區(qū) CRC 校驗(yàn)值

          支持多種擴(kuò)展字段,如水印、簽名、時(shí)間戳等。


           2. 固件上傳工具(Firmware_Uploader)

          通過(guò)串口(支持 USB 轉(zhuǎn)串口)將 .fpk 固件上傳至設(shè)備,采用 YModem-1K 協(xié)議,兼容性強(qiáng)、效率高。

          上傳命令示例:

          Firmware_Uploader.exe -p COM4 -b 115200 -f upgrade.fpk

          ? 支持特性包括:

          • 自動(dòng)識(shí)別 Bootloader 是否響應(yīng)

          • 固件校驗(yàn)一致性提示

          • 斷點(diǎn)續(xù)傳機(jī)制(可選)

          • 支持串口速率 115200 / 230400 / 460800


           總結(jié): OTA 升級(jí)不再難,實(shí)現(xiàn)只需三步!

          本套 OTA 方案已實(shí)際運(yùn)行于多個(gè)商業(yè)項(xiàng)目,具有以下優(yōu)點(diǎn):

          •  結(jié)構(gòu)清晰:Boot 與 APP 完全解耦,穩(wěn)定性強(qiáng)

          •  安全可靠:支持 CRC 校驗(yàn)、水印校驗(yàn)、固件頭驗(yàn)證

          •  可擴(kuò)展性強(qiáng):支持 SPI/QSPI Flash,支持加密擴(kuò)展

          • ? 工具齊全:打包、傳輸一站式完成,極大提升效率

          開源網(wǎng)址:mOTA: 一款專為32位MCU開發(fā)的OTA組件




          關(guān)鍵詞: STM32 OTA

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉