一、ARM、DSP、FPGA

ARM具有比较强的事务管理功能,可以用来跑界面以及应用程序等,其优势主要体现在控制方面;ARM是32位的单片机,其内部硬件资源的性能较高,可以加载操作系统成为其主要特点,有了操作系统,就可以像pc机那样多任务实时处理,就是同一时间内能完成多个任务,而且不会互相影响。

DSP主要是用来计算的,比如进行加密解密、调制解调等,优势是强大的数据处理能力和较高的运行速度。

FPGA可以用VHDL或verilog HDL来编程,灵活性强,由于能够进行编程、除错、再编程和重复操作,因此可以充分地进行设计开发和验证。当电路有少量改动时,更能显示出FPGA的优势,其现场编程能力可以延长产品在市场上的寿命,而这种能力可以用来进行系统升级或除错。

ARM、DSP、FPGA比较——非常详细深入_wuqx_blogs的博客-CSDN博客_arm和dsp和fpga

二、DSP

最近所用到的芯片是DSPF28335和DSP28034。

F28335的特点:

1)F28335为哈佛结构的DSP,在逻辑上有4M × \times× 16位的程序空间和4M × \times× 16位的数据空间,物理上将程序空间和数据空间统一成一个4M × \times× 16位的空间。
2)F28335片内共有34K × \times× 16位单周期单次访问随机储存器 SARAM,分为10 个块,分别位M0、M1、L0~L7。
3)M0和M1快SARAM的大小均为 1K × \times× 16位,当复位后,堆栈指向M1块的起始地址,堆栈指针向上生长。M0和M1段都可以映像到程序区和数据区。
4)L0~L7块SARAM的大小均为 4K × \times× 16位,既可以映射到程序空间,也可以映射到数据空间,其中L0~L3可映射到两块不同的地址空间并且受片上FLASH中的密码保护,以免存在上面的程序或者数据,被他人非法复制。
5)F28335片上有 256K × \times× 16位嵌入式FLASH储存器和 1K × \times× 16位一次可编程EEPROM储存器,均受片上Flash中的密码保护。FLASH储存器由8个 32K × \times× 16位扇区组成,用户可以对其中任何一个扇区进行擦除、编程和检验,而其他扇区不变。但是,不能在其中一个扇区上执行程序来擦除和编程其他的扇区。

(1条消息) DSP_紫宸094的博客-CSDN博客

2.1 DSP入门

通过传感数将非电物理量转换为模拟电信号,预处理一般包括放大器和滤波器两部分,信号经过放大器的放大变为具有一定幅值的模拟输入信号,而滤波器(低通或带通)的作用则是滤除输入模拟信号中的无用频率成分和噪声,避免采样后发生频谱混叠失真。A/D转换器的任务是在满足奈奎斯特采样定理的条件下,将模拟信号转换为数字信以,DSP负责对输入数字信号进行某些算法,如卷积、相关、滤波或快速傅里叶变换(FFT)等。经过处理之后的数字信号再进行DA转换,由于转换输出的模拟信号中含有许多高频成分,因此要通过重建滤波器滤除这些高频信号,以获得平滑的模拟输出信号。

实际上,为了完成数字信号处理的任务,除了图1-1所示的DSP基本结构之外,还必须在DSP系统中配置人机接口、存储器、通信接口、测试接口和电源设备等。

(1)ARM是32位的;DSP有16位的,也有更高的

(2)所有说从运算能力上看,C51最弱,DSP最强,ARM居中

(3)DSP频率很高(高的达到300MHz 以上),所以功耗大。ARM芯片面积也很小,ARM7是0.55平方毫米,功耗也比较小。频率大约在(几十到200MHz之间)

(4)DSP则主要应用于需要进行复杂计算的高端系统,例如图像处理,加密解密,导航系统等,外围module一般较少

ARM具有比较强的事务管理功能,可以用来跑界面以及应用程序等,其优势主要体现在控制方面,DSP主要是用来计算的,比如进行加密解密、调制解调等,优势是强大的数据处理

一般说来,ARM的功耗小,适合于对功耗要求比较苛刻的地方,而DSP功耗较大。你不能假设他们主频相同然后比较优劣,因为两者的主频一般并不相同。ARM的优点不在于主频,而在于片上外设比较丰富,接口多种多样,适合于各种嵌入式系统。DSP当然就是以速度高为优点,用途比较专。

