CCS通过dat文件导入数据计算出结果再导出数据

之前有很多博主讲过在matlab当中导出数据,到DSP里面进行计算,然后再将数据导出到matlab当中进行使用。

以前使用过matlab当中的dat数据,大家可以看一下区别:

fid = fopen('A.dat','wt');%将所得的数据存在A.dat当中
fprintf(fid,'%g\n',A);
fclose(fid);

这是在matlab当中生成dat文件的结果

如果要使用matlab生成DSP可以使用的头文件的话,就可以添加头文件:fprintf(fid,'1651 1 0 1 0\n');%输出文件头,文件头必须是dsp所能识别的

而在DSP当中使用dat文件的规定是: 

CCS支持的.dat文件的格式为:

文件头为

定数(固定标识) 数据格式 起始地址(基地址 ) 页类型 数据块大小(长度)
1651      1/2/3/4 (16进制) 0/1 (10进制)

数据格式:1-十六进制  2-十进制  3-十进制长整型  4-十进制浮点型

页类型:  0-数据   1-程序   (cmd文件中的page0或page1

长度:  装入数据的长度

例如:1651是固定标识,2是表示10进制,3F85A4 表示首地址是0X3F85A4 ,1表示为程序,1444表示数据个数,此为十进制。

 需要导入的数据准备好之后,就可以在CCS当中进行仿真了,该种情况适用于没有DSP开发板,利用CCS进行纯算法的验证

下面讲一讲在CCS当中具体导入数据的过程:

工程编译成功之后,点击debug,这个是不连开发板的,所以是虚拟的纯软件仿真,但是CCS的高版本(v6之后)是不支持纯软件仿真的,所以要先配置仿真环境,具体仿真文件和仿真教程下载链接:https://download.csdn.net/download/qq_43811597/87606916?spm=1001.2014.3001.5503

 然后导入dat文件,就是按照上面头文件的要求产生的文件(这个步骤可以用matlab产生,也可以自己制作,新建一个txt文件,然后将文件后缀改为.dat即可,然后将需要导入的数据,在excel当中放到一列,然后复制粘贴到该dat文件下,然后在第一行写入头文件即可)

 然后在选择文件所在位置,点击next:

 然后填入首地址(必须是DSP当中可以使用的地址)和长度,注意进制,然后点击finish就可了:

 然后就可以在memory browser当中看到写入的数据,如果找不到,也可以在view当中调出:

 其次就是怎么确保在程序当中使用的变量是用的这些数据:是将首地址放到一个指针里面,然后再把它的值赋给变量,程序执行之后,可以在variables当中查看是否成功;

Uint16 *c0 = 0x3F85A4;
Uint16 c[DETECTOR_SIZE][DETECTOR_SIZE];

for(i=0;i<DETECTOR_SIZE;i++)
{
	for(j=0;j<DETECTOR_SIZE;j++)
	{
		c[i][j] = *(c0+i*DETECTOR_SIZE+j);
	}
}

然后是如何将计算出的结果导出:

比如我们要导出上面变量C的结果,那么首先在variables当中查看它的是首地址,以及确定长度:可以看到其首地址为0x009000,长度位1444

 然后点击save memory

 选择好要保存的路径,点击next:

 然后填写要保存的格式,点击finish:

 最后看一下结果:

9:使用新方案,

8:当使用格式1 - 4时,这是可选的

猜你喜欢

转载自blog.csdn.net/qq_43811597/article/details/130122458