芯片型號:CC1310
最近買了一塊基于CC1310的信馳達RF-SM-1044B1模塊,自己編譯了一個固件。本來想下程序進去運行一下,遇到下載固件失敗的情況,這里分享一些經驗。
1.Contiki缺省設置沒有enable bootloader, 通過如下設置啟用backdoor,
修改contiki/cpu/cc26xx-cc13xx/lib/cc13xxware/startup_files/ccfg.c文件一下幾項,
其中, bootloader觸發設置為Select按鍵低狀態
// #define SET_CCFG_BL_CONFIG_BOOTLOADER_ENABLE 0x00 // Disable ROM boot loader
#define SET_CCFG_BL_CONFIG_BOOTLOADER_ENABLE 0xC5 // Enable ROM boot loader
#define SET_CCFG_BL_CONFIG_BL_LEVEL 0x0 // Active low to open boot loader backdoor
#define SET_CCFG_BL_CONFIG_BL_PIN_NUMBER 0x0B // DIO11, 對應Select按鍵
#define SET_CCFG_BL_CONFIG_BL_ENABLE 0xC5 // Enabled boot loader backdoor
//#define SET_CCFG_BL_CONFIG_BL_ENABLE 0xFF // Disabled boot loader backdoor
2. 編譯固件, 通過cjtag方式將新固件下載到CC1310模塊中, 這樣下次下載就可以通過按鍵觸發進入Bootloader模式, 用串口通信方式下載固件
上電后, 按住select按鍵后, 按一下Reset按鍵, 松開Select, 通常contiki系統自檢有個LEDs依次點亮熄滅過程, 如果看不到此現象,證明進入bootloader模式
3. 通過contiki系統自帶的cc2538-bsl script或者最新版TI Flash Programmer2(1.7.2), 通過串口下載
A. Flash Programmer2 下載操作如下
B. linux下通過contiki自帶的腳本下載
腳本詳細信息鏈接: https://github.com/JelmerT/cc2538-bsl
連上模塊到linux系統, 察看設備目錄, ttyUSB* 文件是否存在,然后敲入以下命令
cc2538-bsl.py -e -w -v -b 115200 cc1310-demo.bin
正常的輸出信息如下圖: