本應(yīng)用筆記介紹運(yùn)行于隨 BlueNRG-LP、BlueNRG-LPS 片上系統(tǒng)提供的 Bluetooth?低功耗(LE)棧之上的 BlueNRG-LP、BlueNRG-LPS 無線(OTA)固件升級程序。
首先介紹與 OTA 固件升級過程相關(guān)的一些概念,然后幫助用戶了解運(yùn)行一些 OTA 固件升級會(huì)話所需的所有步驟。
“無線”固件升級的概念
“無線”(OTA)固件升級是一種協(xié)議,允許低功耗藍(lán)牙從設(shè)備無線接收來自低功耗藍(lán)牙主設(shè)備的固件映像,并將其寫入 Flash 存儲(chǔ)器。就低功耗藍(lán)牙技術(shù)而言,OTA 固件升級框架定義了一種提供其自己的特性,并能與藍(lán)牙 LE 棧上運(yùn)行的任何給定應(yīng)用使用的其他服務(wù)共存的服務(wù)。藍(lán)牙 LE 主設(shè)備是由通過 USB 連接到 PC的 BlueNRG-LP、BlueNRG-LPS 開發(fā)套件平臺構(gòu)成的組合系統(tǒng)。BlueNRG-LP、BlueNRG-LPS 平臺由BlueNRG GUI 驅(qū)動(dòng)。鑒于這種選擇,可以使用 PC 上的大量資源,尤其是用于生成固件映像的編譯器,以及為了進(jìn)行固件升級而在無線部署映像前存儲(chǔ)映像所需的存儲(chǔ)器空間。
OTA 固件升級服務(wù)描述
OTA 固件升級服務(wù)通過 BlueNRG-LP 、 BlueNRG-LPS DK 軟件包中提供的文件 OTA_btl.[ch]
(MiddlewaresSTBLE_ApplicationOTA folder)實(shí)現(xiàn)。
下面是關(guān)于 OTA 固件升級服務(wù)及其相關(guān)特性的簡述:
-Btl OTA 服務(wù)(OTA_SRVC_UUID):固件升級服務(wù)
?aci_gatt_srv_add_service((ble_gatt_srv_def_t *)&ota_service);
-Btl 映像的特性(IMAGE_CHR_UUID):包含一些與空閑內(nèi)存范圍相關(guān)的信息,這是包含 OTA 固件升
級服務(wù)的當(dāng)前應(yīng)用建議的范圍
-Btl 新映像的特性(NEW_IMAGE_CHR_UUID):包含 OTA 固件傳輸期間主設(shè)備想要無線發(fā)送的映像的基址和大小以及要求從設(shè)備發(fā)送確認(rèn)的通知范圍
-Btl 新映像內(nèi)容的特性(IMAGE_CONTENT_CHR_UUID):它包含主設(shè)備發(fā)送(通過特性寫入指令)的16 字節(jié)固件映像數(shù)據(jù)塊,以及一些控制信息,例如塊序號(2 字節(jié))和用于完整性檢查的校驗(yàn)和(1 字節(jié))
-Btl 預(yù)期映像序號特性(IMAGE_SEQ_NUM_CHR_UUID):從設(shè)備通過該特性通知主設(shè)備其預(yù)期的下一個(gè)數(shù)據(jù)塊或錯(cuò)誤條件