打印

2812外部中断Emulator可以,下载到FLASH却不可以

[复制链接]
4271|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
项目需要|  楼主 | 2008-10-12 19:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用的是TMS320F2812,程序在Emulator下仿真都正常,但下载到FLASH后其他功能都能跑起来(IO口,片内AD采集等,但比较慢),但外部中断子程序却不可以。
具体状况是:
当有外部中断信号后程序在FLASH中跑飞。

后来,我按照http://focus.ti.com/general/docs/techdocsabstract.tsp?abstractName=spraau8 给出的方法,把全部FLASH中代码搬移到RAM中。在CCS下Load Symbol后,程序的入口_c_int00地址确实在RAM区(如果不执行FLASH-->RAM搬移的话,程序的入口地址在FLASH区,我已经观察到)。
但是现在程序RUN后就跑飞,通过CCS观察,地址跑到非法区域,对应的指令为ITRAP0。
如果不执行搬移操作,除外部中断外,其他功能都能执行(除了比较慢) ,但经搬移后,所有功能都不能正常执行了。我在FLASH空间内查看,程序确实被烧写进去了。

后来,我又采用了另外一种方法,就是把中断子函数memcopy到RAM中执行,而不是把全部代码copy。但还是一样的状况。


请问大家有没有碰到这样的问题?
对于外部中断,烧写到FLASH后不能正常执行的原因是什么?
不胜感激!

相关帖子

沙发
玄德| | 2008-10-13 16:07 | 只看该作者

仔细分析TI的SPRC097文件包。

在TI的SPRC097文件包中,有一个在FLASH中运行的例子,已经提供了足够的源代码,可以实现在FLASH中运行的一切过程。仔细分析、对比一下,甚至可以用这个例子作为自己的工程模板,把自己的程序一步一步地加进行。

对DSP而言,完成程序的仿真,开发过程只完成了90%,不能算结束。

使用特权

评论回复
板凳
zsh1980| | 2008-10-15 16:17 | 只看该作者

回复

你这可能是cmd的配置文件没有搞好,你若是C语言编写的程序需看一下分段中有没有加入switch段,再看看配置文件吧

使用特权

评论回复
地板
开心的雨果| | 2008-10-16 10:14 | 只看该作者

我觉得不是跑飞的问题

你把仿真器挂上,但不要运行运行软件看能不能正常运行,我现在就有这个问题 你也可以试试关掉狗再看看

使用特权

评论回复
5
yangmiao0223| | 2013-10-22 19:58 | 只看该作者
开心的雨果 发表于 2008-10-16 10:14
你把仿真器挂上,但不要运行运行软件看能不能正常运行,我现在就有这个问题 你也可以试试关掉狗再看看 ...

如果挂上仿真器 就行   那会是什么原因呢??

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

21

帖子

1

粉丝