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

news/2024/11/25 10:52:21/

之前有很多博主讲过在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时,这是可选的


http://www.ppmy.cn/news/43202.html

相关文章

低代码开发重要工具:jvs-flow (流程引擎)2.1.7版本更新内容

流程引擎主要包含了流程定义和编辑、任务分配和处理、流程监控和跟踪、数据模型和存储、条件和规则设置、安全性和权限管理、性能优化以及持续集成和部署等功能&#xff0c;以满足不同业务场景下的需求。 JVS流程引擎从V2版本开始&#xff0c;由flowable切换为 jvs-flow&#…

【Linux 裸机篇(三)】I.MX6ULL 启动方式

目录一、启动方式选择1. 串行下载2. 内部 BOOT 模式2.1 BOOT ROM 初始化内容2.2 启动设备二、镜像烧写1. IVT2. Boot data3. DCD数据一、启动方式选择 I.MX6ULL 芯片上电后&#xff0c;芯片会根据 BOOT_MODE[1:0]的设置来选择 BOOT 方式。BOOT_MODE[1:0]的值是可以改变的&#…

Midjourney教程(二)——Prompt基本结构

Midjourney教程——Prompt基本结构 Basic Prompt 基础版本的prompt仅仅包含图片的描述&#xff0c;能够满足普通的需求&#xff0c;如下图所示 Advanced Prompt 高级版本的prompt主要包含三个部分&#xff0c;如下图所示 Image Prompts(可选) prompt第一部分是Image&#x…

nssctf web入门(2)

目录 [SWPUCTF 2021 新生赛]easy_md5 [SWPUCTF 2021 新生赛]include [SWPUCTF 2021 新生赛]PseudoProtocols 这里通过nssctf的题单web安全入门来写&#xff0c;会按照题单详细解释每题。题单在NSSCTF中。 想入门ctfweb的可以看这个系列&#xff0c;之后会一直出这个题单的解…

ArrayList源码扩容机制分析

文章目录ArrayList 简介Arraylist 和 Vector 的区别?Arraylist 与 LinkedList 区别?ArrayList 核心源码解读ArrayList 扩容机制分析先从 ArrayList 的构造函数说起先来看 add 方法再来看看 ensureCapacityInternal() 方法ensureExplicitCapacity() 方法grow() 方法我们再来通…

5.mybatis-plus-条件构造器

1.简介 Wrapper条件构造器&#xff0c;可以通过其构造复杂的SQL Wrapper 条件构造抽象类-- AbstractWrapper 查询条件封装&#xff0c;用于生成 sql 中的 where 语句。-- QueryWrapper Entity 对象封装操作类&#xff0c;用于查询。-- UpdateWrapper Update 条件封装操作类&am…

【《C Primer Plus》读书笔记】第17章:高级数据表示

【《C Primer Plus》读书笔记】第17章&#xff1a;高级数据表示17.1 研究数据表示17.2 从数组到链表17.3 抽象数据类型&#xff08;ADT&#xff09;17.4 队列ADT17.5 用队列进行模拟17.6 链表和数组17.7 二叉查找树17.8 其他说明17.1 研究数据表示 在开始编写代码之前&#xf…

系统复杂度之【高性能】

系统复杂度之【高性能】 今天我们来谈一谈系统复杂度的根源之【高性能】 对性能的不懈追求一直是人类科技持续发展的核心动力。例如计算机&#xff0c;从电子管计算机到晶体管计算机&#xff0c;再到集成电路计算机&#xff0c;运算性能从每秒几次提高到每秒几亿次。然而&#…