第二讲之二DSP编程基础

上传人:陈** 文档编号:179817058 上传时间:2023-01-03 格式:PPT 页数:55 大小:241.50KB
收藏 版权申诉 举报 下载
第二讲之二DSP编程基础_第1页
第1页 / 共55页
第二讲之二DSP编程基础_第2页
第2页 / 共55页
第二讲之二DSP编程基础_第3页
第3页 / 共55页
资源描述:

《第二讲之二DSP编程基础》由会员分享,可在线阅读,更多相关《第二讲之二DSP编程基础(55页珍藏版)》请在装配图网上搜索。

1、厦门大学通信工程系1 2023-1-3 DSP编程基础 厦厦 门门 大大 学学 通通 信信 工工 程程 系系厦门大学通信工程系2 2023-1-3主要内容 汇编指令集 软件开发工具 定点算法设计 DSP汇编程序优化 小结 简单DSP程序设计厦门大学通信工程系3 2023-1-3 汇编指令集 指令系统概述v 指令集的符号和缩写v指令系统的操作符v指令系统的汇编语法语法、操作数、机器码、执行结果、状态位的影响、指令字长、指令执行的周期数、单指令重复执行情况、流水线冲突情况厦门大学通信工程系4 2023-1-3 汇编指令集 指令的分类 算术运算指令 逻辑运算指令 程序控制操作指令 加载和存贮操作指令

2、厦门大学通信工程系5 2023-1-3 算术运算指令 加法指令 ADD Smem,src src=src+Smem 减法指令 乘法指令 SUB Smem,TS,src src=src Smem TSMPY Xmem,Ymem,dst dst=Xmem*Ymem,T=Xmem 乘加和乘减指令 MAC Smem,src src=src+T*Smem 厦门大学通信工程系6 2023-1-3 算术运算指令(续)双字指令 特殊应用指令 ABS src,dst dst=|src|DADST Lmem,dstIf C16=0 dst=Lmem+(T 16+T)If C16=1 dst(3916)=Lmem(

3、3116)+T dst(150)=Lmem(150)T厦门大学通信工程系7 2023-1-3 逻辑运算指令 逻辑与指令AND Smem,src Src=src&Smem 逻辑或指令 异或指令OR Smem,src src=src|Smem XOR Smem,src Src=src Smem 移位指令ROL src 累加器带进位位循环左移 测试指令 BIT Xmem,BITC TC=Xmem(15 BITC)厦门大学通信工程系8 2023-1-3 程序控制操作指令 跳转指令 BACCD src PC=src(150)调用指令 中断指令 返回指令 RETD PC=SP+CALAD src-SP=P

4、C+1 PC=src(150)INTR K-SP=PC+1PC=IPTR(157)+K 存储区存储区 运行存储区分配,run=存储区存储区、run 存储区存储区 输入段,输入段输入段 厦门大学通信工程系21 2023-1-3 DSP代码的组织结构(续)MEMORY和SECTIONS用法示例MEMORY PAGE 0:VEC:origin=0080h,length=0080h;PAGE 0:ROM:origin=0100h,length=0F00h;PAGE 1:RAM:origin=1000h,length=1000h SECTIONS .text:load=ROM .const:load=R

5、OM .bss:load=RAM .vectors:load=VEC file1.obj(.intvec1)file2.obj(.intvec2)厦门大学通信工程系22 2023-1-3 DSP代码的组织结构(续)程序的重新定位 经过逻辑段和存储器物理实现映射后,给定段适当 的起始地址 调整符号值(相对地址)与新的段地址相适应 调整重新定位后符号的参考值以反映调整后的符号值 运行的重定位 代码加载到存储器的一个区域而在另一个区域运行 厦门大学通信工程系23 2023-1-3 DSP代码的组织结构(续)外部符号 v.def 在当前段中定义而在另一个段中引用。v.ref 在当前段中引用而在另一个段

