QCC512x QCC302x GAIA OTA DFU 更新(earbud)
1、不能 DFU 更新的 filesystems:
- Read-Write (RW) FileSystem
- Device Configuration FileSystem (dev_cfg_filesystem)
- Apps. RW Configuration Keys (user_ps_filesystem)
2、修改工程,打開 DFU 功能
2.1 打開 DFU 宏
在工程屬性裡,包含 INCLUDE_DFU 這個宏,才能夠使用 DFU 功能。
2.2 修改進入 DFU 的設定
工程預設進入 DFU 的限制條件太多,以至于很難進入 DFU ,這這進入了之後,又不能夠更新,下面修改一下進入的限制,進而能夠實作比較容易的進入 DFU 更新。
av_headset_config.h
搜尋 “DFU” 關鍵字,找到 DFU 相關的配置,将其改為 TRUE。
av_headset_ui.c
搜尋 “APP_BUTTON_DFU” 關鍵字,找到進入 DFU 的入口,将其中一部分的判斷條件去掉,進而能夠簡單的進入到 DFU 模式。
修改的方式如下:
3、生成 DFU 檔案
3.1 生成 DFU security
同一個工程,這個步驟隻需執行一次。工具欄選擇 Tool --> Setup DFU security.
下面出來提示框,直接選擇預設的路徑,不用修改。
3.2 Rebuild 工程
執行上一步後,需要進行 Rebuild 操作,提示 rebuild lib 工程,但是建議整個工程 rebuild 一下,不過耗時有點久。工具欄選擇 Build --> Rebuild All。
3.3 Deploy 工程
需要将重新生成的代碼下載下傳到闆子上,後續才能夠執行 DFU 操作。
工具欄選擇 Build -->Deploy All。
3.4 生成 DFU 檔案
(1)每次有修改的内容後,如果需要生成更新檔案,隻需要重複該步驟。工具欄選擇 Tool --> Build DFU file。
(2)儲存在預設的工程路徑。
(3)選擇第一個,Sign all projects,然後點選 Proceed。
(4)根據需要選擇需要打包的工程,建議修改了哪個就選哪個,不然更新檔案太大,會延長更新的時間。
(5)選擇不加密。
(6)生成的 DFU 檔案路徑在 MDE的輸出視窗顯示,可以複制路徑,直接拷貝到手機進行更新。
4、執行更新
4.1 耳機進入DFU模式
earbud 工程想要 DFU 更新,必須先進入耳機的 DFU 模式,才能夠進行更新。
進入方法(原始代碼):
(1)在 out of case 狀态下,長按電源鍵12秒,聽到3聲提示音,松手,然後再聽到三聲音調稍低的聲音,即已經進入了 DFU 模式。
(2)放入充電盒,置于 in case 狀态,由于進入了 DFU 狀态,是以,放入倉内,藍牙是不會斷開連接配接的。
4.2 通過 GAIA 實作 OTA DFU
打開 gaia control app,在進入 DFU 模式後,一分鐘内,選擇生成的 bin 固件,并且執行更新。此處的時間可以通過 av_headset_config.h 來配置
4.3 通過GAIA來發送進入DFU指令
耳機進入DFU模式,需要手動進入,這個地方對使用者使用的體驗可能不太友好,是以,可以考慮增加一個GAIA 接口,通過APP發送指令來進入 DFU 模式,此處需要對 GAIA control APP 進行改寫,增加一定的接口,後續更新。