DSP2833XC语言程序烧写专题培训课件.ppt
《DSP2833XC语言程序烧写专题培训课件.ppt》由会员分享,可在线阅读,更多相关《DSP2833XC语言程序烧写专题培训课件.ppt(98页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、DSP原理与应用原理与应用2024年年6月月30日日1第二章第二章:DSP系统开发系统开发l第第2.1节节 概述概述l第第2.2节节 DSP汇编语言概述及汇编程序设计汇编语言概述及汇编程序设计l第第2.3节节 DSP C语言程序设计语言程序设计l第第2.4节节 DSP C与汇编混合编程与汇编混合编程l第第2.5节节 DSP程序烧写程序烧写l习题习题DSP原理与应用原理与应用2024年年6月月30日日2第第2.1节节 概述概述l汇编语言汇编语言:开发的效率高,程序执行速度快,而且可以合理利用开发的效率高,程序执行速度快,而且可以合理利用芯片的硬件资源芯片的硬件资源开发难度较大,开发周期长,可读性
2、和可移植性差。开发难度较大,开发周期长,可读性和可移植性差。lC语言开发语言开发:具有兼容性和可移植的优点,有利于缩短开发周期和具有兼容性和可移植的优点,有利于缩短开发周期和减少开发难度减少开发难度在运算量较大的情况下,在运算量较大的情况下,C代码的效率还是无法和手工代码的效率还是无法和手工编写的汇编代码的效率相比,比如编写的汇编代码的效率相比,比如FFT运算,运算,lC和汇编的混合编程则可以充分利用前两者的优和汇编的混合编程则可以充分利用前两者的优点,以达到最佳利用点,以达到最佳利用DSP资源的目的。资源的目的。lC和汇编语言混合编程必须遵循相关函数调用规和汇编语言混合编程必须遵循相关函数调
3、用规则和寄存器调用规则则和寄存器调用规则,否则会带来意想不到的问题。否则会带来意想不到的问题。DSP原理与应用原理与应用2024年年6月月30日日3第第2.1节节 概述概述lCCS开发实例演示开发实例演示DSP原理与应用原理与应用2024年年6月月30日日4第二章第二章:DSP系统开发系统开发l第第2.1节节 概述概述l第第2.2节节 DSP汇编语言概述及汇编程序设计汇编语言概述及汇编程序设计l第第2.3节节 DSP C语言程序设计语言程序设计l第第2.4节节 DSP C与汇编混合编程与汇编混合编程l第第2.5节节 DSP程序烧写程序烧写l习题习题DSP原理与应用原理与应用2024年年6月月3
4、0日日5第第2.2节节 DSP汇编语言概述及汇编程序设计汇编语言概述及汇编程序设计l汇编语言汇编语言:累加累加,算术计算和逻辑运算算术计算和逻辑运算辅助寄存器和数据页操作辅助寄存器和数据页操作TREG,PREG和乘法指令和乘法指令直接内存访问指令直接内存访问指令(DMA)和和IO操作指令操作指令程序空间访问指令程序空间访问指令跳转指令、寄存器操作指令跳转指令、寄存器操作指令l浮点运算指令浮点运算指令l汇编程序设计汇编程序设计:生成可执行代码过程生成可执行代码过程示例文件示例文件DSP原理与应用原理与应用2024年年6月月30日日6第第2.2.1累加累加,算术计算和逻辑运算算术计算和逻辑运算DS
5、P原理与应用原理与应用2024年年6月月30日日7第第2.2.1累加累加,算术计算和逻辑运算算术计算和逻辑运算DSP原理与应用原理与应用2024年年6月月30日日8第第2.2.1累加累加,算术计算和逻辑运算算术计算和逻辑运算DSP原理与应用原理与应用2024年年6月月30日日9第第2.2.1累加累加,算术计算和逻辑运算算术计算和逻辑运算DSP原理与应用原理与应用2024年年6月月30日日10第第2.2.2辅助寄存器和数据页操作辅助寄存器和数据页操作DSP原理与应用原理与应用2024年年6月月30日日11第第2.2.2辅助寄存器和数据页操作辅助寄存器和数据页操作DSP原理与应用原理与应用2024
6、年年6月月30日日12第第2.2.3 TREG,PREG和乘法指令和乘法指令DSP原理与应用原理与应用2024年年6月月30日日13第第2.2.3 TREG,PREG和乘法指令和乘法指令DSP原理与应用原理与应用2024年年6月月30日日14第第2.2.3 TREG,PREG和乘法指令和乘法指令DSP原理与应用原理与应用2024年年6月月30日日15第第2.2.4直接内存访问直接内存访问(DMA)和和IO操作指令操作指令DSP原理与应用原理与应用2024年年6月月30日日16第第2.2.5程序空间访问指令程序空间访问指令DSP原理与应用原理与应用2024年年6月月30日日17第第2.2.6 跳
7、转指令跳转指令DSP原理与应用原理与应用2024年年6月月30日日18第第2.2.7 寄存器操作指令寄存器操作指令DSP原理与应用原理与应用2024年年6月月30日日19第第2.2.7 寄存器操作指令寄存器操作指令DSP原理与应用原理与应用2024年年6月月30日日20第第2.2.7 寄存器操作指令寄存器操作指令DSP原理与应用原理与应用2024年年6月月30日日21第第2.2.8 浮点运算指令浮点运算指令l浮点数简介浮点数简介(IEEE754)单精度浮点数:单精度浮点数:1位符号位位符号位,8位指数位指数,23位有效数位有效数IEEE754-IEEE Standard 754 for Bin
8、ary Floating Point Arithmetic单精度浮点数范围:单精度浮点数范围:3.4028235*1038在此范围内也无法精确表述所有浮点数在此范围内也无法精确表述所有浮点数精度:精度:1.19209290*10-38可精确表述的数必须可以用可精确表述的数必须可以用2的指数幂次组合描述的指数幂次组合描述DSP原理与应用原理与应用2024年年6月月30日日22第第2.2.8 浮点运算指令浮点运算指令l浮点数简介浮点数简介(IEEE754)单精度浮点数:单精度浮点数:1位符号位位符号位,8位指数位指数,23位有效数位有效数IEEE754-IEEE Standard 754 for
9、Binary Floating Point Arithmetic例:例:00111111 01100110 01100110 0110011016进制为:进制为:0X3F666666整形数为整形数为1063675494单精度下:符号位单精度下:符号位0(+)指数位指数位E(01111110)2=126,e=-1 尾数尾数1100110 01100110011001102 1.799999952316284179687510 实际值实际值0.89999997615814208984375 DSP原理与应用原理与应用2024年年6月月30日日23第第2.2.8 浮点运算指令浮点运算指令l浮点数简介
10、浮点数简介(IEEE754)单精度浮点数:单精度浮点数:1位符号位位符号位,8位指数位指数,23位有效数位有效数IEEE754-IEEE Standard 754 for Binary Floating Point Arithmetic单精度运算精度:加、减、乘、除、平方根、余数、单精度运算精度:加、减、乘、除、平方根、余数、将浮点格式的数舍入为整数值、在不同浮点格式之将浮点格式的数舍入为整数值、在不同浮点格式之间转换、在浮点和整数格式之间转换以及比较。间转换、在浮点和整数格式之间转换以及比较。四种舍入方向四种舍入方向:向最近数方向向最近数方向,向负无穷大向负无穷大,向正无穷向正无穷大以及向大
11、以及向0。五种类型的浮点异常是:无效运算、被零除、上溢、五种类型的浮点异常是:无效运算、被零除、上溢、下溢和不精确。下溢和不精确。*常犯错误常犯错误:f=0,应该为,应该为-ef FLASHA PAGE=0 .pinit :FLASHA,PAGE=0 .text :FLASHA PAGE=0 codestart :BEGIN PAGE=0 ramfuncs :LOAD=FLASHD,RUN=RAML0,LOAD_START(_RamfuncsLoadStart),LOAD_END(_RamfuncsLoadEnd),RUN_START(_RamfuncsRunStart),PAGE=0 csm
12、passwds :CSM_PWL PAGE=0 csm_rsvd :CSM_RSVD PAGE=0 /*Allocate uninitalized data sections:*/.stack :RAMM1 PAGE=1 .ebss :RAML4 PAGE=1 .esysmem :RAMM1 PAGE=1DSP原理与应用原理与应用2024年年6月月30日日32第第2.2.9 汇编程序设计汇编程序设计-示例文件示例文件l.h文件文件:标号标号,地址地址,中断向量等定义中断向量等定义;File name:280 x.hIMR.set 0004h;Interrupt Mask RegisterIFR
13、.set 0006h;Interrupt Flag Register;System configuration and interrupt registersSCSR1.set 7018h;System Control&Status register.1SCSR2.set 7019h;System Control&Status register.2DINR.set 701Ch;Device Identification Number register.PIVR.set 701Eh;Peripheral Interrupt Vector register.PIRQR0.set 7010h;Per
14、ipheral Interrupt Request register 0PIRQR1.set 7011h;Peripheral Interrupt Request register 1PIRQR2.set 7012h;Peripheral Interrupt Request register 2PIACKR0.set 7014h;Peripheral Interrupt Acknowledge register 0PIACKR1.set 7015h;Peripheral Interrupt Acknowledge register 1PIACKR2.set 7016h;Peripheral I
15、nterrupt Acknowledge register 2;File name:vector.h.sectvectorsRSVECT B START;Reset VectorINT1B GISR1;Interrupt Level 1INT2B GISR2;Interrupt Level 2INT3B GISR3;Interrupt Level 3INT4B GISR4;Interrupt Level 4INT5B GISR5;Interrupt Level 5INT6B GISR6;Interrupt Level 6RESERVED B PHANTOM;ReservedSW_INT8 B
16、PHANTOM;Software InterruptSW_INT9 B PHANTOM;Software InterruptSW_INT10 B PHANTOM;Software InterruptSW_INT11 B PHANTOM;Software InterruptSW_INT12 B PHANTOM;Software InterruptSW_INT13 B PHANTOM;Software InterruptSW_INT14 B PHANTOM;Software InterruptSW_INT15 B PHANTOM;Software InterruptSW_INT16 B PHANT
17、OM;Software InterruptTRAP B PHANTOM;Trap vectorNMI B NMI;Nonmaskable InterruptEMU_TRAP B PHANTOM;Emulator TrapSW_INT20 B PHANTOM;Software InterruptSW_INT21 B PHANTOM;Software InterruptSW_INT22 B PHANTOM;Software InterruptSW_INT23 B PHANTOM;Software InterruptSW_INT24 B PHANTOM;Software InterruptDSP原理
18、与应用原理与应用2024年年6月月30日日33第第2.2.9 汇编程序设计汇编程序设计-示例文件示例文件l.asm文件文件:程序文件程序文件*File Name:SPI.asm.include 280 xA.h.include vector.h.bss GPR0,1;General purpose registers.bss GPR3,1KICK_DOG.macro;Watchdog reset macroLDP#00E0hSPLK#05555h,WDKEYSPLK#0AAAAh,WDKEYLDP#0h.endm;M A I N C O D E starts here.textSTART:LD
19、P#0SETC INTMSPLK#0h,GPR3OUT GPR3,WSGRCLRC SXM CLRC OVMCLRC CNFLDP#WDCR7SPLK#006Fh,WDCRKICK_DOGLDP#SCSR17SPLK#0020h,SCSR1DSP原理与应用原理与应用2024年年6月月30日日34第二章第二章:DSP程序设计程序设计l第第2.1节节 概述概述l第第2.2节节 DSP汇编语言概述及汇编程序设计汇编语言概述及汇编程序设计l第第2.3节节 DSP C语言程序设计语言程序设计l第第2.4节节 DSP C与汇编混合编程与汇编混合编程l第第2.5节节 DSP程序烧写程序烧写l习题习题DSP原
20、理与应用原理与应用2024年年6月月30日日35第第2.3节节 DSP C语言程序设计语言程序设计l支持支持ANSI C:提供相应的编译器和优化工具提供相应的编译器和优化工具对对ANSI C进行了限定和扩展进行了限定和扩展l运行库运行库:字符串操作字符串操作动态地址分配动态地址分配数据转换数据转换DSP原理与应用原理与应用2024年年6月月30日日36第第2.3节节 DSP C语言程序设计语言程序设计l变量和标识变量和标识:变量和标识符长度变量和标识符长度100个字符,区分大小写个字符,区分大小写变量和标识符的符号集为变量和标识符的符号集为ASCII,不支持多字节符号,不支持多字节符号(如汉字
21、)。(如汉字)。字符或字符串常量中的字符或字符串常量中的16进制进制ESC码码(特殊字符,如特殊字符,如0X07)可能会有可能会有32位的值。位的值。多字符的字符变量最后一个有效,如多字符的字符变量最后一个有效,如abc是是cl数据类型数据类型:Size_t(sizeof的结果的结果)定义为定义为unsigned intPtrdiff_t(指针加减结果指针加减结果)定义为定义为int所有的整数类型所有的整数类型(char,short,int,以及这些类型的无以及这些类型的无符号型符号型)都是相同类型都是相同类型,并代表并代表16位的二进制值位的二进制值.Long和和unsigned long代
22、表代表32位二进制值位二进制值.DSP原理与应用原理与应用2024年年6月月30日日37第第2.3节节 DSP C语言程序设计语言程序设计l数据类型数据类型:有符号数是用二进制补码表示有符号数是用二进制补码表示.数据单元的基础是字数据单元的基础是字(16位位),BYTE和和WORD一样一样char是有符号类型是有符号类型,等同于等同于int枚举型枚举型(enum)用用16位值表示位值表示,等同于等同于int浮点类型浮点类型(float,double)是相同的是相同的,遵循遵循TMS320C2x/C2xx/C5x的的32位浮点类型位浮点类型.Long 和和float的数据存储格式为低有效字存储在
23、的数据存储格式为低有效字存储在低地址的方式低地址的方式.Long long 和和long double是是64位的位的.DSP原理与应用原理与应用2024年年6月月30日日38第第2.3节节 DSP C语言程序设计语言程序设计l数据类型数据类型:DSP原理与应用原理与应用2024年年6月月30日日39第第2.3节节 DSP C语言程序设计语言程序设计l类型转换类型转换:浮点数转为整数为取整截断浮点数转为整数为取整截断指针类型指针类型(pointer)和和int可以自由转换可以自由转换far pointer 为为22位有效位位有效位l表达式表达式:有符号整数相除有符号整数相除,商符号由两个数共同
24、决定商符号由两个数共同决定,余数余数符号同被除数符号同被除数l10/-3=-3,余余1;-10/3=-3余余-1有符号数右移为算术右移有符号数右移为算术右移,符号位不变符号位不变DSP原理与应用原理与应用2024年年6月月30日日40第第2.3节节 DSP C语言程序设计语言程序设计C访问访问16位乘法结果的高位乘法结果的高16位位:int m1,m2;int result;result=(long)m1*(long)m2)16;浮点数浮点数:32bits FPU+,-,比较比较(,=,PMPAGE 0.TEXT :PM PAGE 0.BSS :BLK_B2 PAGE 1.DATA :BLK_
25、B1 PAGE 1 BufferB_sect:SARAM_D PAGE 1DSP原理与应用原理与应用2024年年6月月30日日48第第2.3节节 DSP C语言程序设计语言程序设计FAST_FUNC_CALL:指明某一函数调用时采用快速函数调用指明某一函数调用时采用快速函数调用(FFC)机制,而不是机制,而不是使用普通函数调用流程:使用普通函数调用流程:FFC进栈出栈及函数返回有所不同,调用更快速。进栈出栈及函数返回有所不同,调用更快速。#pragma FAST_FUNC_CALL(func)这类函数返回时的这类函数返回时的asm代码必须是:代码必须是:LB*XAR7DSP原理与应用原理与应用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP2833XC 语言 程序 专题 培训 课件
限制150内