DK521 发表于 2012-10-31 15:49

把DSP程序烧进外部RAM时 程序一直处于跑飞时怎么回事

把DSP程序烧进外部RAM时 程序一直处于跑飞,没有执行程序代码。。怎么解决?

DK521 发表于 2012-10-31 15:55

一这样提示
调试时,指针指向下列步骤:
8B89 7C02 SBRK    #2h
8B8A 0080 LAR   AR0,*
8B8B EF00 RET   
8B8C      abort, C$$EXIT:
8B8C 8B00 NOP   
8B8D 7980 B       8b8dh,*
8B8F      I$$SAVE:
8B8F 8B89 MAR   *,AR1
8B90 7801 ADRK    #1h
8B91 8FA0 SST   #1,*+
8B92 8EA0 SST   #0,*+
8B93 98A0 SACH    *+,0
8B94 90A0 SACL    *+,0
8B95 BE42 CLRC    OVM
8B96 BF00 SPM   
8B97 8DA0 SPH   *+
8B98 8CA0 SPL   *+
8B99 C001 MPY   #1h
8B9A 8CA0 SPL   *+
8B9B 80A0 SAR   AR0,*+
8B9C 82A0 SAR   AR2,*+
8B9D 83A0 SAR   AR3,*+
8B9E 84A0 SAR   AR4,*+
8B9F 85A0 SAR   AR5,*+
8BA0 86A0 SAR   AR6,*+
8BA1 87A0 SAR   AR7,*+
8BA2 8A80 POPD    *

jlass 发表于 2012-11-1 15:21

用仿真器单步调试,看看从哪里开始出的问题

DK521 发表于 2012-11-1 19:39

3# jlass
没有执行主函数。。。

aresc 发表于 2012-11-2 00:26

是不是复位中断没跳到main函数?

jlass 发表于 2012-11-2 09:40

没有执行主函数。。。
什么意识,有仿真器的话PC指针的位置都可以随便调。

看了一下你的代码,你是一直在其中死循环吗,你的最后一句POPD是中断返回吗?
如果是的话,就是中断没保护返回出错了,始终返回到8B89这一行了

adams.gh 发表于 2012-11-4 07:40

应该也是没有修改连接脚本

DK521 发表于 2012-11-4 09:02

7# adams.gh
如何修改呢?请大虾简单讲解下

adams.gh 发表于 2012-11-4 11:09

比如说,原来你的bin文件是放在0x0800 0000开始的地方的,现在你把这个bin文件搬移到了0x4000 0000地址,如果你不修改连接脚本,则你的bin文件中的中断向量表中的跳转地址还是原来的,当然就跑飞了。

你得通过修改连接脚本,告诉连接器你的bin文件最终是要放在什么地方的,然后,中断向量表中的跳转地址就对上了。
页: [1]
查看完整版本: 把DSP程序烧进外部RAM时 程序一直处于跑飞时怎么回事