书签 分享 收藏 举报 版权申诉 / 81
上传文档赚钱

类型DSP-C语言程序设计课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4145168
  • 上传时间:2022-11-14
  • 格式:PPT
  • 页数:81
  • 大小:3.43MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《DSP-C语言程序设计课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    DSP_C 语言程序设计 课件
    资源描述:

    1、第第6章章 C/C+语言程序设计语言程序设计6.1 C55X C/C+语言概述语言概述6.2 C55X C/C+语言编程基础语言编程基础6.5 C语言与汇编语言的混合编程语言与汇编语言的混合编程 6.5.1 在在C语言中直接嵌入汇编语言语言中直接嵌入汇编语言 6.5.2 C语言调用汇编模块的接口语言调用汇编模块的接口补充:补充:TI DSP软件开发平台软件开发平台l汇编语言依赖于计算机硬件,程序的可读性和汇编语言依赖于计算机硬件,程序的可读性和可移植性比较差。一般高级语言具有很好的可可移植性比较差。一般高级语言具有很好的可移植性,但是难以实现汇编语言的某些功能移植性,但是难以实现汇编语言的某些

    2、功能(如对内存地址的操作、位操作等)。(如对内存地址的操作、位操作等)。lC/C+语言作为一种高级语言,既可以访问物语言作为一种高级语言,既可以访问物理地址又可以进行位操作,能直接对硬件进行理地址又可以进行位操作,能直接对硬件进行操作,适合用作操作,适合用作DSP开发语言。开发语言。6.1.1 C/C+语言概况语言概况6.1 C55X C/C+语言概述语言概述6.1.2 C55x C/C+语言概况语言概况lC55x C/C+编译器全面支持编译器全面支持ANSI C/C+语言标准,能够把按照标准语言标准,能够把按照标准ANSI C/C+规范编写的源程序进行全面优化,编译成规范编写的源程序进行全面

    3、优化,编译成C55x 汇编语言源程序。汇编语言源程序。lC55x C/C+编译器工具拥有完整的实时编译器工具拥有完整的实时运行库运行库,所有的库函数均符合所有的库函数均符合ANSI库标准。库标准。C55X C/C+语言编程基础语言编程基础类型类型长度长度内容内容最小值最小值最大值最大值signed char(有符号有符号字符字符)16位位ASCII码码-3276832767unsigned char(无符号字符无符号字符)16位位ASCII码码065535short,signed short(短整型短整型)16位位二进制二进制补码补码-3276832767unsigned short(无无符号

    4、短整型符号短整型)16位位二进制二进制数数065535类类 型型长长 度度内内 容容最最 小小 值值最最 大大 值值int,signed int(整型)(整型)16位位二进制二进制补码补码 3276832767unsigned int(无符号无符号整型)整型)16位位二进制二进制数数065535long,signed long(长(长整型)整型)32位位二进制二进制补码补码 2 147 483 6482 147 483 647unsigned long(无符号(无符号长整型)长整型)32位位二进制二进制数数04 249 967 295long long(40位长整型)位长整型)40位位二进制二

    5、进制补码补码 549 755 813 888549 755 813 887unsigned long long(40位无符号长整型)位无符号长整型)40位位二进制二进制数数01 099 511 627 775emum(枚举型)(枚举型)16位位二进制二进制补码补码 3276832767float(浮点型)(浮点型)32位位32位浮位浮点数点数1.175 494e 383.40 282 346e+38类类 型型长长 度度 内内 容容最最 小小 值值最最 大大 值值double(双精度浮点(双精度浮点数)数)32位位32位浮位浮点数点数1.175 494e 383.40 282 346e+38lo

    6、ng double(长双精(长双精度浮点数)度浮点数)32位位32位浮位浮点数点数1.175 494e 383.40 282 346e+38大存储器模式大存储器模式23位位二进制二进制数数00 x7FFFFFpointers(程序指针)(程序指针)24位位二进制二进制数数00 xFFFFFF6.2.2 关键字关键字1.const lC55x C编译器支持标准编译器支持标准C语言的语言的const关键字。关键字。l将这个关键字使用到对任意变量或数组的定义上将这个关键字使用到对任意变量或数组的定义上可以确保它们的值不改变。可以确保它们的值不改变。l如果定义一个对象为如果定义一个对象为const,那

    7、么,那么const段就会为段就会为该对象分配存储空间。使用该对象分配存储空间。使用const关键字可以定义关键字可以定义大常数表并将它们分配到系统大常数表并将它们分配到系统ROM中。中。C55X C/C+语言编程基础语言编程基础 例:例:6.2.2 关键字关键字 int *const p=&x;const int *q=&x;定义指向变量定义指向变量int的常量指针的常量指针p定义指向常量定义指向常量int的变量指针的变量指针q 注意:注意:例,例,ioport关键字的使用。关键字的使用。ioport int k void foo(void)ioport int i ioport int*j

    8、;/*正确正确*/;/*错误错误*/;/*正确正确*/例:定时器初始化例程例:定时器初始化例程 void TIMER_init(void)ioport unsigned int *tim0;ioport unsigned int *prd0;ioport unsigned int *tcr0;ioport unsigned int *prsc0;tim0 =(unsigned int*)0 x1000;prd0 =(unsigned int*)0 x1001;tcr0 =(unsigned int*)0 x1002;prsc0=(unsigned int*)0 x1003;*tcr0=0 x0

    9、4f0;*tim0=0;*prd0=0 x0ffff;*prsc0=2;*tcr0=0 x00e0;4.c_int00是是C/C+程序的入口点,这个函数名被系统程序的入口点,这个函数名被系统复位中断保留,该中断服务程序用来初始化系统并调用复位中断保留,该中断服务程序用来初始化系统并调用main函数。函数。关于中断的几个要点关于中断的几个要点:中断服务程序不能中断服务程序不能被普通被普通C C代码调用。代码调用。关键字关键字例:中断服务程序例:中断服务程序Void INTR_init(void)IVPD=0 xd0;IVPH=0 xd0;IER0=0 x10;DBIER0=0 x10;IFR0=

    10、0 xffff;asm(BCLR INTM);interrupt void timer().无参数无参数设置中断寄存器设置中断寄存器IER0IER0保存中断入口的现场信息保存中断入口的现场信息(所用所用寄存器或全部寄存器)寄存器或全部寄存器)通过通过.sect.sect指令创建中指令创建中断向量表。断向量表。.sect .vectors .ref _c_int00 .ref _timer rsv:B _c_int00 NOP .align 8nmi:.loop 8 nop.endloopint0:.loop 8nop.endloopint2:B _timernop.align 8tint:B

    11、_timernop.align 8在汇编语言中,中断程序名在汇编语言中,中断程序名前加下划线,如前加下划线,如 _timer。关于中断的几个要点关于中断的几个要点:中断处理程序可以处理单个中中断处理程序可以处理单个中断或多个中断,断或多个中断,c_int00除外除外保存中断入口的现场信息保存中断入口的现场信息 (所用寄存器或全部寄存器)所用寄存器或全部寄存器)volatile-存储器访问存储器访问定义格式:定义格式:register 变量类型变量类型 变量名变量名变量类型:变量类型:整型、浮点型整型、浮点型和和指针类型指针类型register6.2.4 asm指令指令-插入一条汇编指令插入一条

    12、汇编指令指令格式:asm(“assembler text”);main()int i;unsigned int uWork;while(1)for(i=0;ii,i=T0 RET;在定义汇编函数时,在函在定义汇编函数时,在函数名前加下划线数名前加下划线“_”.声明为外部函数声明为外部函数3:在在C代码中访问汇编语言变量代码中访问汇编语言变量l访问访问.bss段或段或.usect段中没有初始化的变量:段中没有初始化的变量:u使用使用.bss或或.usect指令来定义变量指令来定义变量u使用使用.global指令来定义为外部变量指令来定义为外部变量u在汇编语言中的变量前加下划线在汇编语言中的变量前

    13、加下划线“_”u在在C代码中声明变量为外部变量并正常地访问它代码中声明变量为外部变量并正常地访问它(b)C程序:程序:extern int var;/*外部变量外部变量*/var=1;/*使用变量使用变量*/(a)汇编语言程序:)汇编语言程序:.bss var,1;定义变量定义变量 .gloabal var;声明变量为外部变量声明变量为外部变量l非非.bss.bss段中变量访问段中变量访问-定义指向该变量的指针定义指向该变量的指针u定义变量定义变量u声明一个指向该变量起始地址的全局指针声明一个指向该变量起始地址的全局指针u在程序中,必须先声明该对象为在程序中,必须先声明该对象为externex

    14、tern型。型。3:在在C代码中访问汇编语言变量代码中访问汇编语言变量(a)汇编程序:)汇编程序:.global _sine .sect ”sine_tab”_sine:.float 0.0 .float 0.015987 .float 0.022145(b)C程序:程序:extern float sine;float*sine_p=sine;f=sine_p2;4.在在C语言中访问汇编语言常数语言中访问汇编语言常数l使用使用.set和和.global指令定义汇编语言全局常数。指令定义汇编语言全局常数。l使用使用&运算符来取值。运算符来取值。(a)汇编语言程序:)汇编语言程序:_table_s

    15、ize .set 10000;定义常量定义常量.global _table_size;定义该常量为全局常量定义该常量为全局常量例:例:(b)语言程序:)语言程序:extern int table_size;#define TABLE_SIZE (int)(&table_size)For(i=0;iTABLE_SIZE;+i)C和汇编语言的接口注意:和汇编语言的接口注意:例:利于混合编程的方式实现例:利于混合编程的方式实现y=a+b,主程序用主程序用C实现,子函数实现,子函数asmf采用汇编语言采用汇编语言,已知已知a,b,y均为整数。均为整数。主程序:主程序:Main()int a,int b

    16、;int y;a=3;b=5;y=asmf(a,b);extern int asmf(int a,int b);汇编源程序:汇编源程序:.global _asmf.text_asmf:add T1,T0,T0 RET习题:习题:利于混合编程的方式实现利于混合编程的方式实现 已知主程序如下,请将汇编源程序补充完整。已知主程序如下,请将汇编源程序补充完整。40iiixayMain()int anb=2,3,4,5;int xnb=1,2,3,4;int y;y=asmf(&a,&x,nb);extern long asmf(int*,int*,int);主程序:主程序:汇编源程序:汇编源程序:.g

    17、lobal _asmf.text_asmf:.RET#define nb 5;P249 作业作业 3,4,5,6,7,9,10小结:软件开发过程第一步,分析任务需求并用高级语言写出软件流程。第一步,分析任务需求并用高级语言写出软件流程。写流程可以采用编写写流程可以采用编写“伪代码伪代码”的方式完成。可以清楚地定义的方式完成。可以清楚地定义信号的处理机制,并为今后程序的调试和扩展预先留好接口。在流信号的处理机制,并为今后程序的调试和扩展预先留好接口。在流程描述中,可以将每一个关键的处理环节用函数(或直接用语言描程描述中,可以将每一个关键的处理环节用函数(或直接用语言描述)来表示,确定软件的框架。

    18、述)来表示,确定软件的框架。第二步,根据第一步的工作写主流程的第二步,根据第一步的工作写主流程的C或者汇编程序。或者汇编程序。整个工作过程可以充分参照例子工程做。整个工作过程可以充分参照例子工程做。第三步,细化主流程程序,按功能编写每一个函数。第三步,细化主流程程序,按功能编写每一个函数。第四步,完成中断服务程序的编写。第四步,完成中断服务程序的编写。第五步,编写链接用第五步,编写链接用cmd命令文件,确定汇编程序中各命令文件,确定汇编程序中各段代码和数据摆放的位置。段代码和数据摆放的位置。通常情况下,程序放置在通常情况下,程序放置在SARAM内,而数据放置在内,而数据放置在DARAM。注意程

    19、序的编制需需调程序的模块化、常量的符号化、注意程序的编制需需调程序的模块化、常量的符号化、变量名有意义等软件工程的基本要素。在汇编级编程的时候,变量名有意义等软件工程的基本要素。在汇编级编程的时候,需要做汇编语句级的优化。需要做汇编语句级的优化。小结:软件开发过程软件组成:软件组成:由代码和数据组成由代码和数据组成运行:运行:要运行的程序其代码和数据必须存放在要运行的程序其代码和数据必须存放在CPU的存储空间的存储空间存放存放:以代码块和数据块的形式存放:以代码块和数据块的形式存放 代码块和数据块是程序的最小单元代码块和数据块是程序的最小单元 一个代码块或数据块在存储空间中连续、顺序存放一个代

    20、码块或数据块在存储空间中连续、顺序存放 不同的代码块或数据块,可以存放于不同的存储空间中不同的代码块或数据块,可以存放于不同的存储空间中定位:定位:编译时定位:编译时定位:MCU系统采用编程时由系统采用编程时由ORG语句确定代码块和数据块的语句确定代码块和数据块的绝对地址编译器以此地址为首地址,连续、顺序地存放该代码块或数绝对地址编译器以此地址为首地址,连续、顺序地存放该代码块或数据块据块 链接时定位:链接时定位:DSP系统采用编程时由系统采用编程时由“SECTION”伪指令,以区分不伪指令,以区分不同的代码块或数据块编译器每遇到一个同的代码块或数据块编译器每遇到一个“SECTION”伪指令,

    21、从伪指令,从0地址地址重新开始一个代码块或数据块链接器将同名的重新开始一个代码块或数据块链接器将同名的“SECTION”合并,并合并,并按按.cmd文件中的文件中的“SECTION”命令进行实际的定位命令进行实际的定位 加载时定位:加载时定位:PC机系统采用编程、编译和链接时均未对程序进行绝对机系统采用编程、编译和链接时均未对程序进行绝对定位程序运行前,由操作系统对程序进行重定位,并加载到存储空间定位程序运行前,由操作系统对程序进行重定位,并加载到存储空间中中DSP C语言:C运行环境(1)存储模型:存储模型:C程序的代码和数据如何定位程序的代码和数据如何定位系统定义系统定义.cinit存放存

    22、放C程序中的变量初值和常量程序中的变量初值和常量.const 存放存放C程序中的字符常量、浮点常量和用程序中的字符常量、浮点常量和用const声明的常量声明的常量.switch 存放存放C程序中程序中switch语句的跳针表语句的跳针表.text 存放存放C程序的代码程序的代码.bss为为C程序中的全局和静态变量保留存储空间程序中的全局和静态变量保留存储空间.far 为为C程序中用程序中用far声明的全局和静态变量保留空间声明的全局和静态变量保留空间.stack 为为C程序系统堆栈保留存储空间,用于保存返回地址、函数程序系统堆栈保留存储空间,用于保存返回地址、函数间的参数传递、存储局部变量和保

    23、存中间结果间的参数传递、存储局部变量和保存中间结果.sysmem用于用于C程序中程序中malloc、calloc和和realloc函数动态分配存储函数动态分配存储空间空间用用定义用用定义#pragmaCODE_SECTION(symbol,section name)#pragmaDATA_SECTION(symbol,section name)DSP C语言:C运行环境()寄存器使用规则寄存器使用规则C编译器如何使用编译器如何使用DSP的寄存器的寄存器函数进入和返回前,寄存器的保护函数进入和返回前,寄存器的保护函数调用规则函数调用规则函数间的参数传递通过寄存器和系统堆栈进行函数间的参数传递通过

    24、寄存器和系统堆栈进行调用函数与被调用函数必须对各自的寄存器进行保护调用函数与被调用函数必须对各自的寄存器进行保护从被调用函数返回前,被调用函数必须归还所有已占用的堆栈空间从被调用函数返回前,被调用函数必须归还所有已占用的堆栈空间C和和ASM混合编程混合编程C和和ASM混合编程时,必须遵循寄存器使用规则和函数调用规则混合编程时,必须遵循寄存器使用规则和函数调用规则被被C调用的调用的ASM函数,其函数名前应加函数,其函数名前应加“_”中断服务程序中断服务程序ASM编写的中断服务程序必须对所有用到寄存器进行保护,以免破编写的中断服务程序必须对所有用到寄存器进行保护,以免破坏坏C运行环境运行环境C编写

    25、的中断服务程序应用编写的中断服务程序应用interrupt关键字声明关键字声明DSP C语言:C运行环境()系统初试化系统初试化 在运行在运行C程序前,必须建立程序前,必须建立C运行环境,此任务由运行环境,此任务由C引导程引导程序序_c_int00完成;完成;c程序在连接的时候需要程序在连接的时候需要rst.lib库。库。_c_int00包含在库函数中,包含在库函数中,build时自动将其链接进可时自动将其链接进可执行程序中,程序的入口地址必须设为执行程序中,程序的入口地址必须设为_c_int00起始地址。起始地址。_c_int00的源程序存放在由的源程序存放在由rts.src分离出来的分离出

    26、来的boot.asm中,用用可根据需要修改中,用用可根据需要修改 设置堆栈指针,设置堆栈指针,初始化全局变量:将初始化全局变量:将.cinit”段段“中数据拷贝到中数据拷贝到.bss”段段“中中 调用调用C程序的主函数程序的主函数main()不同系系的不同系系的DSP,其,其C编译器对编译器对C运行环境的处理略有运行环境的处理略有不同,具体参考各自的不同,具体参考各自的Optimizing C Compiler Users GuideDSP C语言:软件build流程 目标文件地址是浮动的,能被重定位目标文件地址是浮动的,能被重定位链接器用链接器用.cmd文件对链接目标,进行重定文件对链接目标

    27、,进行重定位位系出目标文件、库文件和链接器选项系出目标文件、库文件和链接器选项用用MEMORY命令描述目标系统存储空间配命令描述目标系统存储空间配置置用用SECTIONS命令描述命令描述“段段”如何定位如何定位Hex转换程序也使用转换程序也使用.cmd文件,配置文件,配置转换选项转换选项 CCS 软件开发方法 传统软件开发方法用用ASM或或ASM和和C混合编程,从零开始混合编程,从零开始分配存储器空间分配存储器空间编写硬件件源头文件编写硬件件源头文件DSP片内部分:片内部分:描述片内寄存器地址描述片内寄存器地址描述片内寄存器控制制状态位位描述片内寄存器控制制状态位位DSP板上件源头文件板上件源

    28、头文件描述片外外设寄存器地址描述片外外设寄存器地址描述片外外设寄存器控制制状态位位描述片外外设寄存器控制制状态位位编写应用用用的外设设动程序编写应用用用的外设设动程序片内制片外外设初试化程序片内制片外外设初试化程序片内制片外外设操作程序片内制片外外设操作程序编写中断向量表和中断服务程序编写中断向量表和中断服务程序编写应用用用的算法编写应用用用的算法编写主控程序顺序、循环执行编写主控程序顺序、循环执行TI倡导的DSP软件架构TI免费提供的基础软件 CSL库:库:Chip Support Library芯片支持库芯片支持库 定义定义DSP片内外设件源,实现片内外设基本操作片内外设件源,实现片内外设

    29、基本操作DDK:Driver Development Kit 设备设动程序开发包设备设动程序开发包 设计标准的设备设动程序模型,方便开发新的设备设动程序设计标准的设备设动程序模型,方便开发新的设备设动程序DSPLIB制制IMGLIB:Signal Processing Library 数学运算、矩阵运算、数学运算、矩阵运算、FFT、滤波、卷积、相关等信号处理、滤波、卷积、相关等信号处理函数函数 压缩、分析、滤波和格式转换等图像制视频处理函数压缩、分析、滤波和格式转换等图像制视频处理函数DSP/BIOS:嵌入式实时、多任务操作系统:嵌入式实时、多任务操作系统 实时、多任务内核实时、多任务内核 实

    30、时分析实时分析Reference Frameworks:程序参考架构:程序参考架构 C程序初试骨架,通过其可以迅速创建特定的应用程序程序初试骨架,通过其可以迅速创建特定的应用程序XDAIS:DSP Algorithm Standard,DSP算法标准算法标准 规定一系系算法编程规则,遵循这些规则的算法,可以相互规定一系系算法编程规则,遵循这些规则的算法,可以相互调用调用DSP/BIOS:功能抢先型实时、多任务操作系统内核抢先型实时、多任务操作系统内核基于优先级的、抢先型实时调度程序基于优先级的、抢先型实时调度程序支持多线程管理与调度支持多线程管理与调度支持支持4种线程类型:种线程类型:HWI、

    31、SWI、TSK、IDL支持支持3种作业间的通信方式:种作业间的通信方式:Mailboxes、Semaphores、Queues支持周期函数,方便实现固定时间间隔的数据采集,简化多速率系支持周期函数,方便实现固定时间间隔的数据采集,简化多速率系统的设计统的设计提供存储器管理,实现动态存储器分配提供存储器管理,实现动态存储器分配实时分析模块实时分析模块分析信息实时获取、传输和显示,为早期的系统级排错提供帮助分析信息实时获取、传输和显示,为早期的系统级排错提供帮助DSP/BIOS模块中内含分析信息的实时获取功能模块中内含分析信息的实时获取功能分析信息的实时传输由分析信息的实时传输由RTDX(Real

    32、-Time Data Exchange)技术)技术实现,完成目标实现,完成目标DSP与主机之间的实时通信,与主机之间的实时通信,C6000 RTDX的带宽的带宽为为20KByte,RTDX是在是在idle作业期间完成,所以对程序执行速度的作业期间完成,所以对程序执行速度的影响最小影响最小主机可以显示:事件记录、线程执行顺序、执行次数的最大值或平主机可以显示:事件记录、线程执行顺序、执行次数的最大值或平均值和总的均值和总的CPU负载等信息负载等信息DSP/BIOS:功能 为了方便使用,为了方便使用,TI 提供一个提供一个可视化的配置工具,用于配可视化的配置工具,用于配置实际系统中所需的置实际系统

    33、中所需的DSP/BIOS模块模块;可以在可以在CCS集成环境中调用之集成环境中调用之DSP/BIOS是可裁剪的,只是可裁剪的,只有被应用程序使用的模块才有被应用程序使用的模块才会被链接到应用程序中会被链接到应用程序中DSP/BIOS开销小:代码大开销小:代码大小:小:1K WordsCPU占用:占用:1MIPSDSP/BIOS采用采用标准的标准的API,所以不同系系,所以不同系系DSP之间的移植容易之间的移植容易DSP/BIOS集成在集成在CCS中,中,无需使用许可费无需使用许可费CSL 库 什么是什么是CSL:Chip Support Library 用于配置、控制和管理用于配置、控制和管理

    34、DSP片上外设片上外设 已为已为C6000和和C5000系系系系DSP设计了各自的设计了各自的CSL库库 CSL库函数大多数是用库函数大多数是用C语言编写的,并已对代码的大语言编写的,并已对代码的大小和速度进行了优化小和速度进行了优化 CSL库是可裁剪的库是可裁剪的:即只有被使用的:即只有被使用的CSL模块才会包含模块才会包含进应用程序中进应用程序中 CSL库是可扩展的库是可扩展的:每个片上外设的每个片上外设的API相互独立,增相互独立,增加新的加新的API,对其他片上外设没有影响,对其他片上外设没有影响 为什么要设计为什么要设计CSL DSP片上外设种类及其应用日趋复杂片上外设种类及其应用日

    35、趋复杂 提供一组标准的方法用于访问和控制片上外设提供一组标准的方法用于访问和控制片上外设 免除用用编写配置和控制片上外设所必需的定义和代码免除用用编写配置和控制片上外设所必需的定义和代码CSL:特点 片上外设编程的标准协议:片上外设编程的标准协议:定义一组标准的定义一组标准的APIs:函数、数据类型、宏:函数、数据类型、宏对硬件进行行象,提取符号化的片上外设描对硬件进行行象,提取符号化的片上外设描述述 定义一组宏,用于访问和建立寄存器及其位值定义一组宏,用于访问和建立寄存器及其位值基本的件源管理基本的件源管理 对多件源的片上外设进行管理对多件源的片上外设进行管理已集成到已集成到DSP/BIOS

    36、中中 通过图形用用接口通过图形用用接口GUI对对CSL进行配置进行配置使片上外设容易使用使片上外设容易使用 缩短开发时间,增加可移植性缩短开发时间,增加可移植性CSL:片上外设DDK(Driver Development Kit)TI提供提供DDK的目的的目的标准的设备设动程序模型,用用无需从零开始编写设备设动程序标准的设备设动程序模型,用用无需从零开始编写设备设动程序设备设动程序模型(设备设动程序模型(IOM)将设备设动程序分为将设备设动程序分为2个部分个部分与设备相关的:与设备相关的:“迷你迷你”设动程序(设动程序(mini-driver)与设备无关的:与设备无关的:“类类”设动程序(设动

    37、程序(class-driver)“类类”设动程序设动程序设备设动程序的上上行象,使其与特定设备无关,为应用程序提供通用的设备设动程序的上上行象,使其与特定设备无关,为应用程序提供通用的接口接口3大类大类“类类”设动程序:设动程序:SIO、PIP和和GIOSIO:流:流I/O接口,由接口,由SIO和和DIO组成,组成,DIO负责缓冲器管理、信号同步以负责缓冲器管理、信号同步以及底上及底上“迷你迷你”设动程序接口设动程序接口PIP:管道接口,有:管道接口,有PIP和和PIO组成,组成,PIO负责缓冲器管理、信号同步以及负责缓冲器管理、信号同步以及底上底上“迷你迷你”设动程序接口设动程序接口GIO:

    38、通用:通用I/O,允许进行块读块写,可以用其新的用用设动程序,允许进行块读块写,可以用其新的用用设动程序“迷你迷你”设动程序设动程序设备设动程序的底上行象,与特定设备有关,对设计硬件设备进行操作,设备设动程序的底上行象,与特定设备有关,对设计硬件设备进行操作,DDK规定一组规定一组标准的标准的API,函数体由用用根据实际硬件设备编写,函数体由用用根据实际硬件设备编写DDK是在是在CSL基础上对外设基础上对外设I/O进行更高上次的行象进行更高上次的行象TI免费提供免费提供DDK的源代码、库及相关文档,可从的源代码、库及相关文档,可从TI网站上免费下载网站上免费下载Signal Processin

    39、g LibraryC6000系系系系DSP基本的信号处理库基本的信号处理库DSPLIB提供数学运算、矩阵运算、提供数学运算、矩阵运算、FFT、滤波、卷积等常用的信号处理函数、滤波、卷积等常用的信号处理函数TMS320C62x DSPLIB:用门为:用门为C62x系系系系DSP进行优化进行优化TMS320C67x DSPLIB:用门为:用门为C67x系系系系DSP进行优化进行优化TMS320C64x DSPLIB:用门为:用门为C64x系系系系DSP进行优化进行优化FastRTS:提供快速的单精度制双精度浮点数学运算和转换函数提供快速的单精度制双精度浮点数学运算和转换函数TMS320C62x制制

    40、C64x FastRTS:用门为:用门为C62x制制C64x系系系系DSP进行优化进行优化TMS320C67x FastRTS:用门为:用门为C67x系系系系DSP进行优化进行优化IMGLIB:提供压缩、分析、滤波和公司转换等常用的图像制视频处理:提供压缩、分析、滤波和公司转换等常用的图像制视频处理函数函数TMS320C62x IMGLIB:用门为:用门为C62x系系系系DSP进行优化进行优化TMS320C64x IMGLIB:用门为:用门为C64x系系系系DSP进行优化进行优化C5000系系系系DSP基本的信号处理库基本的信号处理库DSPLIB:提供数学运算、矩阵运算、:提供数学运算、矩阵运

    41、算、FFT、滤波、卷积等常用的信号处理、滤波、卷积等常用的信号处理函数函数TMS320C54x DSPLIB:用门为:用门为C54x系系系系DSP进行优化进行优化TMS320C55x DSPLIB:用门为:用门为C55x系系系系DSP进行优化进行优化IMGLIB:提供压缩、分析、滤波和公司转换等常用的图像制视频处理:提供压缩、分析、滤波和公司转换等常用的图像制视频处理函数函数TMS320C55x IMGLIB:用门为:用门为C55x系系系系DSP进行优化进行优化Reference FrameworkTI提供软件参考架构,目的:提供软件参考架构,目的:DSP系统日趋复杂系统日趋复杂 包含多个算法

    42、(如:同时包含音频算法和视频算法)包含多个算法(如:同时包含音频算法和视频算法)同一个算法可能需要多道运行(如:对多个视频流进行处理)同一个算法可能需要多道运行(如:对多个视频流进行处理)不同算法或通道所需的数据或帧率可能不同(如:音频帧和视不同算法或通道所需的数据或帧率可能不同(如:音频帧和视频帧帧率不同)频帧帧率不同)某些某些DSP硬件系统的存储容量有限(如:硬件系统的存储容量有限(如:C54x系统)系统)软件对象可能需要动态地创建和删除,导致存储器需要进行动软件对象可能需要动态地创建和删除,导致存储器需要进行动态管理态管理 硬件系统可能为由硬件系统可能为由DSP和通用处理器构成的双处理器

    43、系统和通用处理器构成的双处理器系统TI精选一些通用的模块,构成软件参考架构精选一些通用的模块,构成软件参考架构让你将精力集中于系统的特定应用方面让你将精力集中于系统的特定应用方面TI根据系统的复杂程度已提供根据系统的复杂程度已提供3个软件参考架构个软件参考架构 RF1:小型系统,主要用于由:小型系统,主要用于由C54x和和C55x实现的低端系统实现的低端系统 RF3:中型系统,主要用于由:中型系统,主要用于由C54x和和C55x实现的高端系统和实现的高端系统和C6x实现的低端系统实现的低端系统 RF5:大型系统,主要用于由:大型系统,主要用于由C6x实现的高端系统实现的高端系统软件开发:软件开

    44、发:DSP Algorithm Standard(XDAIS)制定制定XDAIS的目的的目的DSP软件系统日趋复杂,算法由用业公司、用业人员开发软件系统日趋复杂,算法由用业公司、用业人员开发算法提供者和算法使用者分离算法提供者和算法使用者分离为了是二者协调工作,必须定义一组通用的编程规则和指导方针,为了是二者协调工作,必须定义一组通用的编程规则和指导方针,以及一组编程接口以及一组编程接口即使算法使用者和提供者相同,但只要符合即使算法使用者和提供者相同,但只要符合XDAIS算法标准,则这算法标准,则这些算法可以用到不同的项目中,使算法具有良好的继承性些算法可以用到不同的项目中,使算法具有良好的继

    45、承性如何开发符合标准的算法如何开发符合标准的算法TI提供一组工具提供一组工具Component Wizard Control:超级向导,帮助你快速、精确地将:超级向导,帮助你快速、精确地将你的算法封装为符合你的算法封装为符合XDAIS标准的算法标准的算法QuaiTI:测试工具,用于快速、有效地测试算法是否符合:测试工具,用于快速、有效地测试算法是否符合XDAIS标标准准DOSA:自动优化工具,当算法用于静态环境时,删除算法中不必:自动优化工具,当算法用于静态环境时,删除算法中不必要的部分要的部分TI免费提供免费提供XDAIS开发套件,可从开发套件,可从TI网站上免费下载网站上免费下载实验实验3:C与汇编混合编程与汇编混合编程 int x,y,z;int add(int a,int b);main()x=3;y=17;while(1)z=add(x,y);_add:AADD#-3,SP MOV T1,*SP(#1);MOV T0,*SP(#0);MOV*SP(#1),AR1;ADD*SP(#0),AR1,T0;AADD#3,SP RET实验实验3:C与汇编混合编程与汇编混合编程_add:BCLR CPL .CPL_OFF MOV T1,AR1 ADD AR1,T0 BSET CPL .CPL_ON RET

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:DSP-C语言程序设计课件.ppt
    链接地址:https://www.163wenku.com/p-4145168.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库