logo资料库

Matlab向DSP传递dat文件.doc

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
CCS 支持的.dat 文件的格式为: 定数 数据格式 起始地址 页类型 数据块大小 1651 其后是文件内容,每行表示一个数据。 定数固定为“1651”,数据格式可以选择“1”(十六进制整型)、 “2”(十进制整型)、“3”(十进制长整型)、“4”(十进制浮 点型)。起始地址为存储的地址,页类型和标示为程序或者数据。 比如一个.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 红尘出品,转载请注明出处。 CCS 的 Probe 断点允许用户在指定位置提取或注入数据,此时会碰到所谓的 dat 文件。dat 文件格式有特定的要求,具体内容是文件头加实际数据。 文件头为:
1651 1 0 1 0 固定标识 数据格式 基地址 页类型 数据长度 数据格式:1-十六进制 2-十进制 3-十进制长整型 4-十进制浮点型 页类型: 0-数据 1-程序 数据长度:装入数据的长度 Code Composer Studio User’s Guide 中介绍,dat 文件的头部信息一般都可以是 1651 1 0 0 0,后 3 项可以全是 0,但是必须(这个很重要)在 CCS 的设定断点的 Source Editor 对话框中重新设置输入文件名(File)、起始地址(Start Address)、页类型(Page) 和数据长度(Length),这里的设置优先于在 dat 文件中的申明,具体见 Code Composer Studio User’s Guide 中 67 页的 note:header information override。亦可参考 TI 公司的 EVM 例程,或者在 ICETEK-VC5509-A 实验目录中打开 dat 文件来看一看。下面是用记事本打开正 弦函数数据文件 Sine2.dat 的结果: 1651 1 0 1 0 0x0000 0x000f 0x001e 0x002d 0x003a ......
分享到:
收藏