【CCS软仿真】CCS中的.dat文件格式,以及matlab生成该文件的方法

2013-12-04 14:52:40

 在CCS中,需要处理数据的时候有一种方式是采用load data,这时可以从文件中装入数据到板子的内存,数据文件格式有特定的要求,具体的格式如下:
定数  数据格式  起始地址  页类型  数据块大小 

1651 
其后是文件内容,每行表示一个数据。 
定数固定为“1651”,

数据格式可以选择“1”(十六进制整型)、“2”(十进制整型)、“3”(十进制长整型)、“4”(十进制浮点型)。

起始地址为存储的地址,

页类型和标示为程序或者数据,0-数据   1-程序 。 

比如一个.dat文件: 

1651 1 800 1 10 

0x0000 

0x0000 

0x0000 

0x0000 

0x0000 

0x0000 

0x0000 

0x0000 

0x0000

0x0000 

0x0000

0x0000 0x0000 
制作.dat 文件的方法也很简单,可以用VC++或者MATLAB来实现。比如hellodsp的网友lwxing提供的使用matlab创建.dat文件的一个实例: 
matlab向dsp传递.dat文件 

x=2*sin(2*pi*100*m*dt); 

for m=1:200; 
if x(m)>=0 

y(m)=x(m); 

else y(m)=4+x(m); 

end; 

end; 

y=y*16384; 
fid=fopen('input.dat','w');%打开文件,'w'是将此文件定义为可写的,fid是此文件的整数标示 
fprintf(fid,'1651 1 0 1 0\n');%输出文件头,文件头必须是dsp所能识别的,就如此句程序所设定的 
fprintf(fid,'0x%x\n',round(y));%输出y数组,并写到与fid标示符相同的文件,即yinput.dat文件里。round是取y值的最近的数,即如果是1.2,就取1,如果1.6,就取2. fclose(fid); %关闭fid标示符的文件。 
fid=fopen('input.dat','w');%打开文件,属性设置为写

fprintf(fid,'1651 1 0 1 0\n');%输出文件头,只有此文件头dsp芯片才能识别 
fprintf(fid,'0x%x\n',round(x));%输出十六进制的x fclose(fid);关闭 
这里x要转换成二进制补码,这也是我发此贴的目的所在。只是个人的理解,如果有问题,请大侠们改正,为更多dsp学习者们提供借鉴。 首先确定x的范围,譬如x=【-2,2】,那么,我们采用定点Q14,那么就是要乘以16384,如果x<0,还要转化成其补码。补码应该是用模加上x,即4+x,然后再将此数乘以16384. 
转载请注明出自DSP交流网 DSP学习第一论坛 DSP技术应用与推广平台 DSP开发服务平台 http://www.hellodsp.com/bbs/,本贴地址:http://www.hellodsp.com/bbs/viewthread.php?tid=4537 其在CCS中的使用方法可以有一下命令:

 File->Data->Load 

File->Data->Store 

File->File I/O

 

posted @ 2013-12-04 15:42  永不止步,永无止境  阅读(1466)  评论(0编辑  收藏  举报