TI中文支持网
TI专业的中文技术问题搜集分享网站

_IQNtoF _IQtoF 调用出错

在做一个项目时,将程序下载到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. ***

首先我查了CMD文件, 没问题,排查了好久, 最后查到只要将_IQ19toF这句注释掉就能下载无提示并且拔掉仿真器后能运行,如果不注释掉,下载就会出现警告提示,拔掉仿真器后重启DSP无法正常运行.

测试语句如下:

tempiq19 = _IQ19(1.9);

iqtoftemp = _IQ19toF(tempiq19);//  注释掉这一句一切正常.IQmath其他函数运行正常,包括IIR滤波,就这一句加进去DSP就无法运行,仿真器连着时能调试运行.

开发环境:WIN7  CCS3.3  DSP2812 

Forrest:

这个警告说明楼主有部分程序或数据没有放FLASH中而是放在RAM中,这样芯片断电后没有放在FLASH中的数据就会丢失。楼主请检查一下*.map文件看看哪部分程序放在RAM中,修改CMD文件以便消除这个警告。

另外CCSV3.3不支持WIN7,建议使用CCSV4或CCSV5:

http://processors.wiki.ti.com/index.php/Download_CCS

在做一个项目时,将程序下载到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. ***

首先我查了CMD文件, 没问题,排查了好久, 最后查到只要将_IQ19toF这句注释掉就能下载无提示并且拔掉仿真器后能运行,如果不注释掉,下载就会出现警告提示,拔掉仿真器后重启DSP无法正常运行.

测试语句如下:

tempiq19 = _IQ19(1.9);

iqtoftemp = _IQ19toF(tempiq19);//  注释掉这一句一切正常.IQmath其他函数运行正常,包括IIR滤波,就这一句加进去DSP就无法运行,仿真器连着时能调试运行.

开发环境:WIN7  CCS3.3  DSP2812 

fw yang:

回复 Forrest:

tempiq19 = _IQ19(1.9);iqtoftemp = _IQ19toF(tempiq19);

在程序中就用了这两句,完整的如下:

_iq19   tempiq19 ;

float      iqtoftemp ;

tempiq19 = _IQ19(1.9);iqtoftemp = _IQ19toF(tempiq19);//只要注释掉这一句一切正常 

这两句程序并不需要初始化数据,并且程序在FLASH中,

你说的意思我也懂,也查了CMD文件,自己看看是没什么问题

在做一个项目时,将程序下载到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. ***

首先我查了CMD文件, 没问题,排查了好久, 最后查到只要将_IQ19toF这句注释掉就能下载无提示并且拔掉仿真器后能运行,如果不注释掉,下载就会出现警告提示,拔掉仿真器后重启DSP无法正常运行.

测试语句如下:

tempiq19 = _IQ19(1.9);

iqtoftemp = _IQ19toF(tempiq19);//  注释掉这一句一切正常.IQmath其他函数运行正常,包括IIR滤波,就这一句加进去DSP就无法运行,仿真器连着时能调试运行.

开发环境:WIN7  CCS3.3  DSP2812 

Jones Chen:

回复 fw yang:

我感觉有可能是Const段的内存分配问题

在做一个项目时,将程序下载到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. ***

首先我查了CMD文件, 没问题,排查了好久, 最后查到只要将_IQ19toF这句注释掉就能下载无提示并且拔掉仿真器后能运行,如果不注释掉,下载就会出现警告提示,拔掉仿真器后重启DSP无法正常运行.

测试语句如下:

tempiq19 = _IQ19(1.9);

iqtoftemp = _IQ19toF(tempiq19);//  注释掉这一句一切正常.IQmath其他函数运行正常,包括IIR滤波,就这一句加进去DSP就无法运行,仿真器连着时能调试运行.

开发环境:WIN7  CCS3.3  DSP2812 

fw yang:

回复 Jones Chen:

.econst : > FLASHA PAGE = 0 .switch : > FLASHA PAGE = 0

   FLASHA      : origin = 0x3F6000, length = 0x001F80

当时我也怀疑这个,所以一开始就检查了,结果当然是没问题的.后来想想,这个没必要检测,因为程序中有好多是用到CONST段的,不止这里,其他地方都没出现问题,唯独这里

在做一个项目时,将程序下载到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. ***

