CC2538 刷了OTA IMAGE-A的固件导致无法正常启动,也无法再刷固件了
1、硬件是CC2538,之前组网控制都正常,协议栈是Z-Stack 3.0
2、因为需要OTA,就参考OTA guide手册,编译出了一个Image A版本的Client固件,见附件,改一下扩展名为.hex,@VV 你可以在你的CC2538EM评估板上刷一下试试,这个是IAR for ARM编译出来的(bootloader+application二合一的hex文件),结果刷进去之后,设备就再也不能启动了,无论怎么用SmartRF Programmer 2刷会原来的固件,都提示刷成功了,但是程序始终无法运行;
3、有没有什么办法恢复,点了右上角的CC2538 Forced Mass Erase,不起作用,窗口一闪而过,IAR直接Debug也走不到main入口,各种boot、SampleSwitch工程都试过了,不行,如何破?
有没有不带OTA的image,之前也是在CC2538上运行过的,可以烧写进去么?
可以烧,后来我发现问题所在了,如果使用OTA image,CC2538-OTA-Image-A.icf文件里面的SRAM是不能修改的,默认是如下,也就是16KB,如果修改为(0x20000000 ),也就是32KB,那么image A烧进去就无法启动了,如果是这样,那岂不是无法使用完整的32KB SRAM了吗?
另外,C:\Texas Instruments\Z-Stack 3.0.0\Projects\zstack\OTA\Boot\CC2538\Boot.eww的确是无法单独调试的,无法进入到main函数,只能编译出Boot.bin,用来和Application合成最终的.hex文件:
//
// Define a region for the on-chip SRAM.
//
define region SRAM = mem:[from 0x20004000 to 0x20007FFF];