CC1310是TI Simplelink MCU系列中支持Sub-1G的SOC.針對很多客戶需要串口進行固件升級的應用需求,CC1310內(nèi)置了基于ROM的bootloader, 該bootloader支持UART和SPI兩種接口.詳細信息可參考TI CC1310的用戶指南(http://www.ti.com/lit/pdf/swcu117) 以及TI應用文檔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工程設置
CC1310 三線bootloader如下圖左,除了串口的兩根連線外,還需要一個專門的I/O進行啟動模式的控制。針對很多客戶產(chǎn)品只有一個對外的串口接口,提出了下圖右的兩線Bootloader方式,這個方式將BOOT_IO 與CC1310的UART RX復合使用。
如下圖BOOTLOADER的串口配置所示,UART和SPI的口是固定的I/O, 不能設置其他的I/O。CC1310 Launchpad 使用的是7*7 RGZ的封裝,下面我們需要設置BOOT_IO
BOOT_IO的設置在ccfg.c文件中,需要配置兩個宏,一個是有效觸發(fā)電平, 一個是DIO的編號。我們將有效觸發(fā)電平設置成高有效,BOOT_IO設置為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例程,編譯需要升級的固件。有兩個地方需要設置,一個是設置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
設置生成bin文件。 如下圖。
編譯工程,得到pwmled_CC1310_LAUNCHXL_tirtos_ccs.bin
通過Flash Programmer2對目標芯片完成兩線串口Bootloader燒寫
應用文檔SWRA466A中,對應的提供了一個命令行小程序sblAppEx,用于固件升級,因為程序編譯較早,有些版本運行會出錯。而很多用戶不知道的,F(xiàn)lash Programmer2 具有通過串口進行固件燒寫的功能。下面, 具體介紹用Flash Programmer2進行串口固件升級的具體操作如下:
1. 按照圖X所示,連接UART口和BOOT IO口, BOOT IO (即DIO2) 接低點平, 復位系統(tǒng). 由于我們設置的是低點平進入Bootloader狀態(tài),復位后,芯片進入ROM Bootloader模式
2. 在Flash Programmer2 的左上角 Connected devices中,選擇XDS110 Class Application, Unknown (這是CC1310 Launchpad自帶的UART口,如果是你自己的串口,也可以在這里看到)
3. 選擇好Unknown后,在左下腳的Select Target Device… 下拉菜單中選擇對應型號CC1310F128
4. 選擇好芯片好. 右鍵, 選擇Connect, 與目標芯片建立UART通信, 如下圖
5. 選擇需要升級的固件BIN文件, 這里選取之前步驟生成的pwmled_CC1310_LAUNCHXL_tirtos_ccs.bin文件
6. 升級成功后,可以從Flash Programmer最下方的狀態(tài)窗口看到更新
7. Dd
至此,我們就實現(xiàn)了兩線Bootloader
審核編輯:何安
-
嵌入式處理
+關注
關注
0文章
341瀏覽量
10029
發(fā)布評論請先 登錄
相關推薦
評論