您好:
我用的是TMS320C28335,需要通过外部的MCU对28335进行软件升级。我采用的办法是:28335使用OTP启动。系统上电时,从ROM->OTP->内部flash。OTP里运行一段串口程序,如果在启动的2秒之内收到串口升级命令则对内部flash进行升级,如果延时2秒没有收到,则直接跳转至内部flash进行运行。
现在的问题是,OTP在跳转至flash程序时,总是出现异常,要么就是跑飞,要么就是继续运行rom的代码。我采用指针函数,指向flash地址的方式。感觉是堆栈出现了问题。不知道如何解决?TI的编译系统,在汇编时会跳转至_c_int00, 再到main运行,内部的堆栈初始化介绍得很少。
请问各位高手,OTP中的代码是否有可以参考的,特别是在最后跳转至flash的方法?堆栈的处理?DSP启动解析?
遇到此类问题是否有TI的技术人员直接联系,论坛太慢了。
谢谢!
Xiao Dong:
建议自己编写bootloader,不要放到OTP中,FLASH大得很,随便放一块FLASH中就行了。