韌體公升級 DFU OTA

2021-10-14 05:34:40 字數 1991 閱讀 6871

· dfu = device firmware update (裝置韌體更新)· ota = over the air (空中公升級)

(wikipedia)用於智慧型硬體的公升級,包括軟體更新、韌體更新和裝置管理等功能。起初,韌體更新需要到裝置廠商指服務中心進行。接收更新的另一種方法是將裝置連入電腦端進行公升級。但這兩種方法的缺點是很不方便。因此,現在很多的移動裝置製造商和運營商已經採納fota技術為裝置進行更新。如果移動裝置具有fota功能,移動裝置製造商和運營商可以將新韌體通過網路向裝置「推送」更新訊息,這降低了韌體更新的成本,提高了消費者的滿意度。

本次韌體公升級採用的是 secure device firmware update。

安全裝置韌體更新(dfu)服務公開了在裝置上執行裝置韌體更新的必要資訊。該服務是由北歐半導體公司定義的專有服務,用於演示nrf5裝置上的典型裝置韌體更新。

首先要更改藍芽設別的狀態,在藍芽的service的characteristic中寫入引數,此時藍芽裝置斷開,進入bootloader狀態,並且mac位址發生變化,末尾+1(敲黑板)

然後重新連線裝置裝置出現如下兩個characteristic

下表列出了作為響應的一部分傳送的結果**:

傳輸init packet

dfu控制器首先檢查init資料報是否已經成功傳輸。如果沒有,dfu控制器將檢查是否已部分傳輸。如果一些資料已經被轉移,傳輸將繼續。否則,dfu控制器傳送乙個建立命令來建立乙個新的資料物件,然後傳輸init包。當初始包可用時,dfu控制器發出乙個執行命令來啟動init包的驗證。

傳輸firmware image

乙個韌體映象被分割成幾個連續傳輸的資料物件。如果資料物件的傳輸失敗(例如,由於斷電),則可以繼續傳輸而不是重新啟動。因此,dfu控制器首先選擇所傳送的最後乙個資料物件,並檢查它是否完整和有效。如果是,控制器將發出執行命令,然後繼續使用下乙個資料物件進行傳輸。否則,dfu控制器傳送乙個create命令來建立乙個新的資料物件(因此,如果這個資料物件的傳輸還沒有開始,或者接收到的資料被破壞了),然後傳輸下乙個資料物件。

當所有資料報被傳輸時,dfu控制器發出乙個執行命令來觸發實際韌體更新。

dfu控制器負責跟蹤進度。對每個select命令的響應包含關於最大物件大小、當前偏移量和crc的資訊。例如,如果影象大小為10kb,最大物件大小為4 kb,則必須傳輸3個資料物件。如果返回的偏移量是6kb,dfu控制器知道當前物件是轉移的第二個物件,並且該物件沒有被完全傳輸。

最近根據nordicsemiconductor的android-dfu-library寫的乙個最簡單的公升級案例:

韌體公升級 A9韌體公升級來啦!!!

期待已久的a9新韌體ver.5.00,終於來了 全新公升級的韌體增強了a9本就有著先天優勢的自動對焦效能,並加入了 實時追蹤對焦 實時眼部對焦 功能。追不上焦?不存在的!當然,除了提公升自動對焦體驗,a9的本次公升級也增加了許多新功能。公升級主要內容 改善及增加的自動對焦功能 1 實時追蹤對焦功能。...

韌體公升級思路

update的邏輯流程如下 然後編寫到rom中。因為code自己就在rom中,為了防止把自己擦掉,所以update要先把自己拷貝到ram中去執行。把code從rom拷貝到ram中去本以為要用彙編來寫,其實用c語言就ok了。就是簡單的buf拷貝操作。因為arm的架構支援統一定址模型 操作device和...

Brocade FC Switch 韌體公升級

準備一根網線,連線筆記本網口和光交的管理網口。一 準備ftp server 本地部署ftp伺服器,並上傳合適的新韌體檔案 二 備份配置檔案 光交配置檔案 ftp server 三 公升級fos ftp server韌體 光交 version firmwareshow firmwaredownload...