0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

工程編譯和OAD測試過程中的注意事項

電子設(shè)計 ? 來源:網(wǎng)友電子設(shè)計發(fā)布 ? 作者:網(wǎng)友電子設(shè)計發(fā)布 ? 2021-12-14 15:36 ? 次閱讀

OAD(http://www.ti.com/cn/lit/swra580 ), 即Over the Air Download,是通過無線的方式遠程更新固件的一種方法。On chip,就是片上, 升級的對象不需要外掛Flash, 通過芯片片內(nèi)Flash完成新固件存儲及老固件向新固件的切換。On chip OAD方案因為不需要外部接口就能夠?qū)崿F(xiàn)固件的更新,在傳感器,智能門鎖,電力監(jiān)控等無線應(yīng)用廣受歡迎。

在TI新發(fā)布的CC1310 片內(nèi)OAD工程里, 由于很多細節(jié)沒有說明, 用戶使用過程可能出錯. 這里將結(jié)合TI CC1310 SDK 1.60.00.21 版本(http://www.ti.com.cn/tool/cn/simplelink-cc13x0-sdk), 講解在工程編譯和OAD測試過程中的注意事項.

試驗提前準備:

兩個CC1310的Launchpad評估板(http://www.ti.com.cn/tool/cn/LAUNCHXL-CC1310 )

CC1310 軟件開發(fā)包:simplelink_cc13x0_sdk_1_60_00_21(http://www.ti.com.cn/tool/cn/simplelink-cc13x0-sdk )

工具:Uniflash燒寫工具(http://www.ti.com.cn/tool/cn/UNIFLASH )

串口工具:HTerm

PYTHON環(huán)境及工具:PYTHON 2.7

CC1310片內(nèi)OAD例程編譯

CC1310 片內(nèi)OAD的例程在上述SDK的文件夾examples\rtos\CC1310_LAUNCHXL\easylink中, 對應(yīng)有采集器(rfWsnConcentratorOadServer)和節(jié)點(rfWsnNodeIntFlashOadClient)兩個例程; 我們將其導(dǎo)入到CCS(7.0 以上版本)中.

這里需要注意的第一個點,在SDK的文文件夾\examples\rtos\CC1310_LAUNCHXL\easylink\hexfiles\onChipOad中已經(jīng)有已經(jīng)編譯好的固件, 這個固件目前不能夠和工程編譯的固件混合使用. 你可以只使用已經(jīng)編譯好的進行測試,或者只使用工程編譯好的.

我們首先編譯好采集器工程(無需任何修改),并將工程下載到CC1310 Launchpad 1 中;

接著, 按照工程內(nèi)的README.md指導(dǎo)(第136~145行)設(shè)置,我們編譯節(jié)點工程, 發(fā)現(xiàn)報錯,如下圖, 錯誤原因可使用存儲不足;

針對這個,我們可以從工程編譯生成的.map文件察看具體的存儲的細節(jié),可以看出是.const太大導(dǎo)致。

我們?nèi)绻麑⒅肮こ淘O(shè)置的FEATURE_OAD_ONCHIP取消,重新編譯,察看正常的.map文件, 可以發(fā)現(xiàn)主要占用.const空間的主要被smartrf_settings_predefined.obj占用,經(jīng)過檢查后,發(fā)現(xiàn)主要是無線RF的補丁導(dǎo)致,而這部分補丁針對我們對OAD的驗證沒有關(guān)系。

恢復(fù)到README.MD的工程設(shè)置后,打開工程目錄文件夾smartrf_settings中的smartrf_settings_predefined.c,將下面四個RF_Mode變量修改如下, 接著重新編譯工程。

RF_Mode RF_prop_lrm =

{

.rfMode = RF_MODE_PROPRIETARY_SUB_1,

.cpePatchFxn = 0,

.mcePatchFxn = 0,

.rfePatchFxn = 0,

};

RF_Mode RF_prop_ook =

{

.rfMode = RF_MODE_PROPRIETARY_SUB_1,

.cpePatchFxn = 0,

.mcePatchFxn = 0,

.rfePatchFxn = 0,

};

RF_Mode RF_prop_hsm =

{

.rfMode = RF_MODE_PROPRIETARY_SUB_1,

.cpePatchFxn = 0,

.mcePatchFxn = 0,

.rfePatchFxn = 0,

};

RF_Mode RF_prop_sl_lr =

{

.rfMode = RF_MODE_PROPRIETARY_SUB_1,

.cpePatchFxn = 0,

.mcePatchFxn = 0,

.rfePatchFxn = 0,

};

成功編譯,從下圖可以看到編譯后的程序大小為57K,滿足不能大于60K的限制。

這里需要說明的一點是,README.MD里面說的另外一點nodeFwVersion修改應(yīng)該是在oad_client.c而不是NodeTask.c中;

CC1310片內(nèi)OAD例程BIN固件生成及加載測試

因為這個工程的設(shè)置是針對IMAGE文件,如果直接下載到芯片是沒辦法正常運行的(因為芯片的復(fù)位向量沒有可執(zhí)行程序,需要借助BIM來跳到IMAGE程序入口),需要將編譯好的固件和Boot管理的BIM固件結(jié)合在一起,步驟如下

先mergy BIM和節(jié)點固件(請將兩個固件拷貝至python的目錄后執(zhí)行)

python /usr/bin/hexmerge.py -o rfWsnNodeIntFlashOadClient_CC1310_LAUNCHXL_all_v1.hex "--overlap=error" rfWsnNodeIntFlashOadClient_CC1310_LAUNCHXL_tirtos_ccs.hex bim_intflash_cc1350lp.hex

接著,因為BIM需要檢驗IMAGE的CRC文件,需要通過下面的命令將生成的hex轉(zhuǎn)換成bin。(需要下載安裝一個crc計算組件crcmod https://pypi.python.org/pypi/crcmod/1.7#downloads)

python oad_image_tool_13x0.py -t onchip -i production -v 0x0100 -m 0x1000 -ob rfWsnNodeIntFlashOadClient_CC1310_LAUNCHXL_all_v1.bin rfWsnNodeIntFlashOadClient_CC1310_LAUNCHXL_all_v1.hex

我們通過Uniflash, 把bin文件下載到節(jié)點Launchpad 2后,節(jié)點固件就可以正常工作了。你可以看到Launchpad的指示燈閃爍,從Launchpad 2串口可以看到SCE的ADC信息。我們開啟采集器launchpad 1,可以看到節(jié)點已經(jīng)和采集器建立通訊,可以正常工作了。

這里還需要注意的是通過oad_image_tool_13x0.py -v生成的版本號只是采集器端Available FW顯示的版本號,不是實際的固件版本號。

下一步是將升級需要的程序加載到采集器端。首先,我們需要根據(jù)README.MD的說明設(shè)置成IMAGE B。 接著,通過上述的python工具,將編譯生成的.hex 文件轉(zhuǎn)換成.bin文件。注意oad_image_tool_13x0.py 的-m參數(shù)需要設(shè)置成0x10000。之后,我們在采集器評估板右鍵選擇Update available FW, 再同時按下左鍵和右鍵,采集器進入加載固件界面,如下:

接著斷開采集器的串口,我們將結(jié)合PYTHON把需要更新的節(jié)點固件傳遞到采集器的外部Flash。 這里,因為PYTHON的腳本是針對LINUX寫的,為了在WINDOWS能夠工作,請先安裝模塊pyserial并修改腳本oad_write_bin.py (目錄C:\ti\simplelink_cc13x0_sdk_1_60_00_21\tools\easylink\oad)。PYTHON的安裝不在文檔討論范圍。Pyserial的下載安裝可參考http://blog.csdn.net/oxp7085915/article/details/52191698

修改后的腳本參考如下(已經(jīng)用黃色MARK)

#!/usr/bin/python

import serial, sys, io, os

import serial.tools.list_ports

plist =list(serial.tools.list_ports.comports())

if len(plist) <= 0:

print "The Serial port can't find!"

else:

plist_0 =list(plist[0])

port0 = plist_0[0]

file = sys.argv[1]

斷開原串口助手(采集器所連接)打開命令行,執(zhí)行oad_write_bin.py腳本,將新生成的節(jié)點固件bin文件傳遞給采集器。可以看到傳輸提示。等待傳輸完成。

C:\Python27>python C:\ti\simplelink_cc13x0_sdk_1_60_00_21\tools\easylink\oad\oad

_write_bin.py C:\ti\simplelink_cc13x0_sdk_1_60_00_21\examples\rtos\CC1310_LAUNCHXL\easylink\hexfiles\onChipOad\ccs\rfWsnNodeIntFlashOadClient_CC1310_LAUNCHXL_app_v2.bin

傳輸完成后,重新打開串口連接采集器串口,按Launchpad右鍵出現(xiàn)Update Available Firmware后,再同按左鍵同時按下右鍵,然后可看到V02的固件已經(jīng)可供使用。

接下來通過采集器Launchpad右邊按鍵選擇Update Node Firmware,再按左鍵同時按下右鍵執(zhí)行選擇??梢钥吹缴夐_始和完成。

升級完成后,通過Send Fw Ver Req可以看到固件已經(jīng)從V01更新到V02了。

總結(jié)

本文,針對TI最新發(fā)布的CC1310片內(nèi)OAD解決方案,描述了在對應(yīng)工程編譯,鏈接,測試過程中需要注意到的點,并成功實現(xiàn)了片內(nèi)OAD功能。

審核編輯:何安淇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 無線
    +關(guān)注

    關(guān)注

    31

    文章

    5402

    瀏覽量

    172855
  • 嵌入式處理
    +關(guān)注

    關(guān)注

    0

    文章

    341

    瀏覽量

    9984
收藏 人收藏

    評論

    相關(guān)推薦

    脈沖式充電器的使用注意事項

    脈沖式充電器的使用注意事項主要包括以下幾個方面: 一、安全注意事項 用電安全 :在充電過程中,應(yīng)始終保持警惕,注意用電安全,避免觸電和短路等危險情況的發(fā)生。 防火防災(zāi) :避免在易燃易爆
    的頭像 發(fā)表于 09-26 16:05 ?253次閱讀

    RIGOL產(chǎn)品在材料應(yīng)力測試過程中的應(yīng)用

    、強度、剛度、穩(wěn)定性等,可以精確地控制產(chǎn)品質(zhì)量。本篇解決方案將介紹RIGOL產(chǎn)品在材料應(yīng)力測試過程中的應(yīng)用。
    的頭像 發(fā)表于 07-12 17:01 ?244次閱讀
    RIGOL產(chǎn)品在材料應(yīng)力<b class='flag-5'>測試過程中</b>的應(yīng)用

    高速串行信號測試注意事項有哪些

    隨著信息技術(shù)的飛速發(fā)展,高速串行信號傳輸技術(shù)已成為現(xiàn)代通信領(lǐng)域的核心。然而,由于高速串行信號具有高頻、高速、高帶寬等特點,其測試過程也面臨著諸多挑戰(zhàn)。本文將詳細探討高速串行信號測試時需要注意
    的頭像 發(fā)表于 05-16 16:55 ?369次閱讀

    芯海通用 MCU 應(yīng)用筆記:CS32F03x設(shè)計注意事項

    本技術(shù)文檔匯總了 CS32F03x (包括 RA) 在設(shè)計,開發(fā),調(diào)試過程中經(jīng)常遇到的問題和需要注意事項,旨在幫忙用戶快速使用 CS32F03x系列 MCU。*附件:應(yīng)用筆記:CS32F03x設(shè)計
    發(fā)表于 05-16 11:02

    數(shù)字源表的使用方法和注意事項

    數(shù)字源表是電子工程領(lǐng)域不可或缺的重要測量設(shè)備,以其高精度、多功能的特性,廣泛應(yīng)用于科研、生產(chǎn)、教學(xué)等多個領(lǐng)域。然而,如何正確使用數(shù)字源表,以及在使用過程中需要注意哪些事項,對于確保測量
    的頭像 發(fā)表于 05-15 16:03 ?580次閱讀

    電阻測試儀的使用方法和注意事項

    電阻測試儀是電子和電氣領(lǐng)域中不可或缺的一種測試設(shè)備,主要用于測量電阻值的大小,從而判斷電氣元件或電路的工作狀態(tài)。隨著科技的不斷發(fā)展,電阻測試儀的功能也日益完善,但在使用過程中,正確的操
    的頭像 發(fā)表于 05-11 16:27 ?2646次閱讀

    SMT貼片加工生產(chǎn)過程中需要注意的方面

    一站式PCBA智造廠家今天為大家講講SMT貼片加工過程中需要注意的方面?SMT貼片加工的幾點注意事項。SMT或表面貼裝技術(shù)是現(xiàn)代電子生產(chǎn)中最常用的技術(shù)之一。它已經(jīng)被廣泛應(yīng)用于各種領(lǐng)域
    的頭像 發(fā)表于 02-20 09:14 ?409次閱讀

    PCBA加工過程中一定要注意事項

    一站式PCBA智造廠家今天為大家講講pcba生產(chǎn)過程中需要注意什么?PCBA加工生產(chǎn)過程中注意事項。PCBA是Printed Circuit Board Assembly(印刷電路板
    的頭像 發(fā)表于 12-20 09:43 ?431次閱讀

    霍爾元件使用的注意事項

    使用壽命,有一些注意事項需要牢記。本文將詳細介紹霍爾元件使用的注意事項。 一、安裝注意事項 1. 霍爾元件需要正確安裝在電路板上,確保其與周圍元件之間的間距適宜,以避免信號干擾。 2. 在安裝
    的頭像 發(fā)表于 12-18 14:56 ?1122次閱讀

    數(shù)據(jù)采集設(shè)備測試有哪些注意事項

    數(shù)據(jù)采集設(shè)備測試有哪些注意事項
    的頭像 發(fā)表于 12-05 10:05 ?491次閱讀

    如何進行電源的效率測試?有哪些注意事項呢?

    如何進行電源的效率測試?有哪些注意事項呢? 電源的效率測試是評估電源輸出電能與輸入電能之間的轉(zhuǎn)化效率的過程。這對于設(shè)計和選擇高效電源以減少能源浪費非常重要。本文將介紹電源效率
    的頭像 發(fā)表于 11-29 10:56 ?1145次閱讀

    電源適配器的包裝和運輸過程中需要注意哪些事項?

    電源適配器的包裝和運輸過程中需要注意哪些事項? 電源適配器是電子產(chǎn)品必不可少的一部分,而包裝和運輸對于保證產(chǎn)品的完好還原以及減少損壞都有著至關(guān)重要的作用。所以,在電源適配器的包裝和運
    的頭像 發(fā)表于 11-23 14:38 ?1044次閱讀

    如何解決車載部品測試過程中峰值電流不足的問題?

    如何解決車載部品測試過程中峰值電流不足的問題? 隨著汽車電子系統(tǒng)的不斷發(fā)展和普及,車載部品的測試過程變得更加復(fù)雜和嚴峻。其中一個常見的問題是峰值電流不足。峰值電流不足可能導(dǎo)致測試結(jié)果不準確、設(shè)備損壞
    的頭像 發(fā)表于 11-23 10:33 ?472次閱讀

    繼電保護測試測試時必須注意事項有哪些?

    注意事項。其次,要檢查測試儀器的電源和電纜是否連接良好,確保儀器處于正常狀態(tài)。此外,還要確保測試環(huán)境的安全,避免在潮濕、高溫或存在危險因素的環(huán)境中進行測試。 二、操作
    的頭像 發(fā)表于 11-21 14:11 ?564次閱讀
    繼電保護<b class='flag-5'>測試</b>儀<b class='flag-5'>測試</b>時必須<b class='flag-5'>注意事項</b>有哪些?

    電源的電容作用及注意事項

    電子發(fā)燒友網(wǎng)站提供《電源的電容作用及注意事項.pdf》資料免費下載
    發(fā)表于 11-13 09:21 ?0次下載
    電源<b class='flag-5'>中</b>的電容作用及<b class='flag-5'>注意事項</b>