精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

一款專為32位MCU開發的OTA組件

STM32嵌入式開發 ? 來源:STM32嵌入式開發 ? 2023-02-09 10:40 ? 次閱讀

mOTA簡介

mOTA 是一款專為 32 位 MCU 開發的 OTA 組件,組件包含了 bootloader 、固件打包器 (Firmware_Packager) 、固件發送器 三部分。

固件更新流程:

f605f798-a796-11ed-bfe3-dac502259ad0.png ????源碼地址:

https://gitee.com/DinoHaw/mOTA 作者:DinoHaw

mOTA 中的 m 可意為 mini 、 micro 、 MCU ( Microcontroller Unit ),而 OTA ( Over-the-Air Technology ),即空中下載技術,根據維基百科的定義, OTA 是一種為設備分發新軟件、配置,乃至更新加密密鑰(為例如移動電話、數字視頻轉換盒或安全語音通信設備——加密的雙向無線電)的方法。 OTA 的一項重要特征是,一個中心位置可以向所有用戶發送更新,其不能拒絕、破壞或改變該更新,并且該更新為立即應用到頻道上的每個人。用戶有可能“拒絕” OTA 更新,但頻道管理者也可以將其踢出頻道。由此可得出 OTA 技術幾個主要的特性:

一個中心可向多個設備分發更新資料(固件);

更新資料一旦發送便不可被更改;

設備可以拒絕更新;

中心可以排除指定的設備,使其不會接收到更新資料。

mOTA功能

該組件實現了以下功能:

固件包完整性檢查:自動檢測固件 CRC 值,保證固件數據的可靠性。

固件加密:支持 AES256 加密算法,提高固件的安全性。

APP 完整性檢查:支持 APP 運行前進行完整性檢查,以確認運行的固件無數據缺陷。

斷電保護:當固件更新過程中(含下載、解密、更新等過程),任何一個環節斷電,設備再次上電時,依然能確保有可用的固件。(需配置為至少雙分區)

固件水印檢查:可檢測固件包是否攜帶了特殊的水印,確認非第三方或非匹配的固件包。

固件自動更新:當 download 或 factory 分區有可用的固件,且 APP 分區為空或 APP 分區不是最新版本的固件時,可配置為自動開始更新。

恢復出廠設置:factory 分區存放穩定版的固件,當設備需要恢復出廠設置時,該固件會被更新至 APP 分區。

無須 deinit :我們知道,固件更新完畢后從 bootloader 跳轉至 APP 前需要對所用的外設進行 deinit ,恢復至上電時的初始狀態。本組件的 bootloader 包含了下載器的功能,當使用復雜的外設收取固件包時, deinit 也將變得復雜,甚至很難排除對 APP 的影響。為此,本組件采用了再入 bootloader 的方式,給 APP 提供一個相當于剛上電的外設環境,免去了 deinit 的代碼。

功能可裁剪:本組件通過功能裁剪可實現單分區、雙分區、三分區的方案切換、是否配置解密組件、是否自動更新 APP 、是否檢查 APP 完整性、 是否使用 SPI Flash (待實現) 。

固件存放至 SPI flash :本組件可通過 user_config.h 配置 download 分區和 factory 分區的所在位置為片內 flash 或 SPI flash ,使用了 SFUD (Serial Flash Universal Driver) 作為 SPI flash 的底層驅動庫。若使用的 SPI flash 支持 SFDP (Serial Flash Discovable Parameters) ,則可在不修改任何源代碼的情況下更換其它品牌型號的 SPI flash 。若不支持 SFDP ,SFUD 中已有對應 SPI flash 參數表的話,也可做到在不修改任何源代碼的情況下更換其它品牌型號的 SPI flash 。

mOTA軟件架構

f619d718-a796-11ed-bfe3-dac502259ad0.png

硬件層描述的是運算器件和邏輯器件,如CPUADCTIMER、各類IC等,是所有軟件組件的硬件基礎,是軟件邏輯的最終底層實現。

硬件抽象層是位于驅動與硬件電路之間的接口層,將硬件抽象化。它隱藏了特定平臺的硬件接口細節,為驅動層提供抽象化的硬件接口,使其具有硬件無關性。

驅動層通過調用硬件抽象層的開放接口,實現一定的邏輯功能后封裝,提供給上層軟件調用。

數據傳輸層負責收發數據,對外開放的是數據發送與接收相關的接口,屏蔽了通訊接口的邏輯代碼,使其易于修改為其他類型的通訊接口。

協議析構層將調用數據傳輸層的數據收發接口進行封包發送與收包解析,通過實現用戶的自定義協議,完成對數據的構造和解析。

應用層負責業務邏輯代碼的實現,通過調用其他層封裝的接口,完成頂層邏輯功能。

f6430c50-a796-11ed-bfe3-dac502259ad0.png

審核編輯:湯梓紅

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

    關注

    146

    文章

    17019

    瀏覽量

    350374
  • OTA
    OTA
    +關注

    關注

    7

    文章

    568

    瀏覽量

    35152
  • 軟件架構
    +關注

    關注

    0

    文章

    64

    瀏覽量

    10278
  • 組件
    +關注

    關注

    1

    文章

    505

    瀏覽量

    17806
  • mota
    +關注

    關注

    0

    文章

    3

    瀏覽量

    2294