DSP(数字信号处理器)技术概要_开心死啦.的博客-CSDN博客_dsp技术

DSP到底是个什么鬼?看完你就懂了_EDA365电子论坛的博客-CSDN博客_dsp

献给初学者-DSP入门教程_newbie_xymt的博客-CSDN博客_dsp编程

2.2 DSP指令

1、EINT、DINT

作用:EINT开中断,DINT关中断

2、ERTM、DRTM

作用:ERTM使能调试事件,DRTM禁止调试事件

3、ESTOP0

这是一个汇编指令,是用于DSP仿真的,它有两个方面的知识:

(1)当用仿真器连接时如果ESTOP0置位(ESTOP0=1),那么整个DSP停止运行(相当于断电指令,程序跑到这里就会停止)。(2)当不用仿真程序时,在程序中写这条指令相当于NOP(空指令),只是占了CPU的一个周期而已

4、EALLOW和EDIS

作用:EALLOW设置状态寄存器1的C6位,此时处于禁写状态的寄存器解禁

EDIS清除状态寄存器1的C6位,寄存器重新恢复禁止写入状态

DSP由于在上电复位之后,状态寄存器基本上都是清零,而这样的状态下正是上述特殊寄存器禁止改写的状态。为了能够对这些特殊寄存器进行初始化,所以在对上述特殊寄存器进行改写之前,一定要执行汇编指令asm(“EALLOW”)或者宏定义EALLOW来设置状态寄存器1的C6位,在设置完寄存器之后,一定要注意执行汇编指令asm(“EDIS”)或者宏定义EDIS来清除状态寄存器1的C6位,来防止杂散代码或指针破坏寄存器内容。

【DSP】DSP2833x.h中定义的指令EINT、DINT、ERTM、DRTM、EALLOW、EDIS、ESTOP0的含义_aoxiang_ywj的博客-CSDN博客_dint指令是什么意思

DSP与STM32单片机的区别是什么 - 控制/MCU - 电子发烧友网 (elecfans.com)

2.3 DSP中的CMD文件

链接命令文件(Link Command Files),以后缀.cmd结尾,简称CMD文件。CMD文件的两大功能是指示存储空间和分配段到存储空间。在编写CMD文件时,主要采用MEMORY和SECTIONS 两条伪指令。

DSP中的cmd文件 - 走看看 (zoukankan.com)

2.4 DSP中断

中断PIE即外设设备发出中断,统一到CPU进行处理操作。

DSP中断管理分为3个层次:外设级,PIE级,CPU级。
其中,外设级中断管理负责具体外设中断源的允许与禁止,PIE级中断管理负责对外设级中断分组并按照优先级管理,CPU内核级中断管理则负责处理直接向CPU申请的中断请求。

DSP控制器的外设中断扩展模块(PIE),对中断进行集中化扩展,使每一级CPU中断均可以响应多个中断源。

DSP入门:中断PIE_剑起沧澜的博客-CSDN博客_pie中断

TMS320F28335中断向量表

在 F28335 中采用 PIE 中断向量表来解决上述问题,通过 PIE 中断向量表使得 96 个可能产生的中断都有各自独立的 32 位入口地址。PIE 向量表由 256X16B的 SRAM 内连续存放,如果这部分空间不用作 PIE 模块时,可用作数据 RAM。复位时,PIE 向量表内容没有定义。 CPU 的中断优先级有高到低依次是从INT1-INT12。每组 PIE 控制的 8 个中断优先级依次是从 INTx.1-INTx.8。PIE 向量表如下所示:

TMS320F28335中断向量表_虹月铺江船的博客-CSDN博客_28335中断向量表

2.5 DSP硬件环境

首先我们需要知道运行DSP所需的最基本的硬件组件,也就是大家平时所说的最小系统。
只要DSP有了最小系统,他就能够正常运行起来,实现基本的功能。如果还需要什么功能,只需要在这个基础上增加一些外设就行了。
DSP的最小系统包括:时钟电路、电源电路、外部连接电路、复位电路
时钟电路
时钟电路,号称数字电路的心脏,其重要性可想而知。这里所说的时钟电路,是DSP的外部时钟电路,DSP内部也内嵌有时钟,只不过时钟的频率低一点,精度差一点。一般来说,所有的数字芯片都会有外部时钟电路的。

电源电路
电源电路,就是供电的。

