DSP第四章
《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第四章 TMS320C20X系列的寻址方式及汇编指令
LT *0+
执行指令前: ARP=1, (AR1)=100H,(AR0)=3 执行操作: 用AR1所指的数据存储器100H内 容装载暂时寄存器; 执行指令后: ARP=1,(AR1)=103H
⑤减去索引量
方法
举例
指令使用AR内容作
LT *0-
为数据存储器地址,
执行指令后AR内容 执行指令前:
自动减去ARO的内容。 ARP=1, (AR1)=100H,(AR0)=3
执行操作:
用AR1所指的数据存储器100H内
容装载暂时寄存器;
执行指令后:
ARP=1,(AR1)=FEH
⑥加上索引量,反向进位
方法
举例
指令使用AR内容作为 数据存储器地址,执 行指令后AR内容自动 加上AR0的内容,该 加法采用反向进位方 法。 注:主要用于FFT算 法
LT *BR0+
把AR0加到辅助寄存器中时,地址以位倒序的方 式产生,即进位是从左向右,而不是从右向左进位。
LTP ind [,ARn]
MAC MAC pma , dma
乘且累加
MAC pma, ind [ , ARn]
MACD MACD pma, dma
乘且累加,并将被寻址数据移至下一单元
MACD pma, ind [, ARn]
MPY MPY dma
MPY ind [, ARn]
MPYA/MPYS
累加前次乘积,再将TREG与被寻址数相乘
PAC PAC
PREG转入累加器ACC
SPH
存储PREG高16位,直接或间接寻址
SPL
存储PREG低16位,直接或间接寻址
例1:MAC
0FF00H,02H ;DP=6,地址300H~37FH,PM=0, CNF=1
数字信号处理DSP第4章
k 0,1, , N 1
2
13
4.2 按时间抽取(DIT)的基2–FFT算法
将系数统一为 WNk 2 WN2k ,则可得
x[0]
N 4点
x[4]
DFT
G[0]
X [0]
G[1]
X [1]
x[2]
N 4点
WN0
x[6]
DFT
WN2
G[2]
1 G[3]
1
X [2] X [3]
x[1]
N 4点
X m1[i] WNr X m1[ j] , X m1[i] WNr X m1[ j]
m 1, 2 ,
每一个蝶形需要一次复数乘法和两次复数加法。
17
4.2 按时间抽取(DIT)的基2–FFT算法
N点的DIT-FFT计算量为
复数乘法:
1
N 2
log2
N
N 2
复数加法:
2
N 2
log2
N
N
例: 如果每次复数乘法需要100us,每次复数加法需要20us,来 计算N=1024点DFT,则需要
12
4.2 按时间抽取(DIT)的基2–FFT算法
同理
( N 4)1
( N 4)1
G[k] DFT[g[r]]
g[2l]WN2lk2
g[2l 1]WN(22l1)k
l 0
l 0
( N 4)1
( N 4)1
g[2l]WNlk 4 WNk 2
g[2l 1]WNlk 4 ,
l 0
l 0
k 0,1,
(3) WN0 WN4 WN8 WN12 WN16 WN20 WN24 WN28
或 WN4i i 0,1, 2, 3, 4, 5, 6, 7 (dm 1)
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第四章6概论
1、变换原理 使数字滤波器的频率响应
与模拟滤波器的频率响应相似。
冲激响应不变法、阶跃响应不变法:时域模仿逼近 缺点是产生频率响应的混叠失真
:[,]
1
:
T
,
T
tg 1T 2
z es1T
tg 1T 2
sin 1T 2
cos 1T 2
j 1T
j 1T
e 2 e 2
2 j j 1T
c tg 1T 2
s
c
1 1
z z
1 1
z cs cs
2、变换常数c的选择
1)低频处有较确切的对应关系: 1
1
c
tg
1T 2
c
1T 2
c 2 T
2)某一特定频率严格相对应: c c
c
c tg
1cT 2
c tg c
2
c
cctg
Байду номын сангаас
c
2
特定频率处频率响应严格相等,可以较准确地 控制截止频率位置
4、优缺点
优点:避免了频率响应的混迭现象
c tg
2 s 平面与 z 平面为单值变换
0 0 0 0
缺点:除了零频率附近, 与 之间严重非线性
1)线性相位模拟滤波器 非线性相位数字滤波器
2)要求模拟滤波器的幅频响应为分段常数型,不 然会产生畸变
分段常数型模拟滤波器 经变换后仍为分段常数 型数字滤波器,但临界 频率点产生畸变
j 1T
e 2 e 2
2
j 1T
j 1T
s1T
s1T
s
j
e2
j 1T
e 2
j 1T
DSP原理及应用第四章
9
常用的汇编命令:
汇编命令 .title .end 作 用 .title "example.asm" 放在汇编语言源程序的最后 .text段是源程序正文。经汇编后,紧随.text后的是可执 行程序代码 有两种数据形式:.int和.word Table: .word 1,2,3,4 .word 8,6,4,2 表示在程序存储器标号为table开始的8个单元中存放初 始化数据1、2、3、4、8、6、4和2 .bss x,4表示在数据存储器中空出4个存储单元存放变 量x1,x2,x3和x4 .sect " vectors "定义向量表,紧随其后的是复位向量 和中断向量,名为vectors STACK .usect "STACK",10H在数据存储器中留出16 个单元作为堆栈区,名为STACK .def 举 例 紧跟其后的是用双引号括起的源程序名 结束汇编命令,汇编程序将忽略此后的任何源 语句,所以它应是程序的最后语句 紧跟其后的是汇编语言程序正文
分段的优点:在目标文件中将放置程 序、数据、变量的代码分开,便于在链 接时作为一个单独的部分分配存储器。 由于大多数系统都有好几种形式的存储 器,通过对各个段重新定位,可以使目 目标文件中的段与目标存 标存储器得到更为有效的利用。 储器之间的关系
17
2.外部符号的概念
外部符号 在一个模块中定义,可在另 一个模块中引用的符号。
25
段命令应用举例
汇编语言源程序: .data coeff .word 044h,055h,066h .bss buffer,8 prt .word 0456h .text add: LD 0Dh,A aloop:SUB #1,A BC aloop,AGEQ .data ivals .word 0CCh,0DDh,0EEh
DSP_第四-八章演示文档
4. 不同滤波器对信号的作用
4.2 差分方程流图 1.二阶非递归滤波器节的级联 2.流图方程 3.级联流图的方程 4.递归差分方程 例题:求出下图所示流图的滤波器差分方程
例:写出下图所示脉冲响应的滤波器差分方程
5.4 数字图像滤波
1. 数字图像及其灰度 2. 数字图像的滤波 ห้องสมุดไป่ตู้. 低通滤波的文字
第六章 z变换 6.1 常用z变换表 z变换的性质 1.举例 5.3 滑动平均滤波器
1. 举例
5.4 数字图像滤波 1. 数字图像及其灰度 2. 数字图像的滤波 3. 低通滤波的文字
第七章 傅立叶变换与滤波器形状 7.3.2 幅度相应和相位相应 1. 脉冲通过梳状滤波器 2. ‘hello’通过梳状滤波器 例:把数字信号x[n]=0.5cos(pi/4*n)加到如下数字滤波器上,求输出信号。
例:数字频率为1.5弧度的余弦波通过滤波器,在此频率下,滤波器增益为21dB,相位差为86度,如果输入幅度为20,相位为12度,则输出幅度和相 位是多少。 对于n=10和n=20求出y[n]的值。
推断滤波器形状:H(z)=1/(z-0.45)
第八章 数字信号频谱 8.1 频谱的意义 1. 正弦波合成方波 2. 非周期数字信号 3. 非周期数字信号及其频谱
z 2 z cos() z 2 2 z cos 1
z sin( ) z 2 z cos 1
2
z 2 z cos() z 2 2 z cos 2
z sin() z 2 z cos 2
2
z变换的性质 性质 时间反转 线形 时移 序列 g[-n] ag[n]+bh[n] g[n-m]
第4章TMS320x28xx系列DSP综述
电气工程学院
DSP应用技术
帧同步和数据时钟的极性都是可编程的;可编程的内部
时钟和同步帧; 能同CODEC、AIC(Analog Interface Chips)等标准 串行A/D和D/A器件接口; 两个16× 16深度的发送通道FIFO; 两个16× 16深度的接收通道FIFO。
20
盐城工学院
电气工程学院
DSP应用技术
4.3.1 事件管理器(281x处理器)
在281x DSP上有EVA和EVB两个事件管理器,它们 是数字电机控制应用所使用的非常重要的外设,能够实 现机电设备控制的多种必要功能。 每个事件管理器模块包括定时器、比较器、捕捉单 元、PWM逻辑电路、正交编码脉冲电路以及中断逻辑电 路等。
4. 专门的分支跳转(Branch-look-)硬件减少了条件指令执行的 反应时间,条件存储操作更进一步提高了28xx的性能。 5. 28xx控制器具有许多独特的功能,如可在任何内存位置进 行单周期读一修改一写操作供了高性能和代码高效编程,还提
供了许多其他原始指令。
6. F28xx系列控制器在1个闪存上可以提供150 MIPS的性能。 7. F2808、F2806和F2801可以提供经济高效的基于闪存的数 字信号控制器,并且运行速度达100 MIPS。
27
盐城工学院
电气工程学院
DSP应用技术
4.3.6 CAN总线通信模块
CAN总线是一种串行通信协议,具有较强的抗干扰能力,
可以应用在电磁噪声比较大的场合。 F281x的CAN总线接口模块是增强型的CAN接口,完全支 持CAN2.0B总线规范。它有32个可配置的接收/发送邮箱, 支持消息的定时邮递功能。最高通信速率可以达到1Mbps, 可以使用该接口构建高可靠的CAN总线控制或检测网络。
dsp 第四章2
4.6.3 C程序中直接嵌入汇编
• 在C程序中嵌入汇编语句是一种直接的C模 块和汇编模块接口方法。采用这种方法一 方面可以在C程序中实现用C语言难以实现 的一些硬件控制功能。另一方面,也可以 用这种方法在C程序中的关键部分用汇编语 句代替C语句以优化程序。 • 采用这种方法的一个缺点是它比较容易破 坏C环境,因为C编译器在编译嵌入了汇编 语句的C程序时并不检查或分析所嵌入的汇 编语句。
4.5 TMS320C54x C语言编程
• C54x软件设计:
– 利用C语言进行编程 – 纯汇编语言编程 – 利用C和汇编语言进行混合编程
4.5 TMS320C54x C语言编程
• • • • • 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 存储器模式 寄存器规则 函数调用规则 中断处理 表达式分析
4.5.2 寄存器规则
(3)ARP在函数进入和返回时,必须为0, 即当前辅助寄存器为AR0。函数执行时可 以是其它值。 (4)在缺省的情况下,编译器总是认为 OVM为0。因此,若在汇编程序中将OVM 置为1,则在返回C环境时,必须将其恢复 为0。 (5)其它状态位和寄存器在子程序中可以任 意使用,不必恢复。
(8)汇编语言模块不能改变由C模块产生 的.cinit段,如果改变其内容将会引起不可 预测的后果。 (9)编译器在所有标识符(函数名、变量名 等)前加下划线“_”。 (10)任何在汇编程序中定义的对象或函数, 如果需要在C程序中访问或调用,则必须用 汇编指令.global定义。 (11)编辑模式CPL指示采用何种指针寻址, 如果CPL=1,则采用堆栈指针SP寻址;如 果CPL=0,则选择页指针DP进行寻址。
(2)访问不在.bss块中定义的变量
• 汇编: .global _sine .sect “sine_tab” _sine: float 0.0 float 0.1 float 0.2 float 0.3
DSP第四章 DSP程序流程控制
程序流程:指的是指令的执行顺序。 C55x中影响指令执行顺序的主要有: 程序跳转(分支) 指令重复执行 条件执行 中断
程序调用
程序的流程控制主要与指令缓冲单元(I单元)和程序流程单元(P 单元)有关。
第四章 程序流程控制
P单元产生24位的程序地址,并放到PAB总线上。
1=255
举例: RPTCC #7, AC1 > #0 ADD #1,AC0 ;AC0=AC0+1
第四章 程序流程控制
以下指令不能用做单指令循环体: B ;跳转 IDLE ;空闲指令 RPTBLOCAL ;块重复 RESET;软件复位 MOV RPTC, TAx ;RPTC单指令重复计数器
TRAP ;软件陷阱 MOV dbl(Lmem), RETA
RPTBLOCAL和RPTB区别
RPTBLOCAL被定义为指令缓冲队列(IBQ)的本地循环,即直接 从IBQ中获取循环体指令,这样可以减少功率消耗,但是循环 体指令的字数不能超过56个字节。 当循环体指令超过56个字节时,使用RPTB块循环。
第四章 程序流程控制 支持两层块循环 一层循环(外循环):BRC0, RSA0, REA0; 二层循环(内循环): BRC1, RSA1, REA1,BRS1;
第四章 程序流程控制
vector: (4) 执行中断服务程序 rs b _c_int00 nop ISR包含中断返回指令,当中断返回时,自动恢复以前保存 nop nmi b __ret 在寄存器中的内容。 nop nop 3、中断矢量及其优先级 int0 b __ret CPU接受和响应中断请求后,产生一个中断矢量地址,地址 nop nop 指向相关中断服务程序的中断矢量。书中表4-2。 . 多个中断同时发生时,CPU按照事先定义的优先级进行处理。 . . 优先级为0的优先权最高,随着优先级数的逐步增加,优先 dmac5 b __ret 权逐步减小。 nop nop
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段。
DSP第四章-如何构建一个完整的工程
标示符的定义,还包含了C/C++运行支 持库函数,如系统启动函数_c_int00等。
GEL文件
GEL函数库
StartUp()
7个回 调函数
OnTargetConnect( )
6个存储器 映射函数
OnPreFileLoaded(
)
OnFileLoaded()ev合md众m达64自37带.gel
OnReset()
文件中用到的
OnRestart()
GEL函数
OnHalt()
6个其他函数
DSP28_Device.h
DSP28_Ecan.h DSP28_Ev.h DSP28_GlobalPrototypes.h
DSP28_Gpio.h
DSP28_McBsp.h DSP28_PieCtrl.h DSP28_PieVect.h DSP28_Sci.h
DSP28_Spi.h DSP28_SysCtrl.h DSP28_Xintf.h DSP28_XIntrupt.h
静态库与动态库的区别(1)
lib是编译时需要的,而dll是运行时需要 的。如果要完成源代码的编译,有lib就 够了。如果要使动态链接的程序运行起 来,有dll就够了。当然,在开发和调试 阶段,最好两者都有。
静态库与动态库的区别(2)
一般的动态库程序有lib文件和dll文件。lib文 件是必须在编译期就连接到应用程序中的, 而dll文件是运行期才会被调用的。如果有dll 文件,那么对应的lib文件一般是一些索引信 息,具体的实现在dll文件中。如果只有lib文 件,那么这个lib文件是静态编译出来的,索 引和实现都在其中。静态编译的lib文件优点 是给用户安装时就不需要再挂动态库了。但 也有缺点,就是导致应用程序比较大,而且 失去了动态库的灵活性,在版本升级时,同 时要发布新的应用程序才行。
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 并重新初始化定时器。
DSP原理及应用第四章
4.3.3 链接器对段的处理 链接器有2条伪指令支持上述任务:
● MEMORY伪指令——用来定义目标系统的存储 器配置空间,包括对存储器各部分命名,以及规定 它们的起始地址和长度。 ● SECTIONS伪指令——用来指定链接器将输入 段组合成输出段方式,以及输出段在存储器中的位 置,也可用于指定子段。 若未使用伪指令,则链接器将使用目标处理器 默认的方法将段放入存储空间。
DSP应用技术
第4章汇编语言程序开发工具
第4章 汇编语言程序开发工具
内容提要
可编程DSP芯片开发需要一套完整的软、硬件开 发工具。通常可分成代码生成工具和代码调试工具两 大类。 代码生成工具是指将高级语言或汇编语言编写的 DSP程序转换成可执行的DSP芯片目标代码的工具程 序,主要包括汇编器、链接器和C编译器以及一些辅 助工具程序等。 代码调试工具包括C/汇编语言源码调试器、仿真 器等。 本章主要介绍代码生成工具,包括’C54x软件开 发流程、汇编语言程序的编写、编辑、汇编和链接过 程、COFF段的一般概念、汇编器和链接器处理段的 方法以、程序的重定位及CCS等。
制作:段荣行 X
5
第4章 汇编语言程序开发工具
1. ’C54x应用软件开发流程
宏源文件 C源文件
开发过程的目的是产生一个可以由’C54x目标系 统执行的模块。
存档器 汇编 源文件 C编译器 宏库 汇编器 汇编 源文件 存档器 COFF 目标文件 建库工具
目标 文件库
链接器
运行时 支持库
调试工具 可执行的 COFF文件 HEX代码 转换工具
4.2 汇编语言程序的编辑、汇编和链接过程
. cmd 链接命 令文件
.asm 源文件 .obj 目标文件 .out 输出文件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
位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。
(4)IFR和IMR控制的是核心级的中断, 所有外设在它们各自的配置/控制寄存器都 有相应的中断屏蔽和标志位。
4.4.2 CPU中断屏蔽寄存器(IMR) IMR映射在数据存储器空间中的地址为0004h
位15-6:保留位。 位5-0:分别为INT6-INT1中断的屏蔽位。 0-中断INTn被屏蔽。 1-中断INTn被使能。
0: DSP设置为微控制器方式,片内FLASH映射 到程序存储器空间,地址为0000h-7FFFh。
1: DSP设置为微处理器方式,程序空间 0000h-7FFFh被映射到片外程序存储器空 间(必须外扩外部程序存储器) 位1-0:SARAM的程序/数据空间选择 DON PON SARAM状态 0 0 地址空间不被映射,该空间被分配到 外部存储器 0 1 SARAM 被映射到片内程序空间 1 0 SARAM 被映射到片内数据空间 1 1 SARAM 被映射到片内程序空间,又 被映射到片内数据空间
下图为外设中断扩展模块图。
4.3.1 中断请求层次和结构 外设中断个数很多,用一个两级中断结构来扩展 可响应的中断个数。 DSP的中断请求/应答硬件逻辑和中断服务程序软 件都有两级层次的中断。 在低层次中断,从几个外设来的外设中断请求 (PIRQ)在中断控制器处进行或运算,产生一个 INTn(n=1~6)中断请求。
在对IFR操作时应注意以下几点: (1)要想清除某一IFR位,必须向该位写1,而 不是0; (2)当一个可屏蔽中断被响应时,只有IFR位 被清除,而相应的外设控制寄存器中的中断请 求标志位不会被清除。如果需要清除这些标志 位,应该使用软件来清除。
(3)当通过INTR指令来请求中断,且相应 的IFR位被置1时,CPU不会自动清除该位, 该位必须由软件来清除。
在高层次中断,从INTn中断请求产生一个到CPU 的中断请求。 如果一个引起中断的外设事件发生且相应的中断 使能位被置1,则会产生一个外设到中断控制器的 中断请求。 如果一个外设既可产生高级的中断请求,又可产 生低级中断请求(如SCI、SPI、ADC等),对应 的中断优先级位的值也被送到PIE来进行判断。
00-进入IDLE1(LPM0)模式; 01-进入IDLE2(LPM1)模式; 1x-进入HALT(LPM2)模式。 位11-9:CLK PS2-CLK PS0,(PLL)时钟预定 标选择位,选择输入时钟频率fin的倍频系数,如 表4.1所示。
CLKPS2 CLKPS1 CLKPS0 系统时钟 频率 0 0 0 4× fin 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 2× fin 1.33× fin 1× fin 0.8× fin 0.66× fin 0.57× fin 0.5× fin
第4章系统配置和中断模块
本章介绍LF240x DSP的系统配置寄存器和 中断模块。
系统配置:用来对DSP片内的功能模块进行用户配 置,根据具体用途来进行模块定制。 中断模块:主要包括-中断优先级和中断向量表 、外设中断扩展控制器(PIE)、中断向量、中断响 应的流程、中断响应的时间、CPU中断寄存器、 外设中断寄存器、复位、无效地址检测、外部中 断控制寄存器。
位3:(BOOT使能位)。这位反映了BOOTEN* 引脚在复位时的状态。
0-使能引导ROM。地址0000h-00FFhROM块 占用。禁止用FLash存储器。 1-禁止引导ROM。LF2407片内Flash程序 存储器映射地址范围为0000h-7FFFh。 位2:MP/MC*(微处理器/微控制器选择)。
位2:EVACLKEN, EVA模块时钟使能控制位 0-禁止EVA模块时钟(节能) 1-使能EVA模块时钟,且正常运行
位1:保留
位0:ILLADR, 无效地址检测位 检测到无效地址时,该位置1。置1后需软件来 清0,向该位写1可将其清零。复位时该位为0。
注意:任何无效的地址会导致不可屏蔽中断 (NMI)事件发生。
2.系统控制和状态寄存器2(SCSR2) SCSR2被映射到数据存储器空间7019h
位15-7:保留位 位6:I/P QUAL,时钟输入限定。它限定输入到 LF240x的CAP1-6、XINT1-2、ADCSOC、 PDPINTA*/PDPINTB*引脚上的最小脉冲宽度。 脉冲宽度只有达到这个宽度之后,内部的输入状 态才会改变。 0-锁存脉冲至少需要5个时钟周期; 1-锁存脉冲至少需要11个时钟周期;
(2) 当外设发出中断请求,但是其INTn标志位却在 CPU应答请求之前已经被清0。 在上述两种情况下,并没有外设中断请求送到中 断控制器,因此中断控制器不知道哪个外设中断 向量装入到PIVR,此时向PIVR中装入假中断向量 0000h。从而避免程序进入中断死循环中。 2.软件结构
中断服务子程序有两级:通用中断服务子程序 (GISR)和特定中断服务子程序(SISR)。 在GISR中保存必要的上下文,从外设中断向 量寄存器(PIVR)中读取外设外设中断向量,这个 向量用来产生转移到SISR的地址入口。 程序一旦进入特定中断服务子程序后,所有 的可屏蔽中断都被屏蔽。 外设中断扩展(PIE)不包括象复位和NMI这样的 不可屏蔽中断。
4.3.2 中断向量 当CPU接受中断请求时,它并不知道是哪一 外设事件引起的中断请求。 为了使CPU能够区别不同外设引起的中断事 件, 需经PIE译码,决定哪个中断请求被响应。 某个外设的中断请求有效时,都会产生唯一的外 设中断向量,被装载到外设中断向量寄存器(PIVR) 。
CPU应答外设中断请求时,从PIVR中读取相应的 中断向量,并产生一个转到该中断服务子程序 (GISR)入口的向量。
4.4.3 外设中断寄存器 外设中断寄存器包括如下几种:
外设中断向量寄存器(PIVR) 外设中断请求寄存器0(PIRQR0)
外设中断请求寄存器1(PIRQR1) 外设中断请求寄存器2(PIRQR2) 外设中断应答寄存器0(PIACKR0) 外设中断应答寄存器1(PIACKR1) 外设中断应答寄存器2(PIACKR2)
LF240x有两个中断向量表, CPU向量表和外设向量 表。 CPU向量表用来得到响应中断请求的一级通用中 断服务子程序(GISR)。
外设向量表用来获取响应某外设事件的特定中断 服务子程序(SISR)。
在一级通用中断服务子程序GISR中可读出 PIVR中的值,保护现场后,用PIVR中的值来产生 一个转到SISR的向量。例如,可屏蔽中断XINT1( 高级模式级别为INT1,优先级为7)产生一个中断 请求,CPU对其响应。这时,0001h(XINT1的外 设中断向量)被装载到PIVR中,CPU获取被装载 到PIVR中的值之后,用这个值来判断是哪一个外 设引起的中断,接着转移到相应的SISR。
位15-6:保留位。 位5-0:分别为INT6~INT1的中断标志位。 0-无INTn(n=1-6)的中断挂起, 1-表示有INTn(n=1-6)的中断挂起。 中断标志寄存器包含了所有可屏蔽中断INT6-INT1 的标志位。
当一个外设发出可屏蔽中断请求时,中断标志寄 存器的相应标志位被置1。如果该外设对应中断屏 蔽寄存器中的中断使能位也为1,则该中断请求被 送到CPU,此时该中断正被挂起或等待响应。 读取IFR可以识别挂起的中断,向相应的IFR位 写1将清除已挂起的中断。 CPU响应中断或复位都能将IFR标志清除。
4.1 系统配置寄存器
4.1.1 系统控制和状态寄存器 1.系统控制和状态寄存器1(SCSR1) SCSR1映射到数据存储器空间的KSRC,为CLKOUT引脚输出时钟源的选择位
0-CLKOUT引脚输出CPU时钟; 1-CLKOUT引脚输出WDCLK时钟。 位13、12:LPM1,LPM0,低功耗模式选择,指 明在执行IDLE 指令后进入哪一种低功耗模式。
3.不可屏蔽中断 LF240x DSP 无NMI引脚,在访问无效的地址 时,不可屏蔽中断(NMI)就会发出请求。当NMI被 响应后,程序将转到不可屏蔽中断向量入口地址 0024h处。