原文標題:一款專為32位MCU開發的OTA組件

文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    分享一款不錯的基于STM32W108的32無線MCU RF解決方案

    分享一款不錯的基于STM32W108的32無線MCU RF解決方案
    發表于 05-21 06:07

    怎樣去理解和掌握一款MCU

    任何一款MCU,其基本原理和功能都是大同小異,所不同的只是其外圍功能模塊的配置及數量、指令系統等。對于指令系統,雖然形式上看似千差萬別,但實際上只是符號的不同,其所代表的含義、所要完成的功能和尋址
    發表于 11-01 07:02

    怎樣挑選一款MCU平臺進行嵌入式系統開發

    如今,嵌入式系統開發往往基于平臺模式。MCU平臺包括MCU及其相關器件(外延器件、配套器件等),集成開發環境(開發板、
    發表于 11-03 08:42

    開發一款射頻SOC藍牙芯片

    芯片產品從定義到面向市場,大約3~6個月時間。然后以藍牙為代表的射頻技術,與MCU微控制器的設計制造應用流程有諸多不同:開發一款射頻SOC藍牙芯片的周期遠遠長于開發
    發表于 11-10 06:49

    快速掌握一款MCU的方法

    任何一款MCU,其基本原理和功能都是大同小異,所不同的只是其外圍功能模塊的配置及數量、指令系統等。對于指令系統,雖然形式上看似千差萬別,但實際上只是符號的不同,其所代表的含義、所要完成的功能和尋址
    發表于 02-08 06:48

    快速應用一款MCU的方法有哪些

    在工作中,有時往往會因為項目進度要求需要用一款自己以前未曾使用過的MCU來進行產品的開發,而且進度要求很急,為此,我結合自己使用多款MCU的經驗,談
    發表于 02-08 06:05

    新版火狐瀏覽器:一款專為VR開發的網絡瀏覽器

    今年早些時候,火狐瀏覽器Firefox的開發者Mozilla宣布,他們正在開發一款新版本的火狐瀏覽器,這款瀏覽器專為VR和AR頭戴設備設計。現在該公司宣布他們想法已經實現,Firef
    發表于 10-01 16:30 ?3627次閱讀

    如何學習一款新型的MCU

    任何一款MCU,其基本原理和功能都是大同小異,所不同的只是其外圍功能模塊的配置及數量、指令系統等。對于指令系統,雖然形式上看似千差萬別,但實際上只是符號的不同,其所代表的含義、所要完成的功能和尋址
    發表于 10-26 09:06 ?9次下載
    如何學習<b class='flag-5'>一款</b>新型的<b class='flag-5'>MCU</b>

    如何快速掌握一款新的MCU?

    任何一款MCU,其基本原理和功能都是大同小異,所不同的只是其外圍功能模塊的配置及數量、指令系統等。對于指令系統,雖然形式上看似千差萬別,但實際上只是符號的不同,其所代表的含義、所要完成的功能和尋址
    發表于 12-05 09:51 ?10次下載
    如何快速掌握<b class='flag-5'>一款</b>新的<b class='flag-5'>MCU</b>?

    如何實現MCU開發OTA升級

    本文以依托 GC211 和秉火開發板,講述如何實現MCU開發OTA升級。 用戶如果將開發了的產品發布上線銷售,后期需要更新固件和程序,就需
    的頭像 發表于 10-28 09:31 ?3995次閱讀

    推薦一款實用的32MCU-OTA組件

    mOTA 是一款專為 32 MCU 開發OTA 組件
    的頭像 發表于 12-22 11:00 ?990次閱讀

    針對單片機開發的輕量級OTA組件

    今天為大家分享一款開源的,專為單片機開發的輕量級 OTA 組件:mOTA。
    的頭像 發表于 12-26 09:36 ?1360次閱讀

    一款專為32MCU開發OTA組件-mOTA

    今天為大家分享一款開源的,專為單片機開發的輕量級 OTA 組件,挺有參考和學習意義的。
    的頭像 發表于 04-04 09:18 ?980次閱讀

    介紹一款帶12AD的1.5K OTP型MCU—PMS121

    PMS121是一款帶12AD的1.5K OTP型MCU,主要功能和PMS171B基本完全致,差別就在于PMS171B的規格是8ADC,
    的頭像 發表于 12-28 14:52 ?1332次閱讀

    介紹一款集成5通道有效精度18的?Δ ADC的8MCU

    HS23P6622L /HS23P6625L 是一款集成了5 通道有效精度18 的?Δ ADC 的8 MCU,內置了可配置的LDO。MCU
    的頭像 發表于 03-11 15:06 ?708次閱讀
    介紹<b class='flag-5'>一款</b>集成5通道有效精度18<b class='flag-5'>位</b>的?Δ ADC的8<b class='flag-5'>位</b><b class='flag-5'>MCU</b>