死机确实不好整,估计没有现成的方法能马上解决你的问题,只能给些思路.
1.硬件, DSP芯片本身有没有问题? 比如你可以把这个老死的换到那个不死的板子上去试试. 一般这种都比较少见. 我碰到过一次,DSP里的片内程序RAM里有一段空间有一位读出来总是1.
还有如果用SDRAM,要验证一下SDRAM的反复读写会不会出错?
2.软件, 比如进中断保护的资源在退出时有没有全部恢复,有没有中断嵌套,程序中有没有变量未初始化就被使用了等等. 裁剪你的程序看看死机和哪一部分相关,进而定位确切的死机位置,比如进到某个函数就死了等.
从你这个描述貌似很像有变量未初始化被使用,同一个DSP不同的芯片,各自上电复位后的内存(片内\片外)的都是些随机值,比如同一个变量地址0x0000,A芯片里的值可能是0,而B芯片里的值可能是1,然后根据这个不同的值,程序的具体表现有可能就是有一个没问题,有一个有问题.
用仿真器加断点,条件断点,想办法输出调试信息等等手段多做试验,分析结果. 然后你就离BUG越来越近了.
|