这很正常,以前我第一次森禅烧写的时候也发现了许多问题。
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。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)