172557882 发表于 2013-1-5 11:19

DSP烧写问题

有一个20K的程序,DSP仿真下能运行,烧进去之后就不能运行,试了其它小程序都能烧进去运行,请问是哪里出问题了啊??困扰好久了啊

zaffwong 发表于 2013-1-5 12:06

CMD?

172557882 发表于 2013-1-5 13:55

感觉不是CMD的问题,其它程序都能运行啊,谁能解决啊,不胜感激!

jlass 发表于 2013-1-6 09:47

你用的是软仿真还是硬仿真,理论上来说硬仿真可以的话肯定能用的。

172557882 发表于 2013-1-6 17:09

我用的是软件啊,外面也有硬件电路,请了几位高人,还是解决不了,烧不进去就没法用啊这设备!

172557882 发表于 2013-1-6 17:14

jlass 发表于 2013-1-6 09:47 static/image/common/back.gif
你用的是软仿真还是硬仿真,理论上来说硬仿真可以的话肯定能用的。

我用的是软件啊,外面也有硬件电路,请了几位高人,还是解决不了,烧不进去就没法用啊这设备!

jlass 发表于 2013-1-6 17:23

如果你是在硬件电路上使用的话,应该是硬仿真。
20K的程序还挺大的,你是否可以确认你的烧写地址完全正确。
我建议你可以通过CMD改变那些小程序的烧写位置,确认一下整个20K的区间是否都能运行程序。

另外:你可以用仿真器确认一下,你的程序是跑飞了,还是停在某处了。

zhangmangui 发表于 2013-1-7 10:20

你这个问题应该有好多DSP初学者都遇到过,我建议你可以考虑一下三种方法:
一、你不要自己新建工程,找个下载进去可以正常运行的工程,将你的程序移进去,然后编译,烧写测试
二、你可以在工程主函数中添加这样的代码:就是程序运行时调用RAM的运行,这样不但速度快,也许会解决你的问题
三、检测硬件引脚XMP/MC是否被置高,如果置高,可以用电阻拉低试试
最后,希望你解决此问题之后能够共享给大家,我将会加入精华区
谢谢!

zhangmangui 发表于 2013-1-7 10:38

172557882 发表于 2013-1-5 13:55 static/image/common/back.gif
感觉不是CMD的问题,其它程序都能运行啊,谁能解决啊,不胜感激!

Debug和Release不知你选择合适没,还有复制一个下载进去可以正常运行的Flash.CMD试试

568581185 发表于 2013-1-7 10:51

airwill 发表于 2013-1-7 11:22

我觉得, 既然楼主说得明白: 硬仿真能够正常, 那么可以相信 CMD 就不会有问题.
那么问题最可能在哪里?
其实我也多次遇到过这类问题. 很多时候往往是时序的问题.
硬仿真和直接运行最大的区别是:1, 复位; 2. 上电时间.
1. 硬仿真有仿真系统提供复位, 所以有很可靠的复位, 直接运行则需要板上的复位系统, 所以请先检查复位系统的可靠性. 但是 DSP 内部有不错的复位控制系统, 相信这个问题上可能性不是很大.
2. 上电时间. 很多板上有不少外围逻辑或功能芯片, 好多芯片从上电到就绪需要一个时间(复位), 硬仿真, 有很长的上电时间, 足够外围器件就绪; 但是直接上电运行的上电到工作的时间很短, 导致外围器件还没有准备好, dsp 就发出控制命令, 可能导致外围器件无法响应而卡住. 最简单的检查办法是, 在主程序里开始的地方增加一个很长时间延时, 先试试吧

zhangmangui 发表于 2013-1-7 11:30

airwill 发表于 2013-1-7 11:22 static/image/common/back.gif
我觉得, 既然楼主说得明白: 硬仿真能够正常, 那么可以相信 CMD 就不会有问题.
那么问题最可能在哪里?
其实 ...

你说的很好楼主好像是下载别的程序可以运行啊

airwill 发表于 2013-1-7 11:43

zhangmangui 发表于 2013-1-7 11:30 static/image/common/back.gif
你说的很好楼主好像是下载别的程序可以运行啊

如果不涉及外围器件的操作, 就不需要等待外围器件就绪, 那么也就不会遇到卡住的问题, 所以别的程序可以运行. 这是自然的

172557882 发表于 2013-1-7 12:14

zhangmangui 发表于 2013-1-7 10:20 static/image/common/back.gif
你这个问题应该有好多DSP初学者都遇到过,我建议你可以考虑一下三种方法:
一、你不要自己新建工程,找个下 ...

感谢您的解答啊,现在不小心DSP不能解锁了,等换了芯片,在按照你们的思路实施。

172557882 发表于 2013-1-7 12:17

airwill 发表于 2013-1-7 11:22 static/image/common/back.gif
我觉得, 既然楼主说得明白: 硬仿真能够正常, 那么可以相信 CMD 就不会有问题.
那么问题最可能在哪里?
其实 ...

非常感谢您的解答,我DSP不知怎么就不能解锁了,等换了芯片,下一步就按你的思路实施一下

zhangmangui 发表于 2013-1-7 12:24

172557882 发表于 2013-1-7 12:17 static/image/common/back.gif
非常感谢您的解答,我DSP不知怎么就不能解锁了,等换了芯片,下一步就按你的思路实施一下 ...

TI的DSP烧写程序时需要特别注意,不能突然断电,烧写时如果出现软件死了,不能断电或拔掉仿真器等操作,这样就会出现芯片损耗,向TI申请一块,几天就到了,TI很给力

jlass 发表于 2013-1-7 16:42

呵呵,难得有人来逛DSP版,楼主运气不错。
希望楼主尽快解决问题,我们可以看看谁猜的对。

zhangmangui 发表于 2013-1-7 16:53

jlass 发表于 2013-1-7 16:42 static/image/common/back.gif
呵呵,难得有人来逛DSP版,楼主运气不错。
希望楼主尽快解决问题,我们可以看看谁猜的对。 ...

呵呵新版主来了 就是不一样吧兄弟帮忙顶起

172557882 发表于 2013-1-7 17:51

这个问题终于解决了,我用的八楼那位说的第二种方法解决的,可能我的问就出在了那里,因为其他的方法都试过了都不行。就是在主函数中加这两条语句:
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);(这个MenCopy用的TI头文件中)
InitFlash();最好是加在 InitSysCtrl();函数后面,参见附件这个问题终于解决了,我用的八楼那位说的第二种方法解决的,可能我的问就出在了那里,因为其他的方法都试过了都不行。就是在主函数中加这两条语句:
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);(这个MenCopy用的TI头文件中)
InitFlash();最好是加在 InitSysCtrl();函数后面,参见附件(从网上下载的)

zhangmangui 发表于 2013-1-7 19:36

问题解决了就好,呵呵   可以继续你的工作啦
页: [1] 2
查看完整版本: DSP烧写问题