打印

请教:CCS的运行在线程序时,必须reset以后才能正确运行程序

[复制链接]
8126|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
JAYBI|  楼主 | 2013-1-23 21:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
TMS320C6727B的DSP,在线调试时,若先load了一个测试程序,可正常运行,若再次load一个新的程序,则第二个测试程序就不能正常运行,一般是中断进不去。但reset后再load第二个程序,则可正常运行。请教各位高手,这应该是什么问题呢??希望大家给与指点~~~

相关帖子

沙发
jlass| | 2013-1-24 09:07 | 只看该作者
本来就应该这么操作的。

在load之前必须reset一下。

使用特权

评论回复
板凳
JAYBI|  楼主 | 2013-1-29 17:20 | 只看该作者
jlass 发表于 2013-1-24 09:07
本来就应该这么操作的。

在load之前必须reset一下。

正常应该是load完工程,就可顺利执行吧??或者restart一下,而不是总去reset吧??嘿嘿

使用特权

评论回复
地板
jlass| | 2013-1-29 17:27 | 只看该作者
JAYBI 发表于 2013-1-29 17:20
正常应该是load完工程,就可顺利执行吧??或者restart一下,而不是总去reset吧??嘿嘿 ...

如果你是第一次load,因为硬件帮你reset了,所以不用你操作,但从第二次开始,load之前必须reset一下。

使用特权

评论回复
5
JAYBI|  楼主 | 2013-1-29 17:59 | 只看该作者
jlass 发表于 2013-1-29 17:27
如果你是第一次load,因为硬件帮你reset了,所以不用你操作,但从第二次开始,load之前必须reset一下。 ...

哦,程序是不会自动覆盖吗??然后跳入第二个程序进行运行的啊,为什么要每次都进行复位呢??嘿嘿

使用特权

评论回复
6
jlass| | 2013-1-30 08:48 | 只看该作者
JAYBI 发表于 2013-1-29 17:59
哦,程序是不会自动覆盖吗??然后跳入第二个程序进行运行的啊,为什么要每次都进行复位呢??嘿嘿 ...

程序会自动覆盖,但是不会从起始位执行。复位的目的是让你load的时候芯片处于静止状态,如果你没有reset就load不同的程序有概率会产生几个字节的错误数据,如果你load相同的程序有可能可以直接运行但属于不规范操作。

使用特权

评论回复
7
JAYBI|  楼主 | 2013-1-30 19:43 | 只看该作者
jlass 发表于 2013-1-30 08:48
程序会自动覆盖,但是不会从起始位执行。复位的目的是让你load的时候芯片处于静止状态,如果你没有reset ...

哦。这样啊~~~但我现在的情况是,在仿真器插着的情况下,烧在串行flash中的程序会在CCS reset后自动加载,并且运行一小段时间自动停止。所以这样就相当于reset以后RAM里仍有程序,是不是都不能使DSP处于静止状态啦???

使用特权

评论回复
8
JAYBI|  楼主 | 2013-1-30 21:49 | 只看该作者
jlass 发表于 2013-1-30 08:48
程序会自动覆盖,但是不会从起始位执行。复位的目的是让你load的时候芯片处于静止状态,如果你没有reset ...

嘿嘿,我还请教您一下,你说我的DSP会在插着仿真器的条件下,当CCS reset后,ROM会去自动加载烧写在flash中的程序,这样的情况正常吗???

使用特权

评论回复
9
jlass| | 2013-1-31 08:41 | 只看该作者
在仿真器插着的情况下,烧在串行flash中的程序会在CCS reset后自动加载,并且运行一小段时间自动停止

如果DSP处于MP模式下绝对不可能,如果DSP处于MC模式下没测过(不排除有此可能),但是加载完成后也是处于静止状态的,你要判断DSP是否处于静止状态很简单,点击reset之后,看一下CCS里面的run按键是不是有效状态就好了,如果是灰色无效状态就说明DSP正在运行。(不排除高版本的CCS有reset之后自动执行的选项可以配置)

另外:你一直说插着仿真器,我的理解是已经打开CCS并对DSP进行控制的状态,如果仅仅是插着仿真器但CCS都没打开的话,和没插是一样的。

使用特权

评论回复
10
JAYBI|  楼主 | 2013-1-31 21:29 | 只看该作者
jlass 发表于 2013-1-31 08:41
在仿真器插着的情况下,烧在串行flash中的程序会在CCS reset后自动加载,并且运行一小段时间自动停止

如果 ...

嗯,是CCS对DSP进行控制的状态。我现在用的6727,一会出现reset后自动加载程序,一会又不加载,很是让人苦恼啊~~~我还想问一下,所说的DSP处于静止状态是什么意思?是指不运行程序了,还是里面的寄存器进行了相应的复位呢???

使用特权

评论回复
11
jlass| | 2013-2-1 08:58 | 只看该作者
JAYBI 发表于 2013-1-31 21:29
嗯,是CCS对DSP进行控制的状态。我现在用的6727,一会出现reset后自动加载程序,一会又不加载,很是让人 ...

准确的说是初始静止状态,就是所有的寄存器为默认值,而且DSP不运行,这应该是load的必要条件。

至于时好时坏的问题,套用一句官方的话“对于没有按照规范操作引起的问题,我们不做任何解释”

使用特权

评论回复
12
jlass| | 2013-2-1 09:08 | 只看该作者
本帖最后由 jlass 于 2013-2-1 11:32 编辑

一会出现reset后自动加载程序,一会又不加载

这一点不好判断,不过如果你在不使用仿真器时没问题的话,倒是可以不去管它。否则的话就要考虑DSP与flash的时序问题了。

使用特权

评论回复
13
zhangmangui| | 2013-2-1 12:21 | 只看该作者
jlass 发表于 2013-1-31 08:41
在仿真器插着的情况下,烧在串行flash中的程序会在CCS reset后自动加载,并且运行一小段时间自动停止

如果 ...

果然是高手啊  

使用特权

评论回复
14
zhangjintao41| | 2014-11-12 09:50 | 只看该作者
gel文件问题,重新load程序时gel文件不能把上次所有寄存器复位,导致下次运行出错,这时需要手动复位。

使用特权

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

本版积分规则

1

主题

6

帖子

0

粉丝