OAD 空中升级
第二十三節(jié)??OAD空中升級
通過仿真器更新程序或者通過USB更新固件那都是一般人都可以實現(xiàn)的操作,但是要想實現(xiàn)OAD空中升級,這還是需要一定的技術(shù)能力。這一節(jié)我就帶著大家完善這一能力。
? ? OAD: ?on air download,指空中下載模式。當我們的產(chǎn)品發(fā)布以后,有時需要對固件進行升級,OAD是升級方式中的一種。
配置BIM(Boot Image Manger)
? ? 打開IAR,打開BLE-CC254x-1.4.0下的工程C:\TexasInstruments\BLE-CC254x-1.4.0\Projects\ble\util\BIM\cc254x\BIM.eww,然后編譯,下載到開發(fā)板中。
配置Image A
? ? 打開OADExample工程,配置工程,添加如下幾個宏
? ? FEATURE_OAD_BIM
? ? HAL_IMAGE_A
? ? FEATURE_OAD
? ? OAD_KEEP_NV_PAGES
(1)??打開simplePeripheral.c找到宏定義DEFAULT_ENABLE_UPDATE_REQUEST,將其改為FLASE。否則會影響B(tài)LEDevice Monitor對其進行空中升級,到時可以再改回來。
(2)??IAR左側(cè)導(dǎo)航中找到Profile文件夾,點擊右鍵添加oad_target.c和oad_target.h兩個文件,二文件位于C:\TexasInstruments\BLE-CC254x-1.4.0\Projects\ble\Profiles\OAD中。
(3)??在IAR導(dǎo)航中找到HAL→Target→MT254xboard→Driver,右鍵添加文件hal_crc.c,該文件位于C:\TexasInstruments\BLE-CC254x-1.4.0\Components\hal\target\MT254xboard中。
(4)??在剛才的simplePeripheral.c文件中,找到simplePeripheral_Init()函數(shù),在里面添加OADTarget_AddService()函數(shù)。
(5)??在simplePeripheral.c的前面,添加引用OAD的頭文件,OAD.h和OAD_target.h。
(6)??點擊Project→Option…,或直接按Alt+F7,選擇BuildActions,在Post-buildcommand line中添加:
"$PROJ_DIR$\..\..\common\cc2540\cc254x_ubl_pp.bat""$PROJ_DIR$" "rodUBL""$PROJ_DIR$\CC2540-OAD-ImgA\Exe\OADExample"
注意,各雙引號之間只有一個空格。注意圖中紅框標的部分,Image_A是和之前第1步對應(yīng)的。
(7)??點擊Project→Option…,或直接按Alt+F7,選擇Linker,選擇Config,Linker Configurationfile中勾選Override default,添加C:\TexasInstruments\BLE-CC254x-1.4.0\Projects\ble\common\cc2540\cc254x_f256_imgA.xcl。
(8)??點擊Project→Option…,或直接按Alt+F7,選擇Linker,選擇Extra Output。
(9)??Extra Option添加Hex文件的輸出。
(10)??點擊OK,編譯下載,如果出現(xiàn)如下錯誤,是因為我們使用的是IAR8051 8.30版本,如果你使用的是IAR8.20版本就沒有這問題。
(11)??這個問題是因為使用了虛擬寄存器導(dǎo)致的,我們找到如下文件。
(12)??對文件的115行進行如下修改,將虛擬寄存器注釋掉。
(13)??編譯后,可以看到我們生成的文件
(14)??我們將hex文件疊加到BIM后面
? 這樣ImageA就成功燒錄進開發(fā)板了。
配置Image B
(1)??方法如Image A,其它要注意的幾個地方:點擊Project→Option…,或直接按Alt+F7,選擇C/C++Compiler,選擇Preprocessor,將Defined symbols中的HAL_IMAGE_A改成B。
(2)??點擊Project→Option…,或直接按Alt+F7,選擇Linker,選擇Config,將Linker Configuration file中的文件改為B。
(3)??保存后編譯,同樣的可以看到生成的文件。
(4)??為了區(qū)分A和B鏡像,我們將最終結(jié)果改名。
空中升級
? ? 有了bin文件就可以進行空中升級了,打開BLE Device Monitor(沒有安裝的需要安裝),打開后軟件會自動掃描設(shè)備,如圖,我們掃描到了開發(fā)板。
(2)??連接后,打開OAD
(3)??點擊file,選擇Progame(OAD),選擇生成的bin文件,可以看到我們當前運行的是A固件
(4)??點擊start,當進行到100%,就完成了固件空中升級。
(5)??升級后再次打開OAD選項,可以看到選擇運行的固件已經(jīng)是B版本的了。
注意:
要把 BLE協(xié)議棧BLE-CC254x-1.4.0 安裝在C盤,在其他盤符下沒有生成bin文件。
總結(jié)
- 上一篇: 基于北京二手房价数据的探索性数据分析和房
- 下一篇: 图形验证码实现(代码)