DSP开发入门

news2024/9/24 15:28:21

视频:

创龙TI 最新DSP CPU核心架构 C66x 以及 KeyStone I 架构 DSP TMS320C6655/57以及TMS320C6678视频教程全集_哔哩哔哩_bilibili

2024年硬汉科技手把手教您学DSP28335视频教程持续更新中_哔哩哔哩_bilibili

DSP芯片介绍

DSP选型

TI的DSP 分为三大系列:

TMS320C2000系列   :主要应用于 自动控制、电气工程、仪器仪表 如电机控制 数字电源

TMS320C5000系列 : 高性价比 低功耗 主要应用于 通讯领域 如交换机 路由器

TMS320C6000系列  :  高档数字信号处理  和 图像处理 语音处理

TMS320F28335PGFA  读懂芯片型号

TMS---合格产品

320---TI DSP系列

F --- Flash EEROM   (开发阶段和小批量生产就能用F型号的)

28335 --- 产品型号  150MHZ 主频

PGF---芯片封装  176引脚

A  -- 温度范围 -40~85℃

 28335是一款高性能的CPU  具有单精度浮点运算单元  (可以直接硬件支持浮点运算) 16*16和32*32乘法累加操作 (他是有硬件乘法器的 意味着 对 乘除 运算 处理非常快 所以更适合做实时性的 控制 对时间非常敏感的 控制 )

应用场景 

开发板 上电 下电顺序 

上电

 仿真器和开发板先连接好  -----  给开发板供电(这是插电源) ------ 按下电源开关(这是拨动开发板上的开关)  -----仿真器插电脑USB上 

下电

拔掉电脑USB 仿真器 ----- 关掉开发板电源开关 ---- 断开仿真器和开发板的连接 

DSP/MCU/ARM/FPGA对比差别

如何选型DSP

TI DSP 产品线 

TI官网:

Analog | Embedded processing | Semiconductor company | TI.com

定点: 在数据中,小数点的位置是固定的(数据要么 就存整数  要么存小数 在数据运算中不太方便  例如 3/2 可能就会把小数部分丢失 影响精度   但能通过方法来减小误差)

定点DSP存储数据的格式是使用固定点数表示。固定点数表示是一种用整数来表示小数部分的方法。在定点DSP中,数据被表示为带有固定小数点位置的整数,通常使用二进制表示。

例如,如果一个定点数采用16位表示,其中8位用于整数部分,8位用于小数部分,那么这个定点数可以表示0.0到255.996。整数部分和小数部分之间的小数点位置是固定的,因此称为“定点数”。 

浮点DSP存储数据的格式是使用浮点数表示。浮点数是一种可以表示带有小数和指数部分的数值的数据格式。在浮点DSP中,数据通常使用IEEE 754标准定义的32位单精度浮点数或64位双精度浮点数表示。

单精度浮点数由32位组成,其中包括符号位、指数位和尾数位,可以表示大约7位的有效数字。双精度浮点数由64位组成,具有更高的精度,可以表示更多的有效数字和范围。

浮点DSP利用这种格式存储数据,能够提供更高的计算精度和动态范围,适用于需要高精度计算的应用,如声音处理、图像处理、科学计算等领域。

TI DSP 指令架构

定点系列: C64 C64+ 架构

浮点: C67 C67+ 架构

C674 系列 对 定点和浮点 都完全兼容

C66 系列 是在C674系列的基础上开发的  完全兼容 C674

DSP命名

VLIW:

对于单核CPU来说 同一时间 CUP 只能执行 一条指令 如果想实现多任务分时操作 则需对CPU进行分时复用 现在为了解决这个问题 多核CPU 的出现 使程序可以实现一定的并行化处理。

而对于 单核DSP来说 超长指令集 的作用 就是 实现一定的 并行处理 

一条超长指令集 包含 几条 子指令  这条超长指令 除了可以执行当前操作还可以 对下一条指令的执行做初始化操作 相当于 实现了 并行化的执行结构 从而 提高了 DSP的性能

MIPS 和 MFLOPS

 

创建仿真器配置文件

为什么DSP需要实时仿真

DSP跟常见的处理器 如:MCU ARM 不同 DSP所要处理的对象 主要是 大量的实时数据流 那 我们如何知道 这些实时数据 在当前是什么状态 就需要仿真器 来读取这些数据状态 

便于 对数据的分析 并且 对数据处理的 结果 做预测  还能对 DSP的各个外设 各个寄存器的 状态进行查看 修改

在仿真之前 都需要把程序加载到内存运行  这阶段工作就靠仿真器来完成

仿真 分为: 实时仿真  非实时仿真 

比较高端的:XDS510 560 系列 就有实时仿真 功能  可以不占用 板子 任何资源的情况 实时将板子的数据传回PC  就能实时看到当前数据 

对于 XDS100  XDS200 是通过软件 来传递数据 相对来说 速度较慢且效率低

如何创建仿真器配置文件

第一步:硬件链接

