DSP开发入门

视频:

创龙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.通过串口烧写

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

comfyui电商场景工作流总结

eSheep(内测中) - 一站式的AIGC社区eSheep.com 是国内知名的AIGC在线画图网站,提供海量模型,并支持在线AI画图。用户会上传自己的AIGC作品到网站上,进行交流。eSheep让AIGC更轻松,让更多人在AIGC中找到快乐https://www.esheep.com/apphttps://openart.ai/workflows/all

单链表OJ题(课堂总结)

1.链表的带环问题 上图就是一个典型的带环链表 1.1如何判读链表是否带环? 最常见的方法就是利用快慢指针,快指针追加慢指针,当二者相等的时候即可判断链表带环 其实现的代码如下: bool hasCycle(struct ListNode*head) { s…

万博智云×华为云 | HyperBDR云容灾上架,开启联营联运新篇章

日前,万博智云HyperBDR云容灾正式入驻华为云云商店,成为华为云基础软件领域联营联运合作伙伴。通过联营联运,双方将进一步加深在产品、解决方案、渠道拓展等多方面的强强联合,为企业提供更加安全、高效的数据保护解决方案&#xf…

全面解析Java.lang.ClassCastException异常

全面解析Java.lang.ClassCastException异常 全面解析Java.lang.ClassCastException异常:解决方案与最佳实践 🚀📚摘要引言1. 什么是Java.lang.ClassCastException?代码示例 2. 报错原因2.1 类型不兼容2.2 泛型类型擦除2.3 接口和实…

HTTP -- HTTP概述

HTTP概述 HTTP使用的是可靠的数据传输协议。 web内容都是存储在web服务器上的,web服务器所使用的是http协议,故被称为http服务器。 web服务器是web资源的宿主,web资源是web内容的源头。 因特网上有数以千种的数据类型,http仔细的…

文心智能体之情感领航员:你的智能情感导师

文章目录 引言情感领航员的诞生与定位情感领航员的优势与特点专业性个性化便捷性隐私保护 如何创建自己的智能体创建方式智能体名称和设定基础配置角色与目标指导原则限制澄清个性化 高级配置保存 /发布流量数据分析智能体调优 总结 引言 在现代社会中,情感问题的普…

Docker拉取镜像报错:x509: certificate has expired or is not yet v..

太久没有使用docker进行镜像拉取,今天使用docker-compose拉取mongo发现报错(如下图): 报错信息翻译:证书已过期或尚未有效。 解决办法: 1.一般都是证书问题或者系统时间问题导致,可以先执行 da…

电子画册制作技巧,从零基础到专业人士

电子画册作为一种新兴的视觉传达形式,正越来越受到大众的喜爱。从设计新手到专业人士,如何快速掌握电子画册的制作技巧,提升自己的创作水平呢? 一、明确设计目的和定位 制作电子画册前,首先要明确其设计目的和定位。画…

腾盾科创无人机亮相第二十四届新疆农机博览会引发观展热潮

5月25日,第二十四届新疆农业机械博览会、2024“一带一路”智慧农业大会(以下简称新疆农机博览会)在新疆国际会展中心开幕。展会现场多种农牧业的新装备、新技术集中亮相,其中首次在新疆农机博览会上亮相的腾盾科创无人机产品引发观…

Linux - crond任务调度、at定时任务

1 crontab 进行-定时任务的设置 1)概述: 任务调度:是指系统在某个时间执行的特定的命令或程序。 任务调度分类: 系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等个别用户工作:个别用户可能希…

【机器学习300问】101、1x1卷积有什么作用?

卷积神经网络最重要的操作就是卷积层的卷积操作,之前文章中介绍过,卷积核filter往往都是3x3或者5x5什么的,但有一种非常特殊的卷积——1x1卷积。他在CNN中扮演着非常重要的角色。 一、通道维度的降维/升维 这是1x1卷积最显著的作用之一。通过…

GIS 交通线网可视化:优化城市交通管理与规划

图扑 GIS 交通线网可视化可帮助城市规划和交通管理部门做出更精准的决策,提升出行效率和城市整体交通秩序。

Pytorch深度学习实践笔记11(b站刘二大人)

🎬个人简介:一个全栈工程师的升级之路! 📋个人专栏:pytorch深度学习 🎀CSDN主页 发狂的小花 🌄人生秘诀:学习的本质就是极致重复! 《PyTorch深度学习实践》完结合集_哔哩哔哩_bilibi…

MySQL主从复制故障:“ Slave_SQL_Running:No“ 两种解决办法

问题 今天搭建MySQL的主从复制,查看从机状态时show slave status\G,发现这个参数为NO,导致主从复制失败。 Slave_SQL_Running: No 后面上网查阅了一下资料,大概就是因为在连接支持数据库后,也就是这个命令后&#xff…

解决git克隆项目出现fatal无法访问git clone https://github.com/lvgl/lvgl.git

Windows 11系统 报错 $ git clone https://github.com/lvgl/lvgl.git Cloning into lvgl... fatal: unable to access https://github.com/lvgl/lvgl.git/: Failed to connect to github.com port 443 after 21141 ms: Couldnt connect to server 解决方法 git运行这两段代码…

ssh远程连接的相关配置

连接同一个局域网下: 正好这里来理解一下计算机网络配置中的ip地址配置细节, inet 172.20.10.13: 这是主机的IP地址,用于在网络中唯一标识一台设备。在这个例子中,IP地址是172.20.10.13。 netmask 255.255.255.240: 这是子网掩码…

PG实践|PostgreSQL的安装和配置

📫 作者简介:「六月暴雪飞梨花」,专注于研究Java,就职于科技型公司后端工程师 🏆 近期荣誉:华为云云享专家、阿里云专家博主、腾讯云优秀创作者、ACDU成员 🔥 三连支持:欢迎 ❤️关注…

Unity UGUI实现无限滚动列表

Demo链接​​​https://download.csdn.net/download/qq_41973169/89364284http://Unity UGUI无限滚动列表 在游戏开发中,列表视图是一个常见的UI组件。实现一个高效的列表视图尤其重要,尤其是在需要展示大量数据时。本文将介绍如何在Unity中实现一个高效…

玄机-流量特征分析-蚁剑流量分析

题目简介: 1.木马的连接密码是多少 2.黑客执行的第一个命令是什么 3.黑客读取了哪个文件的内容,提交文件绝对路径 4.黑客上传了什么文件到服务器,提交文件名 5.黑客上传的文件内容是什么 6.黑客下载了哪个文件,提交文件绝对路径 一…

【UE Slate】 虚幻引擎Slate开发快速入门

目录 0 引言1 Slate框架1.0 控件布局1.1 SWidget1.1.1 SWidget的主要作用1.1.2 SWidget的关键方法1.1.3 使用SWidget创建自定义控件1.1.4 结论 1.2 SCompoundWidget1.2.1 SCompoundWidget的主要作用1.2.2 SCompoundWidget的使用示例1.2.3 SCompoundWidget的关系1.2.4 总结 1.3 …