6、中定义。v.global 可以是包括前述两种情况。厦门大学通信工程系24 2023-1-3 汇编器 处理汇编语言源文件中的源语句,产生一个可重 新定位的目标文件。根据要求,产生源程序列表文件,并提供对源程 序列表文件的控制。将代码分为段(section),并为每个目标代码段 设置一个SPC。定义和引用全局符号。根据要求,将交叉引用列 表加到源程序列表中。汇编条件块。支持宏调用,允许在程序中或在库中定义宏。厦门大学通信工程系25 2023-1-3 汇编器(续)汇编器的命令行格式 asm500 input file object file listing file -option-i指定路径-q不

7、输出工作过程中的进度信息-g使能符号调试功能-s把所有定义的符号放在目标文件的符号表格中-l产生列表文件-v确定芯片型号 常用汇编器选项 厦门大学通信工程系26 2023-1-3 C编译器 C编译器命令行格式 cl500 cl500 options filenames z z link_options object files-o0优化寄存器的使用-o1局部优化+-o0-o2/-o全局优化+-o1-o3文档优化+-o2 常用C编译器选项 z表示连接使能 厦门大学通信工程系27 2023-1-3 连接器v 按照目标系统需要给存储器分段 v 对符号和段重新定位,确定最后的地址 v 确定输入文件之间

8、未定义的外部参考 连接器的任务 厦门大学通信工程系28 2023-1-3 连接器(续)连接器的命令行格式 lnk500lnk500-options filename1 filenamen-a产生绝对的可执行代码-ar产生可重新定位的可执行代码-e global_symbol 定义一个全局符号用以指定输出模段的入口-i dir指定库文件的搜索路径-m-m filename产生存储器映像文件-o filename 命名可执行输出模段 -r产生可重新定位的输出代码-s从输出模块中去除符号表信息和行号入口 -stack-stack size为C系统设置堆栈大小 常用连接器选项 厦门大学通信工程系29

9、2023-1-3 归档器 归档器的命令行格式 ar500-command option libname filename1 filenamen-a将指定的文件加到库中-d从库中删除指定的成员-r替换库中指定的成员-t打印库内容的表格-x x 提取指定的文件 常用归档器命令厦门大学通信工程系30 2023-1-3 代码转换器 公用目标文件格式COFF(二进制目标文件格式)hex转换器将COFF文件转换成几种标准ASCII十六进制的格式 v ASCII-Hex,支持16位地址v 扩展的Tektronix(Tektronix)v Intel MCS-86(Intel)v Motorola Exorc

10、iser(Motorola-S),支持16位、24位 和32位地址 v Texas Instuments SDSMAC(TI-Tagged),支持16位地址 厦门大学通信工程系31 2023-1-3 代码转换器(续)hex转换器的命令格式 hex500hex500-options filename-a选择ASCII-Hex格式-memwidth value 定义系统存储器字长宽度-romwidth value 说明ROM设备宽度-boot 将所有段转换成可自举格式-bootorg bootorg valuevalue 说明自举加载表的源地址 转换器常用选项厦门大学通信工程系32 2023-1-

11、3 定点算法设计 数据的表示形式 mnnkkkllllsx210112.DSP的数据表示法cmxx2 数据浮点表示形式 c的数值有变化,需存储xm和c 数据定点表示形式 c的数值固定,只需存储xm厦门大学通信工程系33 2023-1-3 定点算法设计 定点数据形式 Qxx或x.y xx和y表示小数位数,x+y表示为字长信息 例:0.2345 的16位整数表示Q15:04E1x07684596.76845.022345.015Q17:7810 x03073630736.8845.022345.017厦门大学通信工程系34 2023-1-3 定点算法设计 两种表示下的数学运算 定点表示v 加减时,