将 仿真器接口 接到 板子 的 插座上  将USB转串口的 USB端 链接到电脑 另一端链接到板子上串口外设

 注意启动开关的顺序 启动方式

第二步:对开发板上电

第三步:创建仿真器配置文件

在 新建工程时  有选择仿真器的选项  选好 就能 将仿真器配置文件加载到 工程中

新建后  会在工程左边有个 .ccxml文件  这就是 仿真器配置文件

公共 仿真器配置文件搭建

如果 有很多工程 用内部的 仿真器配置文件 如果仿真器升级了 则 要重新一个个 重新匹配  所以推荐公共配置文件  这样每个工程 都可以 使用这个配置文件  用新的仿真器时 直接 重新建一个公共文件即可

首先 注意到右边的窗口  有一个 仿真器配置工具栏 ,其中有两列  一个 projects(当前工程里所带的仿真器) 一个 User Defined(自己定义的仿真器 公共配置)

如果没有则点开

如何创建 仿真器 公共文件 (路径不能有中文)

有一个 选择框  可以 制定 公共配置文件 存在哪个 文件夹中

修改配置文件

Connection(选择 仿真器型号)

接下来  选择对应芯片

 选择好后点击测试 看是否接通(点击之前 记得让硬件开发板 仿真器 和电脑均连接好)

点击后就开始 测试是否链接正常

如果需要每一个工程 都以这个仿真器 配置 文件  作为默认配置文件 在当前文件 右键 

如何软件仿真(CCS5.5以上 不支持 软件仿真 )

CCS 5.5以上版本(以7.4版本为例)添加软件仿真功能,并打印Hello World进行验证_ccs12怎么打印出helloword-CSDN博客

在配置文件中  选择 德州仪器 Simulator

因为  是软件仿真  所以 直接点save 就好

 

StarterWare库  C6748和兼容

StarterWare是什么:

StarterWare 主要功能  帮助 开发者  编写  基于 非操作系统的应用程序 

这个库提供了 一些 设备抽象层 函数库  这些库 中把 最基本的 寄存器操作 封装成了API函数 

跟 STM的标准库一样

下载库 因为 库和 CCS 是独立存在的


如何使用 库

 如何利用 库 来驱动LED

在当前的工程 按右键 打开属性

为什么 输出镜像格式 是eabi(ELF)格式

因为 TI提供的 SW库中 默认库编译的文件格式 就是ELF格式

如果选择COFF格式 就不能成功的引用库文件 

想要库文件函数 被正确的识别 需要在编译器 Include Options下 将相应的头文件引入工程 

除了需要将函数 相关声明的头文件 搜索路径 加载到工程当中 还需要将 库文件本身加入到工程 

烧写程序 (将程序固化到开发板上)

1.通过仿真器烧写

开始烧写操作之前 先将 CCS编译出来的.out文件转换成 DSP6748可以识别的AIS格式启动镜像

打开AISgen工具  加载6748的配置文件

2.通过串口烧写

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1706294.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Android的家庭理财APP的设计与实现(论文+源码)_kaic

摘 要 随着我国居民收入和生活水平的提高,家庭理财成为人们热议的焦点问题。在需求分析阶段,系统从用户的实际需求出发,确定了用户账户管理、记账、数据分析和提醒功能等几个核心需求。用户账户管理包括用户注册、登录和密码找回等基本操作…

游戏私域运营指南 | 降低买量成本,精细化游戏私域运营看这篇就懂了!

私域是什么?这个概念在零售行业已经盛行多年,但在游戏行业提及得并不多,从业者们可能更熟悉的 近似概念是“社区运营”。 那么首先,让我们明确定义:相对于社交媒体、搜索引擎、电商平台等需要通过付费投放来进行高效流…

webshell工具-冰蝎流量特征和加密方式

一、冰蝎原理 1.1 简介 冰蝎是一款基于Java开发的动态加密通信流量的新型Webshell客户端,由于通信流量被加密,传统的WAF、IDS 设备难以检测,给威胁狩猎带来较大挑战。冰蝎其最大特点就是对交互流量进行对称加密,且加密密钥是由随…

【前端常见面试题整理】

开放性的题目 自我介绍 突出学习能力 我想换工作的主要原因是 介绍项目 平时是如何学习前端开发的 主要就是两个途径,一个是查阅官方文档,然后就是在网上查找技术资料或者视频去学习。平时没事的时候也会看看github,同时关注一些社区和IT网…

浅说线性DP(上)

前言 在说线性dp之前,我们先来聊一聊动态规划是啥? 动态规划到底是啥? 动态规划是普及组内容中最难的一个部分,也是每年几乎必考的内容。它对思维的要求极高,它和图论、数据结构不同的地方在于它没有一个标准的数学…

Rust最新版安装(v1.78.0+)

系统:Windows 11 专业版 23H2rustc:1.78.0 配置环境变量和设置配置文件 新建文件夹“C:\Rust\Rustup”和“C:\Rust\Cargo”。【以管理员身份运行】打开CMD 设置系统环境变量,如下设置RUSTUP_DIST_SERVER,其余同理 C:\Windows\S…

