第二十四節 OAD空中升級

第二十四節  OAD空中升級
通過仿真器更新程序或者通過USB更新固件那都是一般人都可以實現的操作,但是要想實現OAD空中升級,這還是需要一定的技術能力。這一節我就帶着大家完善這一能力。 OADn air download,指空中下載模式。當我們的產品發佈以後,有時需要對固件進行升級,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,然後編譯,下載到開發板中。


配置Image A
    打開OADExample工程,配置工程,添加如下幾個宏
    FEATURE_OAD_BIM
    HAL_IMAGE_A
    FEATURE_OAD
    OAD_KEEP_NV_PAGES


(1) 打開simplePeripheral.c找到宏定義DEFAULT_ENABLE_UPDATE_REQUEST,將其改爲FLASE。否則會影響BLEDevice Monitor對其進行空中升級,到時可以再改回來。


(2) IAR左側導航中找到Profile文件夾,點擊右鍵添加oad_target.c和oad_target.h兩個文件,二文件位於C:\TexasInstruments\BLE-CC254x-1.4.0\Projects\ble\Profiles\OAD中。


(3) 在IAR導航中找到HAL→Target→MT254xboard→Driver,右鍵添加文件hal_crc.c,該文件位於C:\TexasInstruments\BLE-CC254x-1.4.0\Components\hal\target\MT254xboard中。


(4) 在剛纔的simplePeripheral.c文件中,找到simplePeripheral_Init()函數,在裏面添加OADTarget_AddService()函數。


(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步對應的。


(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,編譯下載,如果出現如下錯誤,是因爲我們使用的是IAR8051 8.30版本,如果你使用的是IAR8.20版本就沒有這問題。


(11) 這個問題是因爲使用了虛擬寄存器導致的,我們找到如下文件。


(12) 對文件的115行進行如下修改,將虛擬寄存器註釋掉。


(13) 編譯後,可以看到我們生成的文件


(14) 我們將hex文件疊加到BIM後面


這樣ImageA就成功燒錄進開發板了。
配置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) 爲了區分A和B鏡像,我們將最終結果改名。


空中升級
有了bin文件就可以進行空中升級了,打開BLE Device Monitor(沒有安裝的需要安裝),打開後軟件會自動掃描設備,如圖,我們掃描到了開發板。


(2) 連接後,打開OAD


(3) 點擊file,選擇Progame(OAD),選擇生成的bin文件,可以看到我們當前運行的是A固件


(4) 點擊start,當進行到100%,就完成了固件空中升級。


(5) 升級後再次打開OAD選項,可以看到選擇運行的固件已經是B版本的了。


注意:
要把 BLE協議棧BLE-CC254x-1.4.0 安裝在C盤,在其他盤符下沒有生成bin文件。


本文章轉載自
http://www.deyisupport.com/question_answer/wireless_connectivity/bluetooth/f/103/t/69222.aspx
請勿用於商業
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章