相關工具另外發帖。
簡介:此方法基于DA14580官方SDK_5.0.4更改,可以為自己的工程增加OTA功能。
一、開發準備:1、DA14580官方SDK:DA1458x_SDK_5.0.4
2、官方SDK5OTA文檔
3、轉換工具
4、手機APP
二、工程代碼更改步驟:1、同時打開自己的工程和官方SDK中的例程ble_app_ota.uvprojx。
2、更改自己藍牙的地址,不要與其它藍牙地址沖突就行。
3、更改宏定義。
4、包含頭文件
5、更改廣播數據和設備的名稱。將廣播數據更換成官方ota例程的數據,這一段數據如果不一致會導致手機軟件suota搜不到設備。名稱可以隨意設定。
6、編譯自己的工程,會出現錯誤,根據錯誤提示,將沒有定義的函數或變量從官方ota例程中全局搜索并對比每一處,更改為一樣即可。
錯誤一:user_profile_callbacks
在官方ota例程中全局搜索
將官方ota與自己工程不一致的地方復制到自己工程
錯誤二:on_spotar_status_change
將官方ota與自己工程不一致的地方復制到自己工程
錯誤三:變量沒有定義。
將
SDK5.0.4\SDK5.0.4\DA1458x_SDK_5.0.4\DA1458x_SDK\5.0.4\sdk\ble_stack\profiles\spota 目錄下的spotar文件夾復制到自己工程的(src)文件夾,并在工程中添加。
將文件添加完成后就可以編譯通過了。
注:編譯通過后,請轉至文檔最后,還有一段代碼需添加。
三、轉換文件準備程序更改已經完成,下面進行bin文件與imag文件的生成。
1、轉換工具需要兩個工程輸出的HEX文件。
先編譯工程生成HEX文件cocobit_19_5_11_1
然后隨意更改任意一處,加個延時或者定義變量,反正要與上一個程序不一樣,因為OTA時會驗證程序是否一樣。更改后生成cocobit_19_5_11_2
將兩個HEX文件更改為fw_1和fw_2放入轉換工具的input文件夾中,
創建兩個頭文件,要求第二個頭文件的版本信息和時間都需要比第一個的高。
如果是580的工程就更改下名字,585就該另外一個。
四、生成bin和image文件1、安裝python環境
為計算機添加安裝目錄搭到環境變量,如圖把python的安裝目錄添加到pth系統變量中即可
測試python安裝是否成功,cmd打開命令行輸入 python 命令,如下圖即成功:
2、運行腳本
訪問轉換工具文件夾,然后輸入命令運行腳本
成功生成文件
3、查看output文件夾。(運行腳本前可以把文件夾內容都刪除)
然后將fw_multi_part_spi.bin文件用SmartSnippets燒錄到flash。
五、燒錄bin文件與OTA功能驗證1、燒錄的時候選擇
燒錄成功,重新上電。
2、打開手機SOUTA手機APP就可以搜索到設備相關的名稱和地址。
3、將轉換工具生成的img文件放到手機Suota文件夾。
4、在手機APP上點擊設備,選擇updata device,
選擇send to device
升級完成之后選擇重啟設備。
至此,整個過程完畢。
六、測試測試OTA功能是否正常,在工程改一下設備名稱,編譯生成HEX文件后再按照上述步驟,將HEX改成fw_2.hex,然后在頭文件fw_2_version.h把時間更改為現在的時間,保證要大于之前的時間或者版本即可。
將生成的fw_image_2.img文件用手機升級即可。升級完成之后,手機發送重啟命令,設備沒有完成重啟,必須手動重啟才能使程序生效,那是因為還有一段代碼沒有復制過去。
重啟代碼如下,添加后可完善OTA程序。即OTA完成后可用app復位,不用手動復位。
完整的Word格式文檔51黑下載地址:
詳細步驟.docx
(2.26 MB, 下載次數: 14)
2019-5-15 19:04 上傳
點擊文件名下載附件