12、要求两个操作数是同一种Qxx格式v 乘法时,x1.y1格式乘以x2.y2格式结果为(x1+x2).(y1+y2)浮点表示v 加减时,首先要进行小数点对齐,即c相同 v 乘法时,各自的xm相乘、c相加 厦门大学通信工程系35 2023-1-3 数据的定标步骤 用高级语言仿真整个数据处理过程,确保原理和使 用方法算过程的正确;(一般采用很高精度的浮点表 示)确定数据输入格式和能正确表示结果的最终数据格 式,并从后向前逐步选择模块接口所应当采用的数 据格式;(仍然使用浮点程序,伪定点)细化每个模块中数据格式,以确保结果能达到接口 要求;(浮点到定点的转换)测试并调整,完成定标。(获得定点程序)厦门大

13、学通信工程系36 2023-1-3 定点算法设计 定点基本函数示例 short mpy_ss(short opa,short opb)short result;int L_product;L_product=(int)opa*(int)opb;/*1.15*1.15=2.30*/L_product=L_product 15;/*2.30 15=17.15*/result=(short)(L_product&0 x0000ffff);/*lo(17.15)=1.15*/return result;厦门大学通信工程系37 2023-1-3 定点算法设计示例 例:设计以10为底的对数多项式逼近算法,

14、多项式为:543210126261.010577850.011240692.012127839.014339142.0lgxxxxxx其中1x2,要求输入输出都为16位表示。步骤1:确定多项式计算方法迭代计算法,系数表示为:flt_a5=0.0126261,-0.0577850,0.1240692,-0.2127839,0.4339142。设计相应的浮点算法flt_log10()。/*/*Name:flt_log10()/*Description:lg(x)=f(x-1),where 1x2 /*/厦门大学通信工程系38 2023-1-3 定点算法设计示例(续)double flt_log10

15、(/*(o)*/double flt_xm1 /*(i)x*/)double flt_sum;int i;flt_sum=0.0;for(i=0;i 5;i+)flt_sum=flt_sum+flt_ai;flt_sum=flt_sum*flt_xm1;return(flt_sum);厦门大学通信工程系39 2023-1-3 定点算法设计示例(续)步骤2:分析输入和输出的数据格式。输入定为x-1且使用Q15格式;结果数值位于0,0.31)中,所以最好使用Q16格式。定点函数原型如下:/*/*Name:fix_log10()/*Description:lg(x)=f(x-1),where 1x2

16、/*/short fix_log10(/*(o)Q16*/short xm1/*(i)x-1,Q15*/)步骤3:观察多项式的系数,最大为0.4339142,所以数据可统一采用Q16格式。定义系数数组定点形式a如下:short a5=0 x033b,0 xf136,0 x1fc2,0 xc987,0 x6f15 厦门大学通信工程系40 2023-1-3步骤4:将算法定点化 定点算法设计示例(续)int sum,i;sum=0;for(i=0;i 5;i+)sum=L_add(sum,ai 16,xm1);return(short)(sum 16);厦门大学通信工程系41 2023-1-3 简单

17、DSP程序设计 例:当前我们需要设计一个程序,它对McBSP中接收进来的信号进行傅立叶频谱分析,并将结果写到某处,而且向后一级设备发送数据准备好的消息(例如将消息写入I/O空间的某个地址)第一步,分析任务需求并用高级语言写出软件流程的伪代码。在伪代码的编写中,可以清楚地定义信号的处理机制,并为今后程序的调试和扩展预先留好接口。伪代码中,可以将每一个关键的处理环节用函数(或直接用语言描述)来表示,确定软件的框架。厦门大学通信工程系42 2023-1-3 简单DSP程序设计(续)软件流程图 DSP Inititialization Start System Inititialization Ena

18、ble McBSP and Interrupt End Spectrum Analysis Send Signal Data Enough?No Yes 厦门大学通信工程系43 2023-1-3void main(void)DSPInit();/Initialize DSP chip SystemInit();/Initialize system software /Enable Corresponding peripherals Enable_McBSP Enable_Interrupt do/waiting for enough data acquisition if(enough dat

19、a)/do Fourier transform and Spectrum Anaysis SpectrumAnalysis()Send_Signal /Signal device connected while(1)return;厦门大学通信工程系44 2023-1-3 简单DSP程序设计(续)第二步,根据高级语言伪代码编写主流程的汇编程序。.mmregs;enable memory mapped registers ;define global symbols .global main .global SpectrumAnalysis .global SystemInit .global D