首先我查了CMD文件, 没问题,排查了好久, 最后查到只要将_IQ19toF这句注释掉就能下载无提示并且拔掉仿真器后能运行,如果不注释掉,下载就会出现警告提示,拔掉仿真器后重启DSP无法正常运行.

测试语句如下:

tempiq19 = _IQ19(1.9);

iqtoftemp = _IQ19toF(tempiq19);//  注释掉这一句一切正常.IQmath其他函数运行正常,包括IIR滤波,就这一句加进去DSP就无法运行,仿真器连着时能调试运行.

开发环境:WIN7  CCS3.3  DSP2812 

Jones Chen:

回复 fw yang:

CONST段呢? 楼主给我的是ECONST段,所以ECONST应该不是问题,有可能CONST没有放在低64K的DATA区域中呢?

CONST段的内存映射要求如下:

.const      Global and static const variables that are explicitly initialized and string literals

Low 64K data

.econst Far constant variables

Anywhere in data

在做一个项目时,将程序下载到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. ***

首先我查了CMD文件, 没问题,排查了好久, 最后查到只要将_IQ19toF这句注释掉就能下载无提示并且拔掉仿真器后能运行,如果不注释掉,下载就会出现警告提示,拔掉仿真器后重启DSP无法正常运行.

测试语句如下:

tempiq19 = _IQ19(1.9);

iqtoftemp = _IQ19toF(tempiq19);//  注释掉这一句一切正常.IQmath其他函数运行正常,包括IIR滤波,就这一句加进去DSP就无法运行,仿真器连着时能调试运行.

开发环境:WIN7  CCS3.3  DSP2812 

fw yang:

回复 Jones Chen:

我目前是大内存模式,使用的是ECONST段,而CONST段并没有写,如果CONST段或者ECONST段出现错误 ,那么其他那么多程序将全部出错, 全局变量初始化还有很多.这是一个头疼的问题,我估计是我哪里出了 问题,而自己找不到

 我还有一个疑问:Low 64K data,  低64K并不是FLASH, 将CONST段设置在低64K,不会丢失数据么?

在做一个项目时,将程序下载到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. ***

首先我查了CMD文件, 没问题,排查了好久, 最后查到只要将_IQ19toF这句注释掉就能下载无提示并且拔掉仿真器后能运行,如果不注释掉,下载就会出现警告提示,拔掉仿真器后重启DSP无法正常运行.

测试语句如下:

tempiq19 = _IQ19(1.9);

iqtoftemp = _IQ19toF(tempiq19);//  注释掉这一句一切正常.IQmath其他函数运行正常,包括IIR滤波,就这一句加进去DSP就无法运行,仿真器连着时能调试运行.

开发环境:WIN7  CCS3.3  DSP2812 

Jones Chen:

回复 fw yang:

对于F2812来说,低64K Data区,在0x10000以下的内存映射区域。

只有M0,M1,L0,L1,都是RAM区。

Const段用来存储的是 初始化的常量,例如 Uint16 a = 100;

100这个数字是存在Const段的,所以不用担心丢失,因为是上电才初始化的。

因此你程序中的1.9那个数据,就是存在Const段来着。

 

你可以试试定义以下Const,然后放在PAGE=1的一个RAM区,再编译试试。

在做一个项目时,将程序下载到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. ***

首先我查了CMD文件, 没问题,排查了好久, 最后查到只要将_IQ19toF这句注释掉就能下载无提示并且拔掉仿真器后能运行,如果不注释掉,下载就会出现警告提示,拔掉仿真器后重启DSP无法正常运行.

测试语句如下:

tempiq19 = _IQ19(1.9);

iqtoftemp = _IQ19toF(tempiq19);//  注释掉这一句一切正常.IQmath其他函数运行正常,包括IIR滤波,就这一句加进去DSP就无法运行,仿真器连着时能调试运行.

开发环境:WIN7  CCS3.3  DSP2812 

fw yang:

回复 Jones Chen:

试过,如下:

同时也试过将CONST段放入FLASHA中,都不管用

.econst : >   FLASHA      PAGE = 0 .

switch : >   FLASHA       PAGE = 0 .

const : >  RAMM0         PAGE = 1

赞(0)
未经允许不得转载:TI中文支持网 » _IQNtoF _IQtoF 调用出错
分享到: 更多 (0)