中国教育 AI 产品正在成为百万美国学生的辅导老师;李飞飞:大模型不存在主观感觉能力丨 RTE 开发者日报 Vol.213

开发者朋友们大家好: 这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。 我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、…

编程5年的老哥说:我代码里从来不用锁,谁爱...

技多不压身! 大家好,我是 javapub。 今天一个朋友找我吐槽,说自己平时在工作中几乎用不到需要上锁的场景,就算有也只是并发很小、或者直接从有业务设计上就规避掉了。但一到面试,都是各种锁题,很头疼。 面…

YYDS!哈工大博士PyTorch笔记火了!!

Pytorch是目前常用的深度学习框架之一,它凭借着对初学者的友好性、灵活性,发展迅猛,它深受学生党的喜爱,我本人也是使用的Pytorch框架。 比起 TF 的框架环境配置不兼容,和 Keras 由于高度封装造成的不灵活&#xff0c…

三、Ollama导入大模型(.Net8+SemanticKernel+Ollama)本地运行自己的大模型

Ollama导入大模型 一、导入Ollama大模型1、使用run命令2、使用Modelfile方式 二、导入自定义大模型(Ollama官网以外的大模型)三、使用OpenWebUI导入大模型 Ollama可以导入官方提供的大模型,也可以导入huggingface上的自定义大模型&#xff08…

以太坊现货ETF获批:引发ETH价格暴涨,市场热议达到高潮

2024年5月24日,北京时间,以太坊现货ETF正式获得美国证券交易委员会(SEC)的批准,成为继比特币之后,美国主权政府承认的又一加密货币基金产品。这一意外的利好消息引发了加密货币市场的狂欢,以太坊…

东软的第三个研发基地,为什么选择了武汉?

继沈阳、大连之后,东软集团在国内打造的第三个研发基地——武汉东软软件园,于2024年5月25日正式开园。 “占地面积158亩、建筑面积14万余平方米的武汉东软软件园,从开工到竣工仅仅用了18个月的时间。这样的建设速度,充分体现了武汉…

香橙派Kunpeng Pro性能测评:高效能小型服务器开发板的全面体验

香橙派 Kunpeng Pro 是一款面向开发者和教育市场的高性能单板计算机,其搭载了鲲鹏处理器,可提供 8TOPS INT8 计算能力,提供了 8GB 和 16GB 两种内存版本,开发板结合了鲲鹏全栈根技术,全面使能高校计算机系统教学和原生…

3D Web轻量化平台HOOPS Web Platform在数字工厂中的应用实例

今天我们来聊聊HOOPS工具对大型数据的处理和可视化管理。这里是一个数字工厂的仪表盘展示,您可以在仪表盘上看到包括工厂的能源消耗、计划产量等数据信息,以及各种制造机器的生产量。 HOOPS中文网http://techsoft3d.evget.com/ 我们的HOOPS工具&#xf…

window.location.search取不到值

window.location.search window.location.search没有值的原因: URL中使用了 hash (指URL中带有#符号),导致URL后面携带的参数被location.hash截取走了,你再使用window.location.search得到的就是空值 打印 window.location 其实…

网络侦察技术

网络侦察技术 收集的信息网络侦察步骤搜索引擎检索命令bing搜索引擎Baidu搜索引擎Shodan钟馗之眼(zoomeye) whois数据库:信息宝库查询注册资料 域名系统网络拓扑社交网络跨域拓展攻击 其它侦察手段社会工程学社会工程学常见形式Web网站查询 其它非技术侦察手段总结网…

通过代码重用攻击绕过现代XSS防御

XSS已有近二十年的历史了,但它仍然是Web上最常见的漏洞之一。因此,已经发展了许多机制来减轻漏洞的影响。我经常会误以为这些机制可以作为针对XSS的保护。今天,我们将了解为什么情况并非如此。我们将在代码重用攻击领域探索一种相对较新的技术…

5.基于python的scRNA-seq细胞状态分析-细胞扰动

参考: [1] https://github.com/Starlitnightly/single_cell_tutorial [2] https://github.com/theislab/single-cell-best-practices 目录 背景识别受扰动影响最大的细胞类型预测细胞的扰动响应构建模拟数据集构建scGEN 背景 前面学习了不同处理条件下的基因差异表…

QGis3.34.5工具软件保存样式,软件无反应问题

在使用QGis软件保存SLD样式的时候,每次保存样式,软件都进入无反应状态,导致无法生成样式文件 百度中多次查询问题点,终未能在在3.34.5这个版本上解决问题。 考虑到可能是软件本身问题,于是删除了3.34.5这个版本&#x…

报修新选择:一款软件搞定所有维修问题

数字化、智能化时代发展迅速,各类便捷、智能化软件应用已经深入到我们生活和工作的方方面面。尤其是在企业或学校的设备管理中,报修维修工作一直是一个重要环节。传统的报修方式,如电话报修、填写纸质报修单等,已经无法满足现代高…