我用的是TMS320F2812,程序在Emulator下仿真都正常,但下载到FLASH后其他功能都能跑起来(IO口,片内AD采集等,但比较慢),但外部中断子程序却不可以。<br />具体状况是:<br />当有外部中断信号后程序在FLASH中跑飞。<br /><br />后来,我按照http://focus.ti.com/general/docs/techdocsabstract.tsp?abstractName=spraau8 给出的方法,把全部FLASH中代码搬移到RAM中。在CCS下Load Symbol后,程序的入口_c_int00地址确实在RAM区(如果不执行FLASH-->RAM搬移的话,程序的入口地址在FLASH区,我已经观察到)。<br />但是现在程序RUN后就跑飞,通过CCS观察,地址跑到非法区域,对应的指令为ITRAP0。<br />如果不执行搬移操作,除外部中断外,其他功能都能执行(除了比较慢) ,但经搬移后,所有功能都不能正常执行了。我在FLASH空间内查看,程序确实被烧写进去了。<br /><br />后来,我又采用了另外一种方法,就是把中断子函数memcopy到RAM中执行,而不是把全部代码copy。但还是一样的状况。<br /><br /><br />请问大家有没有碰到这样的问题?<br />对于外部中断,烧写到FLASH后不能正常执行的原因是什么?<br />不胜感激!<br /> |
|