第4章-C55x处理器的软件设计-课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第4章-C55x处理器的软件设计-课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- _C55x 处理器 软件设计 课件
- 资源描述:
-
1、20222022年年7 7月月2323日日TMS320C55x DSPTMS320C55x DSP原理及应用原理及应用1 1 20222022年年7 7月月2323日日TMS320C55x DSPTMS320C55x DSP原理及应用原理及应用2 24.1 C55x处理器程序基本结构处理器程序基本结构4.2 C语言程序开发及优化语言程序开发及优化4.3 C语言与汇编语言的混合编程语言与汇编语言的混合编程4.4 通用目标文件格式通用目标文件格式4.5 C55x处理器的数字信号处理库和图像、处理器的数字信号处理库和图像、视频处理库视频处理库20222022年年7 7月月2323日日TMS320C5
2、5x DSPTMS320C55x DSP原理及应用原理及应用3 3 C55x处理器软件开发流程 C/C+源文件C编译器汇编源代码COFF目标文件汇编器链接器可执行COFF文件宏源文件归档器宏调用库归档器目标文件库运行支持库建立运行支持库20222022年年7 7月月2323日日TMS320C55x DSPTMS320C55x DSP原理及应用原理及应用4 4。20222022年年7 7月月2323日日TMS320C55x DSPTMS320C55x DSP原理及应用原理及应用5 5 20222022年年7 7月月2323日日TMS320C55x DSPTMS320C55x DSP原理及应用原理
3、及应用6 6 虽然嵌入式操作系统已经发展得较为成熟,但虽然嵌入式操作系统已经发展得较为成熟,但通过程序自身完成任务调度仍然保持着旺盛的生命通过程序自身完成任务调度仍然保持着旺盛的生命力,这是因为这种方式适合于力,这是因为这种方式适合于DSPDSP这种需要对大量实这种需要对大量实时数据完成顺序处理的应用。下面给出自我调度程时数据完成顺序处理的应用。下面给出自我调度程序的基本结构。序的基本结构。中断程序1;中断程序m;Main()DSP_INT();/DSP初始化For(;)/主循环if(条件1)/判断条件1处理模块1;/条件满足运行处理模块1;if(条件n)/判断条件n处理模块n;/条件满足运行
4、处理模块n;20222022年年7 7月月2323日日TMS320C55x DSPTMS320C55x DSP原理及应用原理及应用7 7 初始化部分通常完成初始化部分通常完成DSPDSP软、硬件的初始化设置,启动系软、硬件的初始化设置,启动系 统硬件,使能统硬件,使能DSPDSP中断,启动中断,启动DMADMA传送等工作。传送等工作。主循环部分是程序的主体,将由它完成数据输入、处理和主循环部分是程序的主体,将由它完成数据输入、处理和输出等工作。主循环由条件判断和处理模块组成,当满足条件时输出等工作。主循环由条件判断和处理模块组成,当满足条件时运行处理模块,不满足条件则自动跳到下一个判断条件。运
5、行处理模块,不满足条件则自动跳到下一个判断条件。中断程序通常不进行数据处理,只通过设置判断标志来影中断程序通常不进行数据处理,只通过设置判断标志来影响主循环部分的运行。响主循环部分的运行。自我调度程序通常由中断程序部分、初始化部自我调度程序通常由中断程序部分、初始化部分和主循环部分组成分和主循环部分组成:20222022年年7 7月月2323日日TMS320C55x DSPTMS320C55x DSP原理及应用原理及应用8 8 为了满足实时运行的要求,自我调度程序的主为了满足实时运行的要求,自我调度程序的主循环部分必须将处理时延限制在最大可接受时延内循环部分必须将处理时延限制在最大可接受时延内
6、,具体来说就是运行主循环的所有分支的时间总和,具体来说就是运行主循环的所有分支的时间总和必须小于最大可接受时延,如果不能满足这一条件必须小于最大可接受时延,如果不能满足这一条件,则在最坏情况下,会造成处理数据的不连续,而,则在最坏情况下,会造成处理数据的不连续,而无法实现数据的实时处理。无法实现数据的实时处理。当所编写的程序没有满足上述条件时,则需要对当所编写的程序没有满足上述条件时,则需要对处理流程进行修改,或修改处理算法以满足条件。处理流程进行修改,或修改处理算法以满足条件。20222022年年7 7月月2323日日TMS320C55x DSPTMS320C55x DSP原理及应用原理及应
7、用9 9 在数字信号处理器中运行的操作系统必须满足系统实时在数字信号处理器中运行的操作系统必须满足系统实时性要求,而操作系统的实时方式可以分成两种性要求,而操作系统的实时方式可以分成两种硬实时方硬实时方式和软实时方式。式和软实时方式。软实时系统由软件来进行任务的切换,而硬实时系统则软实时系统由软件来进行任务的切换,而硬实时系统则按照固定时钟节拍切换任务。软实时系统使各个任务尽快运按照固定时钟节拍切换任务。软实时系统使各个任务尽快运行,而不要求限定某个任务在多长时间内完成;硬实时系统行,而不要求限定某个任务在多长时间内完成;硬实时系统中各任务不仅要执行无误,而且要准时。中各任务不仅要执行无误,而
8、且要准时。嵌入式实时操作系统的作用就是合理调度、分配任务的嵌入式实时操作系统的作用就是合理调度、分配任务的运行,使各个任务正确、及时地执行。运行,使各个任务正确、及时地执行。20222022年年7 7月月2323日日TMS320C55x DSPTMS320C55x DSP原理及应用原理及应用1010 嵌入式操作系统的核心是操作系统内核,在多嵌入式操作系统的核心是操作系统内核,在多任务系统中,内核负责管理各个任务,为每个任务任务系统中,内核负责管理各个任务,为每个任务分配分配CPUCPU时间,负责任务间的通信和任务切换。根据时间,负责任务间的通信和任务切换。根据其重要程度的不同系统中每个任务被赋
9、予一定的优其重要程度的不同系统中每个任务被赋予一定的优先级,内核将根据任务的优先级进行任务调度。基先级,内核将根据任务的优先级进行任务调度。基于优先级的内核可以分成不可剥夺型和可剥夺型两于优先级的内核可以分成不可剥夺型和可剥夺型两种类型。种类型。20222022年年7 7月月2323日日TMS320C55x DSPTMS320C55x DSP原理及应用原理及应用1111 20222022年年7 7月月2323日日TMS320C55x DSPTMS320C55x DSP原理及应用原理及应用1212 这种内核的优点是响应中断快,采用不可剥夺型内核允这种内核的优点是响应中断快,采用不可剥夺型内核允许
10、任务使用不可重入函数,每个任务调用不可重入型函数不许任务使用不可重入函数,每个任务调用不可重入型函数不必担心其他任务可能使用该函数而造成数据破坏。使用不可必担心其他任务可能使用该函数而造成数据破坏。使用不可剥夺型内核时,任务的响应时间取决于最长任务的执行时间剥夺型内核时,任务的响应时间取决于最长任务的执行时间。使用该内核很少需要使用信号量保护共享数据,这是因为。使用该内核很少需要使用信号量保护共享数据,这是因为正在运行的任务不必担心其他任务抢占正在运行的任务不必担心其他任务抢占CPUCPU;但如果任务使用;但如果任务使用共享设备时,还应使用互斥型信号量。共享设备时,还应使用互斥型信号量。202
11、22022年年7 7月月2323日日TMS320C55x DSPTMS320C55x DSP原理及应用原理及应用1313 20222022年年7 7月月2323日日TMS320C55x DSPTMS320C55x DSP原理及应用原理及应用1414 20222022年年7 7月月2323日日TMS320C55x DSPTMS320C55x DSP原理及应用原理及应用1515 20222022年年7 7月月2323日日TMS320C55x DSPTMS320C55x DSP原理及应用原理及应用1616 20222022年年7 7月月2323日日TMS320C55x DSPTMS320C55x D
12、SP原理及应用原理及应用171720222022年年7 7月月2323日日TMS320C55x DSPTMS320C55x DSP原理及应用原理及应用1818 OSIntExit()OSTaskDel()OSTaskDel()挂起状态休眠状态就绪状态运行状态被中断状态OSTaskCreate()OSTaskCreateExt()OSFlagPost()OSMboxPost()OSMboxPost()OSMutexPost()OSQPost()OSQPostFront()OSSemPost()OSTaskResume()OSTimeDlyResume()OSTimeTick()OSStart()
13、OSIntExt()OS_TASK_SW()CPU使用权被剥夺OSTaskDel()OSFlagPend()OSMboxPend()OSMutexPend()OSQPend()OSSemPend()OSTaskSuspend()OSTimeDly()OSTimeDlyHMSM()中断20222022年年7 7月月2323日日TMS320C55x DSPTMS320C55x DSP原理及应用原理及应用1919 20222022年年7 7月月2323日日TMS320C55x DSPTMS320C55x DSP原理及应用原理及应用2020 20222022年年7 7月月2323日日TMS320C55
14、x DSPTMS320C55x DSP原理及应用原理及应用2121 20222022年年7 7月月2323日日TMS320C55x DSPTMS320C55x DSP原理及应用原理及应用2222 20222022年年7 7月月2323日日TMS320C55x DSPTMS320C55x DSP原理及应用原理及应用2323 20222022年年7 7月月2323日日TMS320C55x DSPTMS320C55x DSP原理及应用原理及应用2424 单向同步单向同步20222022年年7 7月月2323日日TMS320C55x DSPTMS320C55x DSP原理及应用原理及应用2525 20
15、222022年年7 7月月2323日日TMS320C55x DSPTMS320C55x DSP原理及应用原理及应用2626 20222022年年7 7月月2323日日TMS320C55x DSPTMS320C55x DSP原理及应用原理及应用2727 20222022年年7 7月月2323日日TMS320C55x DSPTMS320C55x DSP原理及应用原理及应用2828 20222022年年7 7月月2323日日TMS320C55x DSPTMS320C55x DSP原理及应用原理及应用2929 20222022年年7 7月月2323日日TMS320C55x DSPTMS320C55x
16、DSP原理及应用原理及应用3030 类型类型长度长度内容内容最小值最小值最大值最大值signed char(有符号字符)16位ASCII码-3276832767char,unsigned char(无符号字符)16位ASCII码065535short,signed short(短整型)16位二进制补码-3276832767unsigned short(无符号短整型)16位二进制数06553520222022年年7 7月月2323日日TMS320C55x DSPTMS320C55x DSP原理及应用原理及应用3131 char,unsigned charpointers(数据指针)小存储器模式1
17、6位0 xFFFF类类 型型长长 度度内内 容容最最 小小 值值最最 大大 值值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位二进制补码549 755 813 888549 755 813 887unsigned long long(40位无符号长整型)40位二进制数01 0
18、99 511 627 775emum(枚举型)16位二进制补码3276832767float(浮点型)32位32位浮点数1.175 494e383.40 282 346e+3820222022年年7 7月月2323日日TMS320C55x DSPTMS320C55x DSP原理及应用原理及应用3232类 型长 度内 容最 小 值最 大 值double(双精度浮点数)32位32位浮点数1.175 494e383.40 282 346e+38long double(长双精度浮点数)32位32位浮点数1.175 494e383.40 282 346e+38大存储器模式23位二进制数00 x7FFFF
19、Fpointers(程序指针)24位二进制数00 xFFFFFF20222022年年7 7月月2323日日TMS320C55x DSPTMS320C55x DSP原理及应用原理及应用3333 20222022年年7 7月月2323日日TMS320C55x DSPTMS320C55x DSP原理及应用原理及应用3434 20222022年年7 7月月2323日日TMS320C55x DSPTMS320C55x DSP原理及应用原理及应用3535 ioportioport intint *p;p;printf(“%pnprintf(“%pn”,(void”,(void*)p);)p);202220
20、22年年7 7月月2323日日TMS320C55x DSPTMS320C55x DSP原理及应用原理及应用3636 _ _foofoo:MOV#_ MOV#_i,port(#_ioport_pointeri,port(#_ioport_pointer);存储存储i i在在I/OI/O空间的地址空间的地址 MOV port(#_ioport_pointer),AR3 ;MOV port(#_ioport_pointer),AR3 ;载入载入i i的地址的地址 MOV MOV*AR3,AR1 AR3,AR1 ;将将i i的内容存放到的内容存放到AR1AR1中中 MOV AR1,MOV AR1,*a
21、bs16(#_j)abs16(#_j);将将i i的内容保存到的内容保存到j j return return intint *ioportioport ioport_pointerioport_pointer;/;/*ioportioport 指针指针 */intint i;i;intint j;j;void void foofoo(void)(void)ioport_pointerioport_pointer=&i;=&i;j=j=*ioport_pointerioport_pointer;20222022年年7 7月月2323日日TMS320C55x DSPTMS320C55x DSP原理
展开阅读全文