CC1310是TI Simplelink MCU系列中支持Sub-1G的SOC.針對很多客戶需要串口進行固件升級的應(yīng)用需求,CC1310內(nèi)置了基于ROM的bootloader, 該bootloader支持UART和SPI兩種接口.詳細信息可參考TI CC1310的用戶指南(http://www.ti.com/lit/pdf/swcu117) 以及TI應(yīng)用文檔SWRA466A, CC2538/CC26xx Serial Bootloader Interface (http://www.ti.com/cn/lit/swra466)。傳統(tǒng)的bootloader至少需要三跟連線,這篇博客主要介紹如何實現(xiàn)兩線bootloader并基于TI Flash Programmer 2(http://www.ti.com/tool/flash-programmer)工具和CC1310 Launchpad(LAUNCHXL-CC1310)評估板對芯片實現(xiàn)UART的固件燒寫。
兩線bootloader工程設(shè)置
CC1310 三線bootloader如下圖左,除了串口的兩根連線外,還需要一個專門的I/O進行啟動模式的控制。針對很多客戶產(chǎn)品只有一個對外的串口接口,提出了下圖右的兩線Bootloader方式,這個方式將BOOT_IO 與CC1310的UART RX復(fù)合使用。
如下圖BOOTLOADER的串口配置所示,UART和SPI的口是固定的I/O, 不能設(shè)置其他的I/O。CC1310 Launchpad 使用的是7*7 RGZ的封裝,下面我們需要設(shè)置BOOT_IO
BOOT_IO的設(shè)置在ccfg.c文件中,需要配置兩個宏,一個是有效觸發(fā)電平, 一個是DIO的編號。我們將有效觸發(fā)電平設(shè)置成高有效,BOOT_IO設(shè)置為DIO3。修改如下代碼。同時,為了使能Bootloader功能,需要定義下面兩個宏SET_CCFG_BL_CONFIG_BOOTLOADER_ENABLE和SET_CCFG_BL_CONFIG_BL_ENABLE為0xC5
#defineSET_CCFG_BL_CONFIG_BOOTLOADER_ENABLE 0xC5
#defineSET_CCFG_BL_CONFIG_BL_LEVEL 0x0 // Active low to open boot loader backdoor
#defineSET_CCFG_BL_CONFIG_BL_PIN_NUMBER 0x02 // DIO number for boot loader backdoor
#defineSET_CCFG_BL_CONFIG_BL_ENABLE 0xC5
編譯,燒寫固件。
編譯生成目標升級Bin固件
這里以TI的CC1310 SDK的pwmled_CC1310_LAUNCHXL_tirtos_ccs例程,編譯需要升級的固件。有兩個地方需要設(shè)置,一個是設(shè)置ARM Hex Utility中的memory width和rom width為8,一個是Build, Step中的post build添加,${CCS_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin.bat ${BuildArtifactFileName} ${BuildArtifactFileBaseName}.bin ${CG_TOOL_ROOT}/bin/armofd.exe ${CG_TOOL_ROOT}/bin/armhex.exe ${CCE_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin.exe
設(shè)置生成bin文件。 如下圖。
編譯工程,得到pwmled_CC1310_LAUNCHXL_tirtos_ccs.bin
通過Flash Programmer2對目標芯片完成兩線串口Bootloader燒寫
應(yīng)用文檔SWRA466A中,對應(yīng)的提供了一個命令行小程序sblAppEx,用于固件升級,因為程序編譯較早,有些版本運行會出錯。而很多用戶不知道的,F(xiàn)lash Programmer2 具有通過串口進行固件燒寫的功能。下面, 具體介紹用Flash Programmer2進行串口固件升級的具體操作如下:
1. 按照圖X所示,連接UART口和BOOT IO口, BOOT IO (即DIO2) 接低點平, 復(fù)位系統(tǒng). 由于我們設(shè)置的是低點平進入Bootloader狀態(tài),復(fù)位后,芯片進入ROM Bootloader模式
2. 在Flash Programmer2 的左上角 Connected devices中,選擇XDS110 Class Application, Unknown (這是CC1310 Launchpad自帶的UART口,如果是你自己的串口,也可以在這里看到)
3. 選擇好Unknown后,在左下腳的Select Target Device… 下拉菜單中選擇對應(yīng)型號CC1310F128
4. 選擇好芯片好. 右鍵, 選擇Connect, 與目標芯片建立UART通信, 如下圖
5. 選擇需要升級的固件BIN文件, 這里選取之前步驟生成的pwmled_CC1310_LAUNCHXL_tirtos_ccs.bin文件
6. 升級成功后,可以從Flash Programmer最下方的狀態(tài)窗口看到更新
7. Dd
至此,我們就實現(xiàn)了兩線Bootloader
審核編輯:何安
-
嵌入式處理
+關(guān)注
關(guān)注
0文章
341瀏覽量
10031
發(fā)布評論請先 登錄
相關(guān)推薦
評論