一个项目中使用到了IQtoF();的函数,整个项目用到非常多的IQmath函数,唯独使用IQtoF()时出现问题,特来请教!下面贴出关于此函数部分程序,程序主要用IQmath还有TI的数字信号处理库中的buutterworth IIR数字滤波器.
CMD文件如下:
PAGE 0:
RAML0 : origin = 0x008000, length = 0x002000 /* on-chip RAM block L0 */
ROM : origin = 0x3FF000, length = 0x000FC0
PAGE 1 :
RAMH0 : origin = 0x3F8000, length = 0x002000
段:
IQmath : > RAML0 PAGE = 0 /* Math Code */
IQmathTables : > ROM PAGE = 0, TYPE = NOLOAD /* Math Tables In ROM */
IQmathTablesRam : > RAMH0, PAGE = 1
包含的头文件:
测试程序如下:
void main()
{
float a;
a = _IQ19toF(_IQ19(1.3232));//可见程序中并没有警告提示中的所要用到RAM中的初始化数据,code部分烧写至FLASH,
}
原来的程序有很多,包括有很多IQmath函数,只要加进这一句就出问题,没有这一句一切正常.程序在RAM中运行没问题,烧写至FLASH不拔仿真器能运行,拔了仿真器断电后就不能运行.
下载至FLASH后提示如下:
警告文本信息:
"
Warning: This program contains initialized RAM data.
It may run successfully under Code Composer Studio
but not as a standalone system because of this. If
your Flash program requires initialized data in RAM,
you will need to write Flash code to initialize RAM memory.
Erase/Program/Verify Operation succeeded
**** End Erase/Program/Verify Operation. ***