TI E2E™ 设计支持论坛将于 5 月 30 日至 6 月 1 日进行维护。如果您在此期间需要技术支持,请联系 TI 的客户支持中心寻求帮助。

This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Serial Boot Loader for CC2530 APP程序不运行问题求助

Other Parts Discussed in Thread: CC2530

问题1:

注释掉cc2530-sb.xcl中最后一行:// -HFFFF

下载完成用asm("LJMP0x2000\n");跳转不到应用的main函数,而是循环执行boot的main,像是复位。

如果不注释最后一行,程序正常跳转运行应用的mian函数。

问题2:

不注释最后一行,程序正常运行,但是如果有中断产生,产生复位。

  • 1. 注释了-HFFFF会影响CRC的计算,自然是有问题的。

    2. 你是否修改了-D_CODE_START=0x2000? 或者你的boot代码里是否包含了interrupt_stubs.s51?

  • 谢谢你的回答!再补充下问题描述如下:

    1.整个升级过程中没有CRC校验:

    1)在boot代码中把跳转时CRC校验部分注释掉了;

    2)APP程序中cc2530-sb.xcl注释// -J2,CRC16  和  // -HFFFF ;

    3)option中xMAKE_CRC_SHDW。

    2.确定APP的cc2530-sb.xcl已经修改 -D_CODE_START=0x2000;且boot代码包含interrupt_stubs.s51

    3.问题2中如果APP中没有产生中断,程序可以一直正常运行。

  • 1. 我基本都是按照文档做,我想不出什么理由不使用crc,建议先按照文档,每一步仔细follow。

    2.  那你的.xcl里有-Z(CODE)INTVEC=_CODE_START 吗?

    思路很简单的, 通过interrupt_stubs 跳转到应用代码的中断向量表,如果偏移对,映射对,没理由不跳到正确位置。

  • 1.CC2530通过网关进行升级,网关原有一套成熟升级机制,因此CC2530在SBL基础上修改。如果使用CRC那就必须填充-HFFFF,生成bin文件会大,传输bin文件增加了网关流量。如果没有好的解决方式只能在生成bin文件后,手动删除多余0xFF。

    2..xcl里有-Z(CODE)INTVEC=_CODE_START ,生成的bin文件填充了0xFF。

    问题现象是:boot正常启动,也能正常跳到位置运行APP(组网/收发数据),一旦有中断产生例如timer3/uart,程序就复位。

  • 如果是这样,你可以考虑在IAR里VIEW一下汇编语句和flash里的内容,看对应位置和跳转地址是否是对的.

  • 好的,多谢你的解答

  • 你好,首先建议还是要保留CRC毕竟安全是第一位的,流量多一点少一点都是要走流量,感觉节约流量取消CRC的风险还是挺大的。

    另外问一下,上位机是用的单片机?下载的串口协议从哪里找的?我想用树莓派给2530下载程序 没找到串口协议,如果方便请指教,谢谢!