求助,dsp程序在2812ram里面运行SCI通讯正常,而烧写到flash里面运行就不正常了?

求助,dsp程序在2812ram里面运行SCI通讯正常,而烧写到flash里面运行就不正常了?,第1张

这很正常,以前我第一次森禅烧写的时候也发现了许多问题。

dsp的flash烧写比较麻烦,有时候光换cmd文件并不能保证程序在flash中正确运行。而且就算能正确运行,程序在flash中运行的速度比ram中要慢很多。这对实时性郑信和通讯影响都非常大。一般都要编写启动代码,让烧写在flash中的程序,在启动的时候搬到ram中运行。这样速度会提高很多。我这里直接将启动代码和相关的flash中给你附上。你要做的就是:

1.将库文件换成我给你的此丛尘库文件

2.启动代码用汇编编的,将启动代码添加的你的工程中。

3.将原来的flash文件替换为我给你的这两个flash

最后你的工程应该是这样的,这里以ccs5.5为例:

所有选中的文件都要添加。

ps:有什么问题欢迎继续追问,当年我为了烧写这个都快郁闷死了,都将dsp锁死过。所以还是比较有经验的。

修改cmd文件,可以使缓态用官方代码库里面自带的。

将DSP281x_common\cmd下的F开头的cmd文件添加进去,将原来的删除。

放在#include下面

extern Uint16 RamfuncsLoadStart

extern Uint16 RamfuncsLoadEnd

extern Uint16 RamfuncsRunStart

下面的放在main函数里面

MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart)

// Call Flash Initialization to setup flash waitstates

// This function must reside in RAM

InitFlash()

你也可以参考官方给的代码库里面薯拦的数哪胡例子,flash_f2812

PWM波一般用定时器计数器控制,这样就不会受代码执行速拆滑度的影响。

另外,请注意是否你迹腊的程序中没旅州腊有包含GEL文件中的某些初始化工作,比如对时钟的配置等。验证这点你可以在RAM运行程序阶段将2812的GEL文件去掉、启动CCS、连接板子,直接跑RAM版程序,看是否频率也掉到2.5kHz。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12372106.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存