DSP:将程序从Flash拷贝到RAM中运行速度
DSP在线调试是在RAM中运行程序。如果将DSP程序烧写到Flash中,运行速度就会慢很多,这时候通过memory()函数拷贝到RAM中运行,速度就会提升起来。但在实际中...
DSP在线调试是在RAM中运行程序。如果将DSP程序烧写到Flash中,运行速度就会慢很多,这时候通过memory()函数拷贝到RAM中运行,速度就会提升起来。但在实际中发现,同样都是在RAM中运行,在线调试的速度明显要更快一些,求大神指导一下,这个是为什么。
另外,程序中的所有全局参数都未初始化,即所有参数都是在RAM中读和写。程序中没有通讯读取什么的,在线调试完成程序约10us,从Flash拷贝到RAM中后,运行程序时间约为15us,在Flash中直接运行程序的
时间约为80us。 展开
另外,程序中的所有全局参数都未初始化,即所有参数都是在RAM中读和写。程序中没有通讯读取什么的,在线调试完成程序约10us,从Flash拷贝到RAM中后,运行程序时间约为15us,在Flash中直接运行程序的
时间约为80us。 展开
展开全部
亲,是错觉,绝壁是一样的
更多追问追答
追问
我是用录波仪测的时间,绝壁没有错误。。。
还有一个原因,我不知道对不对啊:我用的是F2812DSP,CUP最高频率为150MHz,在线仿真的时候没有设置CPU的频率,这个频率会不会略高于150MHz呢?而实际运行时,设置CPU频率为150MHz。不过觉得没有道理,仿真频率应该不会更高吧。。。
追答
你在DEBUG调试时,会下载一个gel文件,对DSP寄存器进行初始化。
程序下载到flash中的,再COPY到RAM运行,就完全执行的是你自己的代码了。
正常情况下,gel初始化完成后,会再执行你的应用程序,你自己的初始化代码会将寄存器重新配置,这时在线仿真和下载运行的速度是一样的。
但是,如果你锁相环的那段代码没写对的话,在线仿真时候CPU系统时钟是gel文件配置的,下载后运行是使用的是你应用程序配置的系统时钟,执行速度有可能是不同的,建议你好好检查一下程序配置,我觉得是你锁相环没配对。
用CCS把你在线仿真时下载的gel文件打开看一下。
还有。。你给的分好少。。。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询