把DSP程序烧进外部RAM时 程序一直处于跑飞时怎么回事
把DSP程序烧进外部RAM时 程序一直处于跑飞,没有执行程序代码。。怎么解决? 一这样提示调试时,指针指向下列步骤:
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 * 用仿真器单步调试,看看从哪里开始出的问题 3# jlass
没有执行主函数。。。 是不是复位中断没跳到main函数? 没有执行主函数。。。
什么意识,有仿真器的话PC指针的位置都可以随便调。
看了一下你的代码,你是一直在其中死循环吗,你的最后一句POPD是中断返回吗?
如果是的话,就是中断没保护返回出错了,始终返回到8B89这一行了 应该也是没有修改连接脚本 7# adams.gh
如何修改呢?请大虾简单讲解下 比如说,原来你的bin文件是放在0x0800 0000开始的地方的,现在你把这个bin文件搬移到了0x4000 0000地址,如果你不修改连接脚本,则你的bin文件中的中断向量表中的跳转地址还是原来的,当然就跑飞了。
你得通过修改连接脚本,告诉连接器你的bin文件最终是要放在什么地方的,然后,中断向量表中的跳转地址就对上了。
页:
[1]