一般已知问题和修复、适用于 cc13xx 和 cc26xx
1.设备在 OAD 成功后无法重新启动
答:拔下/重新插入或硬复位将修复此问题、器件将正常启动。
7.0.48.0发行版之前的仿真工具包存在错误。 当 JTAG 断开连接时、该错误会导致处理器在下一次启动时进入启动暂停(HIB)模式。 对于 OAD,即在 OAD 结束时发出 HAL_SYSTEM_RESET()。 下面显示了两个波形(LEFT = HIB、RIGHT = NORMAL JTAG DISCONNECT):
simplelink_cc13x2_26x2_sdk_2_40_00_81
使用 Android 8.0.0时、SimpleLink Starter 不会在 BLE 器件列表中显示 CC13x2/CC26x2持久应用。
答:oad_persistent_app.c 中的 advData 具有不正确的长度字段。 来解决这个问题
从中更改
//广播数据 静态 uint8_t advertData[]= { 0x02,//此数据 GAP_ADTYPE_FLAGS 的长度, DEFAULT_DISCOTE_MODE | GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED, //服务 UUID,通知中央设备此 外设 中包含哪些服务//,//此数据 GAP_ADTYPE_NOT_SUPPORTED 的长度, // //一些 UUID,但不是全部 LO_UINT16 (OAD_SERVICE_UUID)、 HI_UINT16 (OAD_SERVICE_UUID)、 //LO_UINT16 (SIMPLEPROFILE_SERV_UUID)、 //HI_UINT16 (SIMPLEPROFILE_SERV_UUID) ;}
更改为
//广播数据 静态 uint8_t advertData[]= { 0x02,//此数据 GAP_ADTYPE_FLAGS 的长度, DEFAULT_DISCOTE_MODE | GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED, //服务 UUID,通知中央设备此 外设中包含哪些服务 //,//此数据 GAP_ADTYPE_NOT_SUPPORTED 的长度 ,// //一些 UUID,但不是全部 LO_UINT16 (OAD_SERVICE_UUID)、 HI_UINT16 (OAD_SERVICE_UUID)、 //LO_UINT16 (SIMPLEPROFILE_SERV_UUID)、 //HI_UINT16 (SIMPLEPROFILE_SERV_UUID) ;}
simplelink_cc2640r2_sdk_1_40_00_45
1. 在第1985行的 oad.c 中替换以下代码 if(idPld->len > (stackImageHeader->stackStartAddr - 1))
进行了如下操作
if ((idPld->len - 1)>= stackImageHeader->stackStartAddr)
simplelink_cc2640r2_sdk_1_35_00_33
在 CCS 工程 OAD_TARGET_cc2640r2lp_app 中、将出现构建错误、并包含以下文本:
错误#10099-D:程序不能放入可用内存中。
答:此错误发生在 OAD_TARGET_cc2640r2lp_app 项目的链接阶段。 问题本身是由于链接器希望将应用程序的.text 段放入一个连续块中。 这是不可能的、因为内存中没有足够大的空洞来容纳一个块中的所有内存。 存储器中的这个空洞与未使用的存储器不同-未使用的存储器是指所有剩余的可用存储器。
此问题的权变措施是修改链接器命令文件、告知链接器允许它根据单独的对象拆分.text 段、并将它们放置在合适的位置。
实际上、修改链接器命令文件"cc26xx_app_oad_onchip.cmd"、这样就可以了
.text :> FLASH
变为
.text :>> FLASH
simplelink_cc2640r2_sdk_1_30_00_25
在 CCS 工程 OAD_TARGET_cc2640r2lp_app 中、将出现构建错误、并包含以下文本:
错误#10099-D:程序不能放入可用内存中。
答:此错误发生在 OAD_TARGET_cc2640r2lp_app 项目的链接阶段。 问题本身是由于链接器希望将应用程序的.text 段放入一个连续块中。 这是不可能的、因为内存中没有足够大的空洞来容纳一个块中的所有内存。 存储器中的这个空洞与未使用的存储器不同-未使用的存储器是指所有剩余的可用存储器。
此问题的权变措施是修改链接器命令文件、告知链接器允许它根据单独的对象拆分.text 段、并将它们放置在合适的位置。
实际上、修改链接器命令文件"cc26xx_app_oad_onchip.cmd"、这样就可以了
.text :> FLASH
变为
.text :>> FLASH
BLE Stack 2.2.x
IAR OAD 项目在边界更改后崩溃。 要重现此问题,请执行以下操作:
- 更改 build_config.opt 以启用可增大堆栈边界的功能(即启用数据长度扩展)
- 重新构建 BIM、堆栈和应用项目。
- 以相同的顺序加载这些项目。
- 请注意、器件将在 BIOS_Start 之后崩溃、这是因为 ICALL_STACK0_ADDR 上的存储器已损坏(0xFF)
答:要解决此问题、请执行以下步骤:
- 进入应用项目、右键单击并选择选项
- 从左侧窗格中选择链接器
- 选择校验和窗格
- 取消选中"Fill unused code memory"框
- 重新构建应用程序项目。