外部连接电路
外部连接电路,是指如:串口,JTAG这样的能够与上位机通信的连接电路。做DSP开发,JTAG接口是必不可少的,它既能用于下载程序,也能用于调试代码。说到JTAG,必须要提到一个东西–DSP仿真器。仿真器是个什么东西?JTAG是个接口,仿真器就是有JTAG接口的调试工具,它本身也是个电路板,它两端有接口,用于连接DSP和电脑。仿真器的usb口插入电脑,JTAG接口插入DSP的外部链接电路上的JTAG口上,通电之后,就实现了电脑与DSP之间的连接。

复位电路
复位电路,就是在上电的时候,将DSP的一些特殊寄存器置于初始状态,确定DSP的工作模式,给DSP的硬件和软件一个确定的、唯一的起点。当然,除了上电,一般也有按键复位。

2.6 DSP实验参考

(一)DSP28335基础教程——GPIO输出(流水灯实验)_Sk Electronics的博客-CSDN博客_dsp流水灯

2.7 DSP中GPIO的寄存器

DSPF28069——GPIO寄存器记录1_sxhpai的博客-CSDN博客_gpamux1和gpamux2

2.8 时钟

时钟相关寄存器

外设时钟控制寄存器PCLKCR0、PCLKCR1、PCLKCR2、PLCLKCR3
低速外设时钟预分频器寄存器LOSPCP
内部振荡器调整寄存器(INTOSCnTRIM)
时钟寄存器(XCLK)
时钟控制寄存器(CLKCTL)
PLL控制寄存器、PLL状态寄存器、PLL锁定周期寄存器(PLLCR、PLLSTS、PLLLOCKPRD)
PLL2控制寄存器、PLL2乘法寄存器、PLL2锁存状态寄存器(PLL2CTL、PLL2MULT、PLL2STS)
SYSCLK2计数器寄存器(SYSCLK2CNTR)
EPWM DMA/CLA配置寄存器(EPWMCFG)

DSPF28069——时钟记录5_sxhpai的博客-CSDN博客

三、问题记录

3.1 PieCtrlRegs.PIEACK.all = PIEACK_GROUP7

例: PieCtrlRegs.PIEACK.all=PIEACK_GROUP1;//中断已应答,可以从组1接收更多中断

除了PIEACK_GROUP7还可以设置其他参数,例如在收发通讯的时候

interrupt void scia_Tx_isr() {

PieCtrlRegs.PIEACK.all=M_INT9;

}

四、经验记录

1.GPIO口有输入输出选项,这是和IO口不同的地方

2.在一个n×n的矩阵键盘,要识别其中的某一个按键是否被按下,可以采用逐行扫描的方法

3.数组可以直接传入到指针里面

#include <stdio.h>/* 函数声明 */
double getAverage(int *arr, int size);int main ()
{/* 带有 5 个元素的整型数组  */int balance[5] = {1000, 2, 3, 17, 50};double avg;/* 传递一个指向数组的指针作为参数 */avg = getAverage( balance, 5 ) ;/* 输出返回值  */printf("Average value is: %f\n", avg );return 0;
}double getAverage(int *arr, int size)
{int    i, sum = 0;      double avg;          for (i = 0; i < size; ++i){sum += arr[i];}avg = (double)sum / size;return avg;
}

