TI中文支持网
TI专业的中文技术问题搜集分享网站

关于CC13X0 串口bootloader下载固件,有几个问题麻烦解答一下

今天试着在linux gateway环境下,成功下载了coprocessor 固件到1350的开发板上

但是看代码有几个问题没看明白

1.原始代码的设置:

代码里面怎么都是disable的?板上用的是DIO13,怎么这里直接就是0xFF?难道原始的设置没用吗?应该在哪里设置?

C:\ti\simplelink_cc13x0_sdk_1_50_00_08\source\ti\devices\cc13x0\startup_files\ccfg.c

//#####################################
// Bootloader settings
//#####################################

#ifndef SET_CCFG_BL_CONFIG_BOOTLOADER_ENABLE
#define SET_CCFG_BL_CONFIG_BOOTLOADER_ENABLE 0x00 // Disable ROM boot loader
// #define SET_CCFG_BL_CONFIG_BOOTLOADER_ENABLE 0xC5 // Enable ROM boot loader
#endif

#ifndef SET_CCFG_BL_CONFIG_BL_LEVEL
// #define SET_CCFG_BL_CONFIG_BL_LEVEL 0x0 // Active low to open boot loader backdoor
#define SET_CCFG_BL_CONFIG_BL_LEVEL 0x1 // Active high to open boot loader backdoor
#endif

#ifndef SET_CCFG_BL_CONFIG_BL_PIN_NUMBER
#define SET_CCFG_BL_CONFIG_BL_PIN_NUMBER 0xFF // DIO number for boot loader backdoor
#endif

#ifndef SET_CCFG_BL_CONFIG_BL_ENABLE
// #define SET_CCFG_BL_CONFIG_BL_ENABLE 0xC5 // Enabled boot loader backdoor
#define SET_CCFG_BL_CONFIG_BL_ENABLE 0xFF // Disabled boot loader backdoor
#endif

2.考虑到后续生产没办法使用JTAG,考虑使用串口直接烧写13X0的固件,第一次写固件就能用串口写吗?ccfg出厂的默认配置是怎么样的?

Felix ZF:

第一次写固件是可以用串口写的

进入Bootloader的情况包括一下两种:

1. when there is no valid image in flash;

2. when   "Bootloader enable" and "Backdoor enable",  then you can use an external  pin to force the device into bootloader.

dennis yang:

回复 Felix ZF:

谢谢帮忙解答了第二个问题

第一个问题还没明白

为什么原始代码里面用的bootloader功能都是diable的,引脚也没配置

但是却还能进入bootloader?

照说按照代码的设置,烧写了一次后就应该disable了bootloader才对,为什么还能进sbl?

Felix ZF:

回复 dennis yang:

如果你是使用的这个把Bootloader backdoor都disable掉的ccfg配置编译生成的目标文件,将这个目标文件烧写到板子之后,是无法通过Bootloader backdoor从UART进行代码更新的。

dennis yang:

回复 Felix ZF:

我也这么理解的,但是事实上他还是可以更新,所以我很奇怪,用flash programmer看了下memory

两个enable值都是C5, PIN_IO_NUM 是0x0D,和开发板的配置是一样的,但是代码里面不是这样配置的

难道ccfg段没有写进去?

不知道是不是开发板用的芯片版本锁住了这个分区不让改写?

dennis yang:

回复 Felix ZF:

如果芯片出厂后第一次可以用串口写固件,

那默认的BL_PIN_NUMBER是哪个?还是不用判断pin脚直接进bootloader?

dennis yang:

回复 Felix ZF:

还做了以下尝试:

1.用flash programmer擦掉flash,查看ccfg,BOOTLOADER_ENABLE = 0xC5   ,其余几个值都是0xFF

2.单按reset无法进入bootloader,提示

./host_cc13xx-sbl ccDnld-v1.00.00 — Dec 20 2017 14:22:49

Opening serial port /dev/ttyACM0/dev/ttyACM0: Device or resource busysblUartOpen: /dev/ttyACM0 open failedcould not open serial port

3.按住BTN-1(DIO13),再按下、松开reset,可以进入bootloader正常下载固件

为什么还是得按住BTN-1才能进SBL?明明在memory里面读到没有配置BL_PIN_NUMBER

没明白这是个什么逻辑。。。

如果芯片出厂是否上电就直接进入SBL那按理来说不需要再按BL_PIN_NUMBER才对吧

Felix ZF:

回复 dennis yang:

请确认一下你是否在多个地方有写CCFG的操作。

另外,查看一下cmd文件,确保你自己代码的CCFG配置是写入到了Flash的最高地址段

开发板的芯片没有把这个分区锁住,用户可以正常写入的

dennis yang:

回复 Felix ZF:

我搜索了整个coprocessor_cc1350lp的工程

发现在coprocessor_cc1350lp\configpkg\package\cfg):ource/ti/ti154stack/inc/App_pem3.mak文件里面有定义几个宏,定义的pin脚是0x0D也就是DIO13

–define=SET_CCFG_BL_CONFIG_BL_LEVEL=0x00 –define=SET_CCFG_BL_CONFIG_BL_ENABLE=0xC5 –define=SET_CCFG_BL_CONFIG_BL_PIN_NUMBER=0x0D –define=SET_CCFG_BL_CONFIG_BOOTLOADER_ENABLE=0xC5

还有app_pem3.cfg  app_pem3.rov.xs   config.bld这几个文件也有定义宏

不知道这几个都是什么文件

而且也没有找到在哪儿用的这几个宏

不知道要改配置的话这几个文件应该改哪几个还是全部都改

dennis yang:

回复 Felix ZF:

找到了,把工程clean后只能搜到Tools\src\sysbios\makefile里面的这个宏定义,应该就是这里定义的

dennis yang:

回复 Felix ZF:

还有个问题,芯片出厂第一次上电需要什么条件才能进SBL?

我昨天做了以下测试,发现擦掉flash后,还是需要按BTN-1才能进SBL,不知道为什么,请帮忙解答:)

1.用flash programmer擦掉flash,查看ccfg,BOOTLOADER_ENABLE = 0xC5   ,其余几个值都是0xFF

2.单按reset无法进入bootloader,提示

./host_cc13xx-sbl ccDnld-v1.00.00 — Dec 20 2017 14:22:49

Opening serial port /dev/ttyACM0/dev/ttyACM0: Device or resource busysblUartOpen: /dev/ttyACM0 open failedcould not open serial port

3.按住BTN-1(DIO13),再按下、松开reset,可以进入bootloader正常下载固件

为什么还是得按住BTN-1才能进SBL?明明在memory里面读到没有配置BL_PIN_NUMBER

没明白这是个什么逻辑。。。

如果芯片出厂是否上电就直接进入SBL那按理来说不需要再按BL_PIN_NUMBER才对吧

赞(0)
未经允许不得转载:TI中文支持网 » 关于CC13X0 串口bootloader下载固件,有几个问题麻烦解答一下
分享到: 更多 (0)