dsp 第四章1
《DSP系统设计及应用》第四章
22
4.4 指令简介
4.4.1 内存寻址方式 C3x系列支持 组寻址方式。 系列支持4 ‘C3x系列支持4组寻址方式。每种寻址方式又支持两种或两种以上 的寻址类型。 的寻址类型。 (1)通用指令寻址方式 指令中包括2个操作数(1 ,1目的 通用指令寻址方式: (1源 目的) (1)通用指令寻址方式:指令中包括2个操作数(1源,1目的) 寄存器寻址:操作数是CPU的寄存器。 CPU的寄存器 寄存器寻址:操作数是CPU的寄存器。 立即数寻址:操作数是16位或24位的立即数。 16位或24位的立即数 立即数寻址:操作数是16位或24位的立即数。 直接寻址:操作数是24位地址指向的内容, 24位地址是由 24位地址指向的内容 位地址是由8 直接寻址:操作数是24位地址指向的内容,这24位地址是由8位的数 据页指针和16位的操作数连接而成。 16位的操作数连接而成 据页指针和16位的操作数连接而成。 间接寻址:通过一个辅助寄存器指示出操作数的地址。 间接寻址:通过一个辅助寄存器指示出操作数的地址。 (2)三操作数指令寻址方式 指令中包括3个操作数(2 ,1目的 三操作数指令寻址方式: (2源 目的) (2)三操作数指令寻址方式:指令中包括3个操作数(2源,1目的) 。 寄存器寻址:同通用指令寻址方式中的寄存器寻址。 寄存器寻址:同通用指令寻址方式中的寄存器寻址。 间接寻址:同通用指令寻址方式中的间接寻址。 间接寻址:同通用指令寻址方式中的间接寻址。 (3)并行指令寻址方式 两条指令并行绝对地址的寻址方式。 并行指令寻址方式: (3)并行指令寻址方式:两条指令并行绝对地址的寻址方式。 寄存器寻址:操作数是增强精度寄存器。 寄存器寻址:操作数是增强精度寄存器。 间接寻址:同通用指令寻址方式中的间接寻址。 间接寻址:同通用指令寻址方式中的间接寻址。 (4)分枝指令寻址方式 根据操作数特定位不同值执行不同操作。 分枝指令寻址方式: (4)分枝指令寻址方式:根据操作数特定位不同值执行不同操作。 寄存器寻址。同通用指令寻址方式中的寄存器寻址。 寄存器寻址。同通用指令寻址方式中的寄存器寻址。 程序记数器相对寻址:在程序计数器指针的基础上加上16位或32 16位或32位 程序记数器相对寻址:在程序计数器指针的基础上加上16位或32位 的偏移量。 的偏移量。
DSP完整课件第4章
4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 系统配置寄存器 中断优先级和中断向量表 外设中断扩展控制器 中断响应的过程 中断响应的等待时间 CPU的中断寄存器 复位和无效地址检测 外部中断控制寄存器
作业:11) 240x中断系统结构特点 12)中断响应过程 13)主中断服务程序与外设中断服务子程序的任务
2010退出Βιβλιοθήκη 4.2 中断优先级和中断向量表
CPU级中断向量表及优先级
K值 0 1 2 3 4 5 6 7 8 9 16 17 18 19 ... 31
2010
CPU中断向量 0000h 0002h 0004h 0006h 0008h 000Ah 000Ch 000Eh 0010h ... 0020h 0022h 0024h 0026h ... 003Eh
2010
退出
中断系统
240x的2级(层次)中断结构。
(1) CPU内核级(顶层)中断(INT1~INT6)
(2) 外设级(底层)中断 利用6个内核级中断扩展38个外设级中断。
(2) 外设级(底层)中断 每级可屏蔽的CPU级中断(INT1~6)又对应多个外设级中 断源,每个外设级中断源具有唯一的中断入口地址向量,它 们构成了外设级中断向量表。 • 外设中断向量表 用来获取响应外设中断服务子程序。一般存放跳转到外 设中断服务子程序的跳转指令。 • 外设中断服务子程序 完成具体中断要实现的功能。
优先级 1 4 5 6 7 8 9
中断名称 RS INT1 INT2 INT3 INT4 INT5 INT6
INT8
INT16 TRAP NMI ... INT31
3 2
说明 硬件上电复位中断(不可屏蔽) 1号可屏蔽中断 2号可屏蔽中断 3号可屏蔽中断 4号可屏蔽中断 5号可屏蔽中断 6号可屏蔽中断 保留 用户自定义软件中断 .... 用户自定义软件中断 陷阱软件中断 NMI软件中断 保留 ... 用户自定义软件中断
dsp-第4章
2
DFT是信号分析与处理中的一种重要变换。但直 接计算DFT的计算量与变换区间长度N的平方成正 比,当N较大时,计算量太大,直接用DFT算法进 行谱分析和信号的实时处理是不切实际的。 1965年库里和图基发现了DFT的一种快速算法, 使DFT的运算效率提高1-2个数量级,为数字信 号处理技术应用于各种信号的实时处理创造了条 件,推动了数字处理技术的发展。 1984年,提出了分裂基快速算法,使运算效率进 一步提高;
X1(0) X1(1) X1(2) X1(3) X2(0) X2(1) X2(2) X2(3) WN0 WN1 WN2 WN3
X (0) X (1) X (2) X (3) X (4) X (5) X (6)
L=1级
L=2 N=8点DIT-FFT运算流图
L=3
X (7)
18
8点基2DIT-FFT算法
k N
14
(3)第二次分解: 将x1(r)按r取奇、偶可分解成2个长度为N/4的子序列 x3(l)= x1(2l)、 l=0,1,…,N/4-1; x4(l) = x1(2l+1),
根据上面推导可得:X1 (k)= X3(k)+ WN/2k⋅X4(k), k=0,1,…,N/2-1
X1 (k)=X3(k)+WN/2k⋅X4(k), k=0,1,…,N/4-1; X1 (k+N/2)=X3(k)−WN/2k⋅X4(k), k=0,1,…,N/4-1;
24
(3)序数重排
对按时间抽取FFT的原位运算结构,当运算完毕时, 正好顺序存放着 x(0), x(1), x(2), … x(7), 因此可直接按顺序输出, 但这种原位运算的输入 x(n)却不能按这种自然顺 序存入存储单元中,而是按x(0),x(4),x(2), x(6),…,x(7)的顺序存入存储单元,这种顺序看起 来相当杂乱,然而它也是有规律的。当用二进制表示 这个顺序时,它正好是“码位倒置”的顺序。 例如,原来的自然顺序应是 x(1)的地方,现在放着 x(4),用二进制码表示这一规律时, 则是在 x(0 0 1)处放着 x(1 0 0), x(0 1 1)处放着 x(1 1 0)。
DSP第四章
位8:保留 位7:ADC CLKEN,ADC模块时钟使能控制位 0-禁止ADC模块时钟(节能) 1-使能ADC模块时钟,且正常运行 位6:SCICLKEN,SCI模块时钟使能控制位 0-禁止SCI模块时钟(节能) 1-使能SCI模块时钟,且正常运行
位5:SPICLKEN, SPI模块时钟使能控制位 0-禁止SPI模块时钟(节能) 1-使能SPI模块时钟,且正常运行 位4:CANCLKEN, CAN模块时钟使能控制位 0-禁止CAN模块时钟(节能) 1-使能CAN模块时钟,且正常运行 位3:EVBCLKEN, EVB模块时钟使能控制位 0-禁止EVB模块时钟(节能) 1-使能EVB模块时钟,且正常运行
如这些引脚作I/O使用,则不使用输入时钟限定电路
位5:WD保护位,该位可用来禁止WD工作。该位 是-个只能清除的位,复位后=1。通过向该位写 1对其清0。
0-保护WD,防止WD被软件禁止。 1-复位时的默认值,能够通过软件禁止WD工作 位4:XMIF HI-Z。该位控制外部存储器接口信号 (XMIF)。 0-所有XMIF信号为正常驱动模式(非高阻态)。 1-所有XMIF信号处于高阻态。
外设中断请求寄存器和外设中断应答寄存器 都属于外设中断扩展模块用来向CPU产生INT1INT6中断请求的内部寄存器。这些寄存器用于测 试目的,编程时可以忽略。用户只能对其读。 1.外设中断向量寄存器(PIVR) 外设中断向量寄存器(PIVR)映射在数据存储 器空间中的地址为701Eh,该寄存器的16位V15- V0,为最近一次被应答的外设中断的地址向量。
中断请求(PIRQ)标志位一直保持到中断应答自动 清除或用软件将其清除。 在高层次中断,或逻辑运算的多个外设中断请求 INTn产生一个到CPU的中断请求,它是2个CPU时 钟脉冲宽的低电平脉冲。 当多个外设同时发出中断请求时,CPU总是响应 优先级高的中断请求。 注意:外设中断请求标志位是在CPU响应中断时 自动清除,即在高层次中断时清0,而不是在低层 次中断时,清0。
DSP原理与应第四章.ppt
1.HPI与主机的连接
HCNTL0、
主机控制信号,与主机地址线
HCN或TL控1:制线连接,用来选择主机所要寻址的寄
存器。
HCNTL0 HCNTL1
功能说明
0
0
主机可以读/写HPIC寄存器。
主机可以读/写HPID寄存器。
0
1
每读1次,HPIA事后增1;
每写1次,HPIA事先增1。
1
0
主机可以读/写HPIA寄存器。 这个寄存器指向HPI存储器。
可以访问HPI RAM,而’C54x则配置为最小功耗
。 2021年2月25日
DSP原理及应用
4
第4章 TMS320C54x的片内外设、接口及应用
4.1 ’C54x的主机接口
HPI口可以支持主设备与’C54x之间的高速 数据传送。
在SAM工作方式时,若HPI每5个CLKOUT周 期传送一个字节,则主机的运行频率可达(fd×n)/5 。 f在d—H—OM’方C5式4x时的,C主LK机O可UT以频获率得;更高的速度。 即每5n—0n—s寻主址机一每个进字行节一(次即外16部0寻M址bp的s)周,期且数与,通 常 ’nC是543x(的或时4)钟。速度无关。
1.HPI与主机的连接
HPI与主机连接的信号名称和功能:
HD0~HD 双向并行三态数据总线,与主机数据总
7:
线相连。
当不传送数据(HDSx或HCS=1)或EMU1/OFF=0(切 断所有输出)时,HD7~HD0均处于高阻状态。
HCS: 片选信号,与主机地址线或控制线相连。
作为HPI的使能输入端,在每次寻址期间必须 为低电平,而两次寻址之间也可以停留在低电平。
第4章 TMS320C54x片内外设、接口及应用
DSP4-1
0
1个
2 N
0 N
、W ,
1 N 3 、W N2、W N,
N 1 2 N
2个 4个
第三列 4种类型运算 系数 WN、W ……
0
0 1 2 第M列 N/2种类型运算 系数 WN、W N、W N .......W
, 共N/2 个
4.2.3按时间抽取的FFT算法的特点
(6) 存储单元
原位运算共需:N个单元存放 x(n)以及N/2 个单元存放 (k=0,1,……,N/2 –1)
第4章 快速傅里叶变换(FFT) 要点:有限长序列可以通过离散傅里 叶变换(DFT)将其频域也离散化成有限长 序列.但其计算量太大, 很难实时地处理问 题, 因此引出了快速傅里叶变换(FFT) . FFT 并 不 是 一 种 新 的 变 换 形 式 , 它 只 是 DFT的一种快速算法.并且根据对序列分 解与选取方法的不同而产生了FFT 的多 种算法. FFT在离散傅里叶反变换、线性 卷积和线性相关等方面也有重要应用.
4.2按时间抽取的快速傅里叶变换算法
2 ( X (k ) DET [ x(n)] x(n)WNnk x1 (2r )WN rk x2 (2r 1)WN2 r 1) k n 0 r 0 r 0
N 1 2 r 0 N 1 2 r 0
N 1
N 1 2
N 1 2
N 1
0 n N 1
(n=0,1,...,N-1) .
4.1快速傅里叶变换
二者计算量相同, 因此以DFT为例, 则 完成整个DFT运算共需 N * N 次复数乘 法以及N * ( N - 1 ) 次复数加法. 即 4 * N * N 次实数乘法及2 N * ( 2 N - 1 ) 次实数 加法. 当 N=1024 时 , 直 接 DFT 算 法 需 复 乘 1,048, 576次, 所以要进行数字的实时处 理, 就必须设法减少其运算量.
数字信号处理DSP4-1
量化数据压缩:差分量化
xn yn xn xn 1
信号编码的数据压缩
当编码对象出现概率不同时,对出现概率大的 对象采用较短字长编码,可以有效降低数据量,变 字长编码的平均位数(字长)可以表达为
n
第k个对象的字长*第k个对象出现的概率
Huffman 编码
先对数据对象进行扫描,确定不同数据对象的 出现概率,然后根据不同概率进行编码。该方法被 广泛应用于各类数据压缩:rar、zip、JPEG 例:在3位量化时,具有8种可能的测量值;
am 1 N源自2 Nm0 1 m N 1
离散余弦变换:DCT特点
对N个时间信号测量数据进行变换,得到N个频率 分量构成的频谱序列; 时间序列和频谱序列均为正区间中的N点实数序 列; 运算只涉及实数乘法,可以建立快速算法;
变换具有低通特点,用于声音和图象处理时,数
采样频率与数据
数字电话音质:8K (200HZ-3.4kHZ)
调幅广播音质:11K
调频广播音质:22K
CD音质: 44K CD VCD MP3
专业音质:48K
专业音频 DVD
量化数据压缩:非等距量化
根据听觉的对数效应,采用压扩技术进行非等 距量化,可以在保持听觉精度的条件下有效降低量 化位数。
量化数据压缩:非等距量化
数字信号处理
第四章 数据压缩系统
音频信号的压缩
差分量化与霍夫曼编码
变换压缩与DCT原理
数字信号的数据量
音频信号:频率范围20—20K 采样频率:40K 量化位数:16bit
数据量:640K bps
信号存储时占用大量存储资源; 信号传输时占用大量频带资源。
数据压缩
DSP的开发环境第四章
TI DSP有那些开发工具?
TI公司为TMS320系统的集成与调试 所提供的工具包括:
软仿真器(Simulator)-------软件仿真器 DSP入门套件(DSK,DSP Starter Kit) 标准评估模块(EVM) 扩展开发系统XDS(eXtended Development System)---------硬件仿真器需软件配合使用 集成开发软件CCS(Code Composer Stdio)
归档器允许用户将一组文件归入一 个档案文件(库)。例如,将若干 个宏归入一个宏库,汇编器将搜索 这个库,并调用源文件中使用的宏。 也可以用归档器将一组目标文件收 入一个目标文件库,连接器将连接 库内的成员,并解决外部引用
DSP的开发环境第四章
交叉引用列表器 (Cross-Reference Lister)
连接器(Linker)
连接器的基本任务是将目标文件 连接在一起,产生可执行模块。连 接器可以接受的输入文件包括汇编 器产生的COFF目标文件、命令文件、 库文件、以及已部分连接好了的文 件。它所产生的可执行COFF目标模 块可以装入各种开发工具,或由 TMS320器件来执行
DSP的开发环境第四章
归档器(Archiver)
DSP的开发环境第四章
通用优化
优化转移/简化控制流 分析程序的转移情况,重新安排操作 顺序,消去转移或多余的条件
在循环中总是计算同样值的表达式, 移到循环外面
DSP的开发环境第四章
通用优化
优化循环相关变量,例如:
为数组元素设置下标的代码改为指 针增量的代码; 用计数器控制的循环写成块循环, 或使用高效的增/减量转移指令
DSP的开发环境第四章
软仿真器的性能在主机上执行 Nhomakorabea户的DSP程序
DSP第四章课后答案
r cos x ( n) x1 z 1 r sin z 1 r sin
解:根据图中所设节点:
y ( n)
r cos
X 1 ( z ) X ( z ) rz 1Y ( z ) sin rz 1 X 1 ( z ) cos
解: 先写出网络中每个加法器的节点方程,节点标注如下:
x(n) b(0) b(1) b(2) y(n)
z 1
a(1)
z 1
a(2)
节点1
节点2
节点3
用 w1 (n), w2 ( n), w3 ( n) 表示 3 个节点的输出,则有以下 3 个方程:
w1 (n) b(0) x(n) a(1) y (n) w2 (n) b(1) x(n) w1 (n 1) a(2) y (n) w3 (n) b(2) x(n) w2 (n 1) y (n)
题(2) : 由(1) ,根据等比数列的前n项和,即可得到
1 1 a8 z 8 H ( z ) (1 a z ) 1 az 1 1 az 1
8 8
由此可画出由 FIR 系统和 IIR 系统级联而成的结构图,如下所示:
z8
a8
a
z 1
题(3) : (2)中的实现需要延迟器较多, (1)中的实现需要运算次数较多。
对上述方程作 z 变换,最终得到
1 2 1 2 W ( z) 1 a(1) z a (2) z a(3) z a(4) z V ( z)
所以, G ( z )
W ( z) a (3) z 1 a (4) z 2 , V ( z ) 1 a (1) z 1 a (2) z 2
DSP第四章
片 上 程 序 / 数 据 存 储 器
程序 0000 3FF 400
Block M1 1K×16 RAM M0中的向量表 (VMAP=0) Block M0 1K×16
Vector(VMAP=1)
F2812程序和数据空间映射 程序和数据空间映射
FFFF FFFF
4.1 存储器
片上程序/数据存储器 片上程序 数据存储器
C28x包含两个单周期访问的存储器 包含两个单周期访问的存储器SARAM. 包含两个单周期访问的存储器 存储器空间: ▲ 存储器空间: √低64K×16位地址为 位地址为000000h~00FFFFh,可等价于 的数据空间; × 位地址为 ~ ,可等价于C24x/240x的数据空间 / 的数据空间 √高64K×l6位地址为 位地址为3F0000h~3FFFFFh,可等价于 的程序空间. × 位地址为 ~ ,可等价于C24x/240x的程序空间. / 的程序空间 片内SARAM:为单口随机读/写存储器,在单个机器周期内只能被访问 ▲片内 :为单口随机读/写存储器,
通用I/O端口 4.2 通用 端口
GPIO寄存器 寄存器
GPIO口通过功能控制,方向,数据,设置,清除和反转触发寄存器来控制 口通过功能控制,方向,数据,设置, 口通过功能控制
功能选择寄存器, 工作在外设操作模式或数字量I/O模 ▲ GPxMUX——功能选择寄存器,配置 工作在外设操作模式或数字量 模 功能选择寄存器 配置I/O工作在外设操作模式或数字量 配置成I/O功能 式.在复位使所有GPIO配置成 功能. 在复位使所有 配置成 功能.
dsp-4
(5)在汇编语言中,注意在符号名前面加 上一个下划线,例如c_int00记为_ c_int00。 (6)中断程序使用的所有寄存器,包括状 态寄存器和程序中调用函数使用的寄存 器都必须予以保护。 (7)TMS320C54x C编译器将C语言进行 了扩展,中断可以利用interrupt关键字由 C/C++函数直接处理。
链接器有两个命令完成上述功能,即: MEMORY 命令——定义目标系统的存储 器配置图,包括对存储器各部分的命名, 以及规定它们的起始地址和长度。 SECTIONS命令——告诉链接器如何将输 入段组合成输出段,以及在存储器何处 存放输出段。子段可以用来更精确地编 排段,可用链接器SECTIONS命令指定子 段。
3.存储器分配 (1)运行时间支持函数。 (2)动态存储器分配。 (3)静态和全局变量的存储器分配。 (4)位域/结构的对准。
4.6.2 寄存器规则
寄存器规则明确了编译器如何使用寄存器以及 在函数调用过程中如何保护寄存器。 (1)辅助寄存器 (2)堆栈指针SP (3)ARP (4)在默认情况下,编译器总是假定ST1中的 OVM在硬件复位时被清0。若在汇编代码中对 OVM置位为1,返回到C环境时必须复位。 (5)寄存器变量
4.6 TMS320C54x C语言编程
4.6.1 4.6.2 4.6.3 4.6.4 4.6.5
存储器模式 寄存器规则 函数调用规则 中断处理 表达式分析
4.6.1 存储器模式
1.段 C54x将存储器处理为程序存储器和数据 存储器两个线性块。程序存储器包含可 执行代码;数据存储器主要包含外部变 量、静态变量和系统堆栈。编译器的任 务是产生可重定位的代码,允许链接器 将代码和数据定位进合适的存储空间。C 编译器对C语言编译后除了生成3个基本 段 , 即 .text 、 .data 、 .bss 外 , 还 生 成.cinit、.const、.stack、.sysmem段。
第4章 4.1节
的符号,用-c选项可以使汇编器不区分大小写;
声明符号——可以在其他程序中使用
DSP内部的寄存器名是汇编器已预先定义的全局符号。
常用汇编命令:
1、 .title: 标识源程序 .title “learn10.asm”
2、 .end: 结束汇编命令,放在程序的最后
3、 .text: 标识汇编程序的开始 可执行程序代码
;code follows… #0,SWWSR #STACK+10H,SP #a,AR1 #7 table, *AR1+ SUM end #a, AR3 #x, AR4 RPTZ #3 *AR3+,*AR4+A A, @y
4.2.2 汇编语言常量 C54x汇编器支持7种类型的常量: 1. 二进制整数:最多由16个二进制数字组成,其后缀为B(或b) . 2. 八进制整数:最多由6个八进制数字组成,其后缀为Q(或q)。 3. 十进制整数:由十进制数字串组成
第4章 DSP软件开发过程
第4章 TMS320C54x的软件开发
TMS320C54x提供两种语言:
汇编语言
C/C++语言。
当源程序编写好后,就要选择开发工具和环境。 TMS320C54x提供两种开发环境:非集成开发环境和 集成开发环境。
C 源文件
宏源文件 C 编译器 助记符指令 转换为 代数指令
其中,标号是任选项:macname为宏名,要写在助记 符的位置上;在宏名的后面是要代真的参数(实参 数),参数的数目应与宏定义中的数目相等。
3.
4.
已初始化段的功能 用于存放可执行程序代码或初始化数据,加载程序 时,这些段中的内容会被存放到C54X的存储器中, 初始化段可重新定位 指令:.text [段起点] .data [段起点] .sect “段名” [,段起点] 汇编器对段的处理过程 汇编器遇到.text、.data或.sect命令时,停止对当前 段的汇编,将紧接着的程序代码汇编到指定的段中, 直到再遇到或命令为止。 汇编遇到.bss或.usect命令时,不结束当前段的汇编, 只是暂时从当前段脱离出来,并开始对新的段汇编。
DSP第四章
第四章指令系统§4.1 寻址方式§4.2 语法格式§4.3 指令集XCHL《DSP原理及应用》讲稿1§4.1 寻址方式•TMS320提供三种寻址方式:•立即寻址•直接寻址•间接寻址•立即寻址操作数由指令提供,前面加#–短立即数寻址:8位、9位或13位,操作数在指令字中–长立即数寻址:16位,操作数需单独占一个字–返回本章首页XCHL《DSP原理及应用》讲稿2§4.2 语法格式返回本章首页•DSP汇编语言语法操作码【操作数】;【注释】–操作码:表明指令功能的助记符,‘C24X的指令集中共有86种。
–操作数:给出变量或变量的寻址方式–注释•指令中各种符号及其含义参见教材P118表4.3•DSP指令的存储空间指令集中大部分是单字指令,其余都是双字指令,它们的操作数基本都是长立即数。
•DSP指令的执行时间大部分是单周期指令,有部分双周期指令、三周期指令和四周期指令。
XCHL《DSP原理及应用》讲稿6§4.3 指令集按照功能划分,DSP指令集中共有86种指令代码,配合不同的寻址方式,可变化出多条指令。
这些指令大体上可分为四种:•数据传送类:共30种助记符•算术运算类:共22种助记符•逻辑运算类:共13种助记符•分支转移类:共21种助记符返回本章首页XCHL《DSP原理及应用》讲稿7§4.3.1数据传送类指令返回本节首页共30种操作助记符。
其中包括各种寄存器的装载指令14种,寄存器值的存储指令4种,堆栈操作4种,数据或程序存储器的读写6种,I/O单元读写2种。
•装载寄存器•存储寄存器值•堆栈操作•读写数据或程序存储器•读写I/O单元XCHL《DSP原理及应用》讲稿8装载寄存器•装载累加器–LACC:左移装载累加器•LACC dma [,shift]•LACC dma ,16•LACC ind [,shift[,ARn]]•LACC ind ,16[,ARn]•LACC #lk [,shift]–LACL:装载累加器低位并清累加器高位•LACL dma•LACL ind[,ARn]•LACL #k–LACT:按TREG规定左移后再转载入累加器•LACT dma•LACT ind[,ARn]–PAC:用乘积寄存器PREG装载累加器,移位方式由ST1中的PM 确定•PAC返回次节首页XCHL《DSP原理及应用》讲稿9•装载临时寄存器TREG–LT:将指定数据存储器的内容装入TREG。
dsp5000指导书 第四章
第4章定时器及硬件中断4.1定时器硬件结构原理TMS320VC5509 DSPs有两个独立20-bit的软件可编程通用减数计数定时器,可用于产生周期中断给CPU或给DMA控制器发送周期同步事件或给外部设备提供周期信号,也可以用于外部事件计数。
20-bit的通用定时器是减数计数器,它由两部分组成:4位预分频计数器(PSC)和16位主计数器(TIM),定时器结构框图如图4-1所示。
4-1通用定时器结构框图预分频计数器PSC由输入时钟驱动,可以是内部CPU时钟或外部时钟(当FUNC=11b时使用外部时钟,从TIN/TOUT引脚输入,当FUNC为其它值时使用内部CPU时钟),每输入一个时钟PSC减1。
每当PSC减到0,主计数器TIM减1,每当TIM 减到0,定时器给CPU发出一个中断请求TINT,一个同步事件TEVT给DMA控制器和一个输出到定时器引脚(如果FUNC=01b)。
定时器输出速率为:)1()1++=PRD TDDR TINT (输入时钟频率频率 式中: )1()1(++PRD TDDR >4预分频寄存器PRSC 由两部分组成:预分频周期寄存器TDDR 和预分频器PSC ,如图4-2所示;预分频器PSC 减到0时,当再有一个输入时钟输入时,预分频器PSC 从预分频周期寄存器TDDR 重新装载预分频器PSC ,当定时器设定为自动装载模式时(ARB=1)。
周期寄存器PRD 和计数器TIM 都为16位寄存器。
计数器TIM 减到0时, TIM 从PRD 重新装载,当定时器设定为自动装载模式时(ARB=1)。
定时器控制寄存器TCR 如图4-3所示,使用它的特定位可以实现对定时器进行配置、启动、停止、装载和重新装载等,表4-1是对定时器控制寄存器TCR 每位进行说明。
R=读 W=写 -n=复位值图4-3 定时器控制寄存器TCR定时器引脚功能模式合法转换如图4-4所示,FUNC 位的某些改变会产生一个错误并反映在ERRTIM 位,FUNC = 01b 到 FUNC = 00b 或 11b ,FUNC = 10b 到 FUNC = 00b 或 11b ,FUNC = 11b 到任意值都会产生一个错误,当ERRTIM = 1,复位DSP 并重新初始化定时器。
DSPchapter04
§4.2 The Frequency
Response
• The function | H(ej) | is called the magnitude response and the function () is called the phase response of the LTI discrete-time system
§4.3 Frequency Response
Computation Using MATLAB
• The function freqz(h,w) can be used to determine the values of the frequency response vector h at a set of given frequency points w
NdkzkY(z) MpkzkX(z)
k0
k0
where Y(z) and X(z) denote the z-transforms of y[n] and x[n] with associated ROCs, respectively
§4.1 LTI Discrete-Time Systems
• It is easier to design and implement these systems in the transform-domain for certain applications
• We consider now the use of the DTFT and the z-transform in developing the transformdomain representations of an LTI system
• Such systems are called digital filters and one of the main subjects of discussion in this course
DSP原理第四章(1)
.
第四章 C54x应用程序开发及仿真
● SPC对段的处理
汇编器为每个段都安排了一个单独的程序计数器称之为段程序计数 器SPC。
SPC表示在程序代码或数据段内当前的地址。开始时汇编器将每个 SPC置0。
(1)第一次遇见新段时,SPC置为0; (2)紧随的同类型程序代码或数据加到段内时,增加相应的SPC 值; (3)相隔的同类型程序代码或数据合并计数,相应的SPC就在先 前的数值上继续增加。
****************************************
.sect
“vectors”
.word
044h,088h
汇编语言 源程序
25
.
第四章 C54x应用程序开发及仿真
无意义的行不计 入目标代码,如
生 第2~4行 成 的 目 标 代 码
26
.
第四章 C54x应用程序开发及仿真
链接器在链接时要对每个段进行重新定位。
22
.
第四章 C54x应用程序开发及仿真
2
**********************************
3
** 汇编一个初始化表到.data段 **
4
**********************************
5 0000
.data
6 0000 0044 coeff .word 044h,055h,066h
➢ 链接器
lnk500
?.cБайду номын сангаасd
➢ COFF
---- 公共目标文件格式 Common Object File Format
COFF采用代码段和数据段的形式,以便于模块化的编程,使编 程和管理更加方便。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
要 点
1.标号必须从第1列写起, 2.标号最多可达32个字符,可以是A~Z,a~z,0~9, _,以及$,但标号的第1个字符不能是数字。 3.引用标号时,标号的大小写必须一致。 4.标号的值就是段程序计数器SPC的值。 5.如果不用标号,则第一个字母必须为空格、分号 或星号(*)。
11
[标号][:] 空格 [助记符] 空格 [操作数] 空格 [;注释]
16
3.汇编命令 ⑶ 调整SPC的指令 如.align等。 ⑷ 对输出列表文件格式化的命令
如.drlist、.drnolist等。
⑸ 引用其他文件的命令
如copy、.def、.global、.include、.mlib、 .ref等。
17
3.汇编命令 ⑹ 控制条件汇编的命令 如.break、.else、.elseif、.endif、.endloop、 .if、.loop等。
25
2.列表文件 列表文件中包括源程序语句和目标代码
TMS320C54x COFF Assembler Version 3.70 Tue Oct 19 12:42:59 2004 Copyright (c) 1996-2001 Texas Instruments Incorporated example.asm PAGE 1 1 * * * * * * * * * * * * * * * * * * * * * * * * ** * * * * * * * 2 * example.asm y=a1*x1+a2*x2+a3*x3+a4*x4 * 3 * * * * * * * * * * * * * * * * * * * * * * * * ** * * * * * * * 5 .mmregs ;定义存储器映象寄存器 6 000000 STACK .usect "STACK",10h ;分配10个单元的堆栈空间 7 000000 .bss a,4 ;为系数a分配4个单元的空间 8 000004 .bss x,4 ;为变量x分配4个单元的空间 9 000008 .bss y,1 ;为结果y 分配1个单元的空间 10 .global _c_int00 ;定义标号
要点
可以是助记符指令、汇编指令、宏 指令和宏调用命令。 1.助记符指令,一般用大写; 2.汇编命令和宏命令,以句号“.‖ 开始,且为通常用小写。
12
建议
[标号][:] 空格 [助记符] 空格 [操作数] 空格 [;注释]
要点
1.指令中的操作数或汇 编命令中定义的内容 2.操作数之间必须用逗 号“,”分开。
第四章 DSP软件开发过程
内容提要 可编程DSP芯片开发需要一套完整的软、硬件开发工具。 通常可分成代码生成工具和代码调试工具两大类。 代码生成工具是指将高级语言或汇编语言编写的DSP程序 转换成可执行的DSP芯片目标代码的工具程序,主要包括汇 编器、链接器和C编译器以及一些辅助工具程序等。 代码调试工具包括C/汇编语言源码调试器、仿真器等。 本章主要介绍代码生成工具,包括’C54x软件开发流程、 汇编语言程序的编写、编辑、汇编和链接过程、COFF段的 一般概念、汇编器和链接器处理段的方法以及程序的重定位 等。
软件仿真器:是一种模拟DSP芯片各种功能并
在非实时条件下进行软件调试的调试工具,它不需 目标硬件支持,只需在计算机上运行。 初学者工具DSK:是TI公司提供给初学者进行 DSP编程练习的一套廉价的实时软件调试工具。
7
2. ’C54x的开发工具
(2)代码调试工具:
可扩展的开发系统仿真器(XDS510):可用来 进行系统级的集成调试,是进行DSP芯片软硬件开发 的最佳工具。 评价模块EVM板:是一种低成本的开发板,可 进行DSP芯片评价、性能评估和有限的系统调试。
1
第四章 DSP软件开发过程
第一节 汇编语言程序的编写方法
第二节
第三节
汇编语言程序的汇编
COFF的一般概念
第四节
目标文件的链接
2
软件开发过程
3
2. ’C54x的开发工具
(1)代码生成工具:
C编译器:用来将C/C++语言源程序自动编译为 ’C54x的汇编语言源程序。 汇编器:用来将汇编语言源文件汇编成机器语 言COFF目标文件。 链接器:将汇编生成的、可重新定位的COFF目 标模块组合成一个可执行的COFF目标模块。 文档管理器:允许用户将一组文件(源文件或 目标文件)集中为一个文档文件库。
要点
1.从分号“;”开始 2.可以放在指令或汇编命令后面, 也可以放在单独的一行或数行。
13
2.汇编语言源程序的数据型式
二进制:如1110001b或1111001B; 八进制:226q或572Q; 十进制:1234或+1234或-1234(缺省型) 十六进制:0A40h或0A40H或0xA40 浮点数:1.623e-23(仅C语言程序中能用,汇编程序不能用) 字符:‘D’ 字符串:“this is a string‖
24
1.运行汇编程序 汇编器是名为asm500.exe的可执行程序 axm500 [input file[object file[listing file]]][-options] 例如 axm500 cjy.asm -l -s -x 源程序cjy.asm经汇编后将生成一个cjy. obj目标 文件、列表文件、符号表(在目标文件中)以及交 叉引用表(在列表文件中)。
* * * *
例4-2 宏定义、宏调用和宏展开的一个例子。
add3
ADDRP=P1+P2+P3
;说明宏功能
add3
.macro p1,p2,p3,ADDRP ;定义宏 LD p1,A ADD p2,A ADD p3,A STL A,ADDRP .endm ;将参数1赋给A ;将参数2与A相加 ;将参数3与A相加 ;将结果A的低字存参数4 ;结束宏
4
2. ’C54x的开发工具
(1)代码生成工具:
助记符指令—代数式指令翻译器:用来将包含 助记符指令的汇编语言源文件转换成包含代数式指令 的汇编语言源文件。 建库实用程序:用来建立用户自己使用的、并 用C/C++语言编写的支持运行的库函数。 十六进制转换程序:可以很方便地将COFF目标 文件转换成TI、Intel、Motorola等公司的目标文件 格式。
8
第一节
汇编语言程序的编写方法
汇编语言程序的编辑、汇编和链接过程
9
1.汇编语言源程序的句法格式 要点 格式
[标号][:] 空格 [助记符] 空格 [操作数] 空格 [;注释]
以.asm为扩展名 每一行由4个部分组成
[ ]中的 内容为可 选择部分
供本程序的其它部分或其它程序调 用。标号是任选项,标号后面可以 加也可以不加冒号“:”。 10
⑺ 在汇编时定义符号的命令 如.asg、.endstruct、.equ、.eval、.label、 .set、.sruct等。
⑻ 执行其他功能的命令 如.algebraic、.emsg、.end、.mmregs、.mmsg、 .newblock、.sblock、.version、.vmsg等。
18
例4-1 编写计算y=a1*x1+a2*x2+a3*x3+a4*x4的汇编源程序 * * * * * * * * * * * * * * * * * * * * * * * * ** * * * * * * * * example.asm y=a1*x1+a2*x2+a3*x3+a4*x4 * * * * * * * * * * * * * * * * * * * * * * * * * ** * * * * * * * .title ―example.asm‖ ;为汇编源程序取名 .mmregs ;定义存储器映象寄存器 STACK .usect ―STACK‖,10h ;分配10个单元的堆栈空间 .bss a,4 ;为系数a分配4个单元的空间 .bss x,4 ;为变量x分配4个单元的空间 .bss y,1 ;为结果y 分配1个单元的空间 .def _c_int00 ;定义标号_c_int00 .data .word ;定义数据代码段 ;在标号table开始的8个单元 ;为这8个单元赋初值
4.宏定义和宏调用
宏指 令与 子程 序的 异同
(1)两者都可以被多次调用,但是把子程 序汇编成目标代码的过程只进行一次,而在 用到宏指令的每个地方都要对宏指令中的语 句逐条地进行汇编。 (2)在调用前,由于子程序不使用参数, 故子程序所需要的寄存器等都必须事先设置 好;而对于宏指令来说,由于可以使用参数, 调用时只要直接代入参数就行了。 (3)宏指令可以在源程序的任何位置上定 义,但必须在用到它之前先定义好。宏定义 21 可以嵌套。
.global abc,def,ghi,adr ;定义全局符号 000000 000000 000001 000002 000003 add3 1000! 0000! 0000! 8000! abc,def,ghi,adr ;调用宏 LD abc,A ;宏展开 ADD def,A ADD ghi,A STL A,adr
5
2. ’C54x的开发工具
(1)代码生成工具:
绝对制表程序:将链接后的目标文件作为输入, 生成.abs输出文件。 交叉引用制表程序:利用目标文件生成一个交
叉引用清单,列出链接的源文件中的符号以及它们的
定义和引用情况。
6
2. ’C54x的开发工具
(2)代码调试工具:
C/汇编语言源码调试器:与软件仿真器、评 价模块、软件开发系统、软件仿真器等配合使用。
15
3.汇编命令 ⑴ 对各种段进行定义的命令 如.bss、.data、.sect、.text、.usect等。 ⑵ 对常数(数据和存储器)进行初始化的命令 如.bes、.byte、.field、.float、.int、.log、 .space、.string、.pstring、.xfloat、.xlong、 .word等。