嵌入式开发之DSP学习相关推荐

  1. 视频教程-物联网嵌入式开发之STM32 和 RT-thread-物联网技术

    物联网嵌入式开发之STM32 和 RT-thread 我叫连志安,现任职广东长虹技术研究所(国企).之前在康佳集团(国企).CVTE(上市公司)等公司任职.负责过Android TV.智能网关.路由器 ...

  2. 嵌入式开发之zynqMp ---Zynq UltraScale+ MPSoC 图像编码板zcu102

    嵌入式开发之zynqMp -Zynq UltraScale+ MPSoC 图像编码板zcu102 1.1 xilinx zynqMp 架构 1.1.1 16nm 级别工艺 Zynq UltraScal ...

  3. 嵌入式linux基本指令,成都嵌入式开发之Linux常用命令大全

    原标题:成都嵌入式开发之Linux常用命令大全 Linux系统中有很多命令,使用Linux系统最常用的就是命令操作,而不是像Windows一样,使用鼠标操作.Linux中许多常用命令是必须掌握的,也有 ...

  4. Swift网络开发之NSURLSession学习笔记

    为什么80%的码农都做不了架构师?>>>    Swift网络开发之NSURLSession学习笔记 先上效果图:        功能: -单个任务下载 -暂停下载任务 -取消下载任 ...

  5. 嵌入式开发之NorFlash 和NandFlash

    嵌入式开发之NorFlash 和NandFlash 转自:http://blog.csdn.net/tigerjb/article/details/9322035 [摘要]:作为一个嵌入式工程师,要对 ...

  6. 嵌入式开发之Qt-5.9.6应用程序开发环境搭建

    参考文档 嵌入式开发之Qt-5.9.6交叉编译(带WebEngine) Qt-5.9.6 linux安装包官方下载地址 Qt-5.9.6 linux安装包百度云下载地址 开发环境介绍 主机操作系统:U ...

  7. 专科生的嵌入式开发之路

    俗话说的好,高中不努力,大学指定没戏,哈哈,谁说的,当然是我说的.高考结束了,我成功以320分的优异成绩成为了一个地道的专科生,高中玩嗨了,这回选志愿就傻眼了,这点分可选的学校并不多,要不再复习一年? ...

  8. 嵌入式开发之davinci--- DVRRDK, EZSDK和DVSDK这三者有什么区别

    下载的时候选择信息要避免security类型的产品,这个是要审查的. DVRRDK是专门针对DVR的开发包是非公开的,针对安防的客户定制的,效率要高. EZSDK是开放的版本架构上使用openmax可 ...

  9. 毕业这几年的嵌入式开发之路

    大家好,我是写代码的篮球球痴 今天分享一篇文章,这篇文章的主人公总结了他这些年来的嵌入式之路,希望对大家的职业规划有所帮助. 在毕业即失业的年代,来看一位朋友是如何玩转嵌入式开发的,献给迷惘的你. 出 ...

  10. 嵌入式开发之路,从51单片机开始

    关注.星标公众号,直达精彩内容 来源:技术让梦想更伟大 作者:李肖遥 嵌入式开发入门之路 我相信很多朋友第一次接触的单片机应该就是51单片机,8位的mcu,丰富的教程,可以做很多小玩意,让初学者基本掌 ...

最新文章

  1. 超融合刚刚好——蓝色光标成功应用联想超融合解决方案
  2. python软件安装步骤-一篇非常棒的安装Python及爬虫入门博文!
  3. 大整数乘法---FFT算法
  4. 别为iptables日志付出太多-一种Linux防火墙优化方法
  5. SAP UI5 初学者教程之二十八 - SAP UI5 应用的集成测试工具 OPA 介绍试读版
  6. 研究生开题报告需要注意的几点
  7. Java 的内存管理机制是怎样的?
  8. 基于微博数据对突发性环境污染事件公众感知变迁研究
  9. matlab handle plot
  10. [预告]将要推出编程方式事务管理祥解!
  11. 柯洁:我受够了AI围棋;联发科校园招聘,应届生年薪约45万元;Chrome 100发布 | 极客头条...
  12. 编程开发必须用到的工具书MSDN中文版
  13. linux是手机端还是电脑端,pc端是什么意思(pc端和移动端有什么区别)
  14. B Start - 哔哩哔哩校招入职成长营
  15. 思科路由器虚拟服务器,解读CISCO路由器基本设置方法
  16. 俄亥俄州立大学哥伦布分校计算机科学,【精选】俄亥俄州立大学哥伦布分校计算机科学与工程本科专业申请.pdf...
  17. 2020年总结:敏而多思,宁静致远——纪念这风雨兼程的一年
  18. 命题作文:在一棵IPv4地址树中彻底理解IP路由表的各种查找过程
  19. 快速打开 控制面板下网络和 Internet下的网络连接
  20. 北都南, 神月あおい - 小悪魔lovers

热门文章

  1. 局域网桌面共享软件(Java版)
  2. 破解zip,WinRaR等压缩包加密
  3. S变换在特征提取中的使用
  4. 【杂文】总结专访李运华一文
  5. 【Proteus仿真】PCF8591 AD电压采集8X8点阵显示
  6. Android和ios的区别
  7. 【知识总结】有关前端安全的面试题总结
  8. OSAL动态内存分配
  9. 试卷模板 html,试卷模板怎么转换a4Word
  10. 10页PPT,看懂 SaaS 客户生命周期