微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > Flash下运行变慢带来的困惑

Flash下运行变慢带来的困惑

时间:10-02 整理:3721RD 点击:


各位老师和高手,我是DSP初学者,使用的F2812,由于实际系统的原因要将程序烧写Flash中,然后在实际运行时要将程序再复制到RAM中,这样我程序的运行速度才够用,可我对这快一点都不了解,想请各位老师和高手们能指点一二,最好谁有个例程和说明给我参考一下.还有就是我想请问一下Non-DSP/BIOS Projects和DSP/BIOS Projects的区别到底是什么?

DSP的内部有FLASH程序存储器和SRAM数据存储器,通常情况下我们把程序烧写到FLASH区,并且在程序区运行,但是读写数据的速度相对SRAM来说慢一些。你可以做个小程序来验证:对FLASH进行连续的读写操作,最好是使用乘法命令,每条语句中间不要有NOP间隔,调试时单步执行,你可以得到正确结果,但是连续执行,结果却是错误的。如果在每条语句中间增加若干NOP命令,才能正常。但是运行的速度实际上更慢了,尤其在进行FFT计算时,运算量非常大,如果 按照以上方法,效率很低。 所以DSP特别设计了重定位功能,就是把程序烧写到程序区,但是上电后加载到数据区运行。用语句表示为:.text   : load=FLASH      PAGE 0;run=DATA     PAGE 1.

你说的我都知道了,现在就是想实现你说的上电后加载到RAM运行,我刚看了一些资料,有一些疑问,比如在cmd文件设置上好像需要两个吧,一个为烧写cmd文件,一个为复制时的分配空间cmd文件,不知道我这么理解对不对?我看了一下TI提供的英文资料,上面好像只讲了中断向量和全局常数的复制,程序也应该是要复制的吧?还有我想问几个概念的意思:Large Memory Model与Small Memory Model的区别;安全模式是干什么的?请各位老师给讲解讲解,谢谢!

还有就是我应该是建立什么样的Project?Non-DSP/BIOS Projects或是DSP/BIOS Projects,他们两的区别是什么啊?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top