20、SPInit .text;section of codemain:ssbx INTM ;masking all interrupts stm#STACK_ADDR,SP;set the stack point call DSPInit ;Initialize DSP chip call SystemInit;Initialize system software厦门大学通信工程系45 2023-1-3 ;Enable Corresponding peripherals stm#SPSA0,AR3;Enable_McBSP st#0,*AR3+orm#0 x0001,*AR3-rsbx INTM

21、;Enable_Interrupt ;waiting for enough data acquisitionwait_loop:bitf *(DSP_state),#SM_ENOUGH_DATA;test the state bit nop nop nop bc wait_loop,NTC xorm#SM_ENOUGH_DATA,*(DSP_state);clear flag 厦门大学通信工程系46 2023-1-3 ;do Fourier transform and Spectrum Anaysis call SpectrumAnalysis ;Send_Signal ld#PROCESS_

22、READY_SIGNAL,A portw *(AL),#MESSAGE_PORT b wait_loop dead_loop:nop nop nop b dead_loop .end厦门大学通信工程系47 2023-1-3 简单DSP程序设计(续)第三步,细化主流程程序,按功能编写每一个函数。.mmregs .global SpectrumAnalysis .textSpectrumAnalysis:;bit reverse re-order;do FFT core(butter-fly algorithm);Spectrm analysisret厦门大学通信工程系48 2023-1-3 简单

23、DSP程序设计(续)第四步,完成中断服务程序的编写。.sect “vectors”int_reset:;isr for software resetb main ;Main programnopnop.space 76*16int_brint0:bd BRINT0_ISR ;jump to ADC receive routinepshmST0pshmST1.space 44*16厦门大学通信工程系49 2023-1-3.textBRINT0_ISR:pshmAR2addm#1,*(buffer_cnt)mvdk*(buffer_ptr),AR2mvkdBRR10,*AR2+mvkdAR2,*(

24、buffer_ptr)cmpm*(buffer_cnt),#FRAME_LEN;check the number of data receivedbcno_flag_set,NTC;set flag,clear counter and update buffer address if requiredorm#SM_ENOUGH_DATA,*(DSP_state)st#0,*(buffer_cnt)no_flag_set:popmAR2popmST1popmST0rete 厦门大学通信工程系50 2023-1-3 简单DSP程序设计(续)第五步,编写命令文件,确定汇编程序中各段代码和数据摆放的位

25、置。通常情况下,程序放置在SARAM内,而数据放置在DARAM。结论 汇编程序的编制同样需强调程序的模块化、常量的符号化、变量名有意义等软件工程的基本要素 厦门大学通信工程系51 2023-1-3 汇编程序的优化 合理选择汇编指令 直接实现功能ld*AR3,AstlmA,AR2 mvdk*AR2,AR2减少寄存器资源的利用 无流水线冲突考虑减少流水线冲突厦门大学通信工程系52 2023-1-3 汇编程序的优化 合理选择汇编指令(续)良好的寻址方式减少运行时间减小代码长度 循环结构的嵌套和延迟选项的使用rpt硬件支持的单语句循环rptb硬件支持的块循环banz“快速”软件循环bc普通循环厦门大学通信工程系53 2023-1-3 汇编程序的优化 循环结构的嵌套和延迟选项的使用(续)rptbdbanzdbd 双寻址语句和并行语句mac*AR2+,*AR3-,AstA,*AR2+|add*AR3+,B厦门大学通信工程系54 2023-1-3 汇编程序的优化 特殊语句的运用bit reverse addressingFIRSPOLY 循环缓存的利用减少数据缓冲更新的时间 厦门大学通信工程系55 2023-1-3 小结 汇编指令集 软件开发工具 定点算法设计 汇编程序设计

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!