蓝牙BLE之CC2541 OAD升级[带看门狗OAD]
說(shuō)明和代碼設(shè)置
本文有兩篇文章參考,其中博主"甜甜的大香瓜"的文章是原始文章,詳細(xì)介紹了ImageA的hexh和B的bin以及A的bin是怎么生成的和具體的操作方法:https://blog.csdn.net/feilusia/article/details/50289371,然后博主"龍井茶110"在"甜甜的大香瓜"的基礎(chǔ)上做了一些具體操作上的補(bǔ)充https://blog.csdn.net/longjingcha110/article/details/88892773
這里在他們的基礎(chǔ)上再做一些細(xì)節(jié)的補(bǔ)充,他們說(shuō)具體步驟這里就不說(shuō)了.經(jīng)過(guò)配置后工程分成4個(gè)組:
CC2541:原本工程的分組,沒(méi)有OAD能力也不用燒錄BIM,擦除芯片(或者新的芯片)直接在IAR中下載即可
OAD_ImageA:生成image.hex的分組,適配https://blog.csdn.net/feilusia/article/details/50289371文章說(shuō)的hex
OAD_ImageB:生成imageb.bin,用于軟件升級(jí)
OAD_ImageA_Bin:這個(gè)分組和OAD_ImageA相比差異在于生成了bin固件,用于升級(jí),和OAD_ImageB相比只是分區(qū)不同
如果要下載支持OTA工程的設(shè)備,下載步驟分為3步(要按個(gè)按照下面三幅圖的選項(xiàng)來(lái)勾選):
擦除芯片:
下載BIM:
下載ImageA.hex:
這時(shí)候編譯ImageA的時(shí)候會(huì)報(bào)如下錯(cuò)誤,無(wú)需理會(huì)點(diǎn)擊確認(rèn)即可(因?yàn)镮mageA只是生成hex不生成bin所以會(huì)報(bào)這個(gè)錯(cuò)誤):
燒錄步驟簡(jiǎn)介簡(jiǎn)化
經(jīng)過(guò)測(cè)試只要按照如下步驟,只進(jìn)行兩次燒錄也是可以的
擦除和燒錄bim:
燒錄ImageA:
BLE Device Monitor環(huán)境搭建
下載完成后就可以用工具"BLE Device Monitor"來(lái)升級(jí)代碼了,這個(gè)工具也不是特別的好用,我折騰了好久才能夠識(shí)別到設(shè)備,目前"BLE Device Monitor"工具支持TI的dongle和開(kāi)發(fā)板的方式進(jìn)行連接,下載的代碼為"HostTestReleaseCC2540"工程生成的hex,雖然我沒(méi)有找到這個(gè)工程,但是卻在資料夾中找到了相關(guān)的hex:
其中帶Usb字樣的hex是運(yùn)行在dongle板子上的程序(用USB連接),沒(méi)有USB字樣的是運(yùn)行在開(kāi)發(fā)板用串口連接,我這里恰好有開(kāi)發(fā)板,所以下載不帶USB的(親自驗(yàn)證過(guò)是可以用CC2540來(lái)測(cè)試的),因?yàn)槲业某绦蚴沁m配開(kāi)發(fā)板的,所以可以再開(kāi)發(fā)板的屏幕上看到打印信息:
我這里波特率為115200沒(méi)有檢驗(yàn)位:
如果設(shè)備正常打開(kāi)"BLE Device Monitor"后可以看到如下界面:
測(cè)試
連接上設(shè)備后進(jìn)入OAD界面可以看到現(xiàn)在設(shè)備的版本信息如下:
為了辨別當(dāng)前的程序是A還是B,而且也是為了驗(yàn)證是否升級(jí)成功,這里在開(kāi)機(jī)啟動(dòng)的時(shí)候做了區(qū)分打印:
升級(jí)成功后串口和工具的log如下(說(shuō)明確實(shí)升級(jí)成功了):
成功升級(jí)了ImageB后連接進(jìn)入OAD界面可以看到如下代碼信息:
這時(shí)候可以升級(jí)OAD_ImageA_Bin分組的bin,升級(jí)成功后log顯示如下:
按照上面的方法可以隨意升級(jí)A,B兩部分!所以比較好的方法是每次發(fā)布程序的時(shí)候都生成A,B的bin,升級(jí)的時(shí)候根據(jù)當(dāng)前設(shè)備的類(lèi)型來(lái)選擇bin!
本文資料可以到如下網(wǎng)址下載:https://download.csdn.net/download/chengdong1314/87423333
帶看門(mén)狗OAD
繼續(xù)開(kāi)發(fā)項(xiàng)目發(fā)現(xiàn)當(dāng)代碼中打開(kāi)了看門(mén)狗后OAD就失敗了,然后就想著OAD之前先關(guān)閉看門(mén)狗,但是可悲的發(fā)現(xiàn)CC2540打開(kāi)了看門(mén)狗后就不能夠關(guān)閉了,奇葩的設(shè)計(jì):
這就沒(méi)有辦法了,只能夠通過(guò)藍(lán)牙發(fā)個(gè)命令過(guò)來(lái)設(shè)置一個(gè)掉電不丟失的標(biāo)志位然后重新復(fù)位后不再打開(kāi)看門(mén)狗:
使用如下命令復(fù)位不開(kāi)看門(mén)狗:
ff550a30393936353937b1dc1400
ff550714aa0000cbe17100
經(jīng)過(guò)這樣修改后代碼可以正常升級(jí)了,升級(jí)成B再次升級(jí)成A打印如下::
本章節(jié)所涉及的資料:https://download.csdn.net/download/chengdong1314/87425903
總結(jié)
以上是生活随笔為你收集整理的蓝牙BLE之CC2541 OAD升级[带看门狗OAD]的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ROS部署乐视奥比中光(astra pr
- 下一篇: 武汉大学计算机学院 曹老师,中南路学霸,