第4章c55x处理器的软件设计

上传人:bin****86 文档编号:55572041 上传时间:2018-10-02 格式:PPT 页数:103 大小:1.17MB
返回 下载 相关 举报
第4章c55x处理器的软件设计_第1页
第1页 / 共103页
第4章c55x处理器的软件设计_第2页
第2页 / 共103页
第4章c55x处理器的软件设计_第3页
第3页 / 共103页
第4章c55x处理器的软件设计_第4页
第4页 / 共103页
第4章c55x处理器的软件设计_第5页
第5页 / 共103页
点击查看更多>>
资源描述

《第4章c55x处理器的软件设计》由会员分享,可在线阅读,更多相关《第4章c55x处理器的软件设计(103页珍藏版)》请在金锄头文库上搜索。

1、2018年10月2日,TMS320C55x DSP原理及应用,1,第4章 C55x处理器的软件设计,内容提要 C55x系列处理器应用灵活、处理能力强大,为开发、使用提供了一个很好的硬件平台,要使这个平台更好的发挥作用,高效、方便的软件设计是不可或缺的。 程序的主体框架和对实时性要求不高的部分采用C/C+语言,而算法实现采用汇编语言,这样能够充分发挥二者的优点,解决易读性和效率之间的矛盾。同时也改善了软件的移植性,在软件移植时不用改变程序的主体框架,只要为处理器提供相应的算法即可。本章主要介绍了C55x处理器的程序基本结构,C语言编程以及优化,C语言与汇编语言的混合编程,通用目标文件格式,最后对

2、C55x处理器的数字信号处理库和图像、视频处理库进行了介绍。,2018年10月2日,TMS320C55x DSP原理及应用,2,第4章 C55x处理器的软件设计,4.1 C55x处理器程序基本结构 4.2 C语言程序开发及优化 4.3 C语言与汇编语言的混合编程 4.4 通用目标文件格式 4.5 C55x处理器的数字信号处理库和图像、视频处理库,2018年10月2日,TMS320C55x DSP原理及应用,3,第4章 C55x处理器的软件设计,C55x处理器软件开发流程,2018年10月2日,TMS320C55x DSP原理及应用,4,第4章 C55x处理器的软件设计, 汇编器:是把汇编源代码

3、转换成机器语言。, 汇编器:是把汇编源代码转换成机器语言。, 链接器:则将多个目标文件结合成一个可执行文件 。, 归档器:可以把一组文件归档为一个库,供用户使用。,如果用户只用汇编语言编写程序,则将跳过C编译器而直接通过汇编器生成目标文件。,2018年10月2日,TMS320C55x DSP原理及应用,5,第4章 C55x处理器的软件设计,4.1 C55x处理器程序基本结构,根据任务调度的方式不同,C55x处理器程序大体可以分为两类 : (1) 由程序自己完成任务调度 程序运行效率高,对硬件中断响应快,程序运行稳定,适合于任务较为单一,实时性较强的应用; (2) 由嵌入式操作系统完成任务调度

4、但如果要利用处理器同时完成多个任务,应用嵌入式操作系统是十分有必要的,这是因为嵌入式操作系统可以将应用分解为多个任务,简化了应用系统软件设计,更为重要的是良好的多任务设计有助于提高系统的稳定性和可靠性。,2018年10月2日,TMS320C55x DSP原理及应用,6,第4章 C55x处理器的软件设计,4.1.1 自我调度程序的基本结构,虽然嵌入式操作系统已经发展得较为成熟,但通过程序自身完成任务调度仍然保持着旺盛的生命力,这是因为这种方式适合于DSP这种需要对大量实时数据完成顺序处理的应用。下面给出自我调度程序的基本结构。,中断程序1;中断程序m;Main()DSP_INT(); /DSP初

5、始化For(;) /主循环if(条件1) /判断条件1处理模块1; /条件满足运行处理模块1;if(条件n) /判断条件n处理模块n; /条件满足运行处理模块n;,2018年10月2日,TMS320C55x DSP原理及应用,7,第4章 C55x处理器的软件设计, 初始化部分通常完成DSP软、硬件的初始化设置,启动系 统硬件,使能DSP中断,启动DMA传送等工作。 主循环部分是程序的主体,将由它完成数据输入、处理和输出等工作。主循环由条件判断和处理模块组成,当满足条件时运行处理模块,不满足条件则自动跳到下一个判断条件。 中断程序通常不进行数据处理,只通过设置判断标志来影响主循环部分的运行。,自

6、我调度程序通常由中断程序部分、初始化部分和主循环部分组成 :,4.1.1 自我调度程序的基本结构,2018年10月2日,TMS320C55x DSP原理及应用,8,第4章 C55x处理器的软件设计,为了满足实时运行的要求,自我调度程序的主循环部分必须将处理时延限制在最大可接受时延内,具体来说就是运行主循环的所有分支的时间总和必须小于最大可接受时延,如果不能满足这一条件,则在最坏情况下,会造成处理数据的不连续,而无法实现数据的实时处理。,当所编写的程序没有满足上述条件时,则需要对处理流程进行修改,或修改处理算法以满足条件。,4.1.1 自我调度程序的基本结构,2018年10月2日,TMS320C

7、55x DSP原理及应用,9,第4章 C55x处理器的软件设计,在数字信号处理器中运行的操作系统必须满足系统实时性要求,而操作系统的实时方式可以分成两种硬实时方式和软实时方式。,软实时系统由软件来进行任务的切换,而硬实时系统则按照固定时钟节拍切换任务。软实时系统使各个任务尽快运行,而不要求限定某个任务在多长时间内完成;硬实时系统中各任务不仅要执行无误,而且要准时。,4.1.2 应用嵌入式操作系统,嵌入式实时操作系统的作用就是合理调度、分配任务的运行,使各个任务正确、及时地执行。,2018年10月2日,TMS320C55x DSP原理及应用,10,第4章 C55x处理器的软件设计,嵌入式操作系统

8、的核心是操作系统内核,在多任务系统中,内核负责管理各个任务,为每个任务分配CPU时间,负责任务间的通信和任务切换。根据其重要程度的不同系统中每个任务被赋予一定的优先级,内核将根据任务的优先级进行任务调度。基于优先级的内核可以分成不可剥夺型和可剥夺型两种类型。,4.1.2 应用嵌入式操作系统,2018年10月2日,TMS320C55x DSP原理及应用,11,第4章 C55x处理器的软件设计,1. 不可剥夺型内核,不可剥夺型内核要求每个任务主动放弃CPU使用权,这种任务的调度方法也可以叫做合作型多任务,每个任务相互合作,共享一个CPU。,不可剥夺型内核中的异步事件由中断服务来处理,中断服务可以使

9、一个高优先级的任务由挂起态变为就绪态;但在中断服务之后,CPU的使用权还给原来被中断的任务,直到该任务主动放弃CPU的使用权,一个高优先级的任务才能进入运行态。,4.1.2 应用嵌入式操作系统,2018年10月2日,TMS320C55x DSP原理及应用,12,第4章 C55x处理器的软件设计,这种内核的优点是响应中断快,采用不可剥夺型内核允许任务使用不可重入函数,每个任务调用不可重入型函数不必担心其他任务可能使用该函数而造成数据破坏。使用不可剥夺型内核时,任务的响应时间取决于最长任务的执行时间。使用该内核很少需要使用信号量保护共享数据,这是因为正在运行的任务不必担心其他任务抢占CPU;但如果

10、任务使用共享设备时,还应使用互斥型信号量。,4.1.2 应用嵌入式操作系统,1. 不可剥夺型内核,2018年10月2日,TMS320C55x DSP原理及应用,13,第4章 C55x处理器的软件设计,不可剥夺型内核的缺点是响应时间具有不确定性,无法确定最高优先级的任务何时能够获得CPU的使用权。,2. 可剥夺型内核,可剥夺型内核运行时,一旦具有最高优先级的任务就绪,就总能得到CPU的使用权。当有一个具有更高优先权的任务进入就绪态时,当前运行的任务将被挂起,更高级的任务立刻得到CPU的使用权。,1. 不可剥夺型内核,4.1.2 应用嵌入式操作系统,2018年10月2日,TMS320C55x DS

11、P原理及应用,14,第4章 C55x处理器的软件设计,如果是中断服务子程序使一个高优先级的任务进入就绪状态,中断完成后,被中断的任务被挂起,开始运行更高级的任务。使用可剥夺型内核可以随时执行最高级任务,这使得任务的响应时间得以最优化。使用可剥夺内核要求应用程序不应直接使用不可重入函数,如果要使用则应满足互斥条件。,4.1.2 应用嵌入式操作系统,2. 可剥夺型内核,2018年10月2日,TMS320C55x DSP原理及应用,15,第4章 C55x处理器的软件设计,4.1.2 应用嵌入式操作系统,内核的主要工作是完成任务的调度,任务也可称作线程,是一个简单的程序,该程序认为CPU完全属于自己。

12、操作系统要求把系统所要完成的工作分解为多个任务,每个任务都是应用的一部分。任务都被赋予一定的优先级,并拥有自己的一套CPU寄存器和堆栈空间。,2018年10月2日,TMS320C55x DSP原理及应用,16,第4章 C55x处理器的软件设计,4.1.2 应用嵌入式操作系统,任务是一个无限循环,它必须处于下列5个状态之一:,休眠状态是任务驻留在内存之中,但并没有被系统内核所调用; 就绪状态是任务已经准备好,但由于该任务的优先级比正在运行的任务的 优先级低,还暂时不能运行; 运行状态是任务拥有CPU的使用权,正在运行;挂起状态是任务正在等待某一个事件的发生以结束目前的等待(如等待外设的I/O操作

13、、等待共享资源、等待定时或超时信息等事件);发生中断时,CPU进入中断服务程序,而暂时不能运行当前的任务,任务就进入了被中断态。,2018年10月2日,TMS320C55x DSP原理及应用,17,第4章 C55x处理器的软件设计,4.1.2 应用嵌入式操作系统,操作系统需要在多个任务之间转换和调度,这是因为CPU在某一时刻只能为一个任务提供服务,CPU必须为一系列任务轮流服务。多任务运行可以使CPU的利用率达到最高,并使应用程序模块化,使用多任务可以使程序更容易设计和维护。,当任务从当前任务切换到另一个任务时,必须保存正在执行的任务的当前状态。所谓“任务的当前状态”即CPU寄存器中的所有内容

14、;这些内容被保存在任务自己的堆栈中,以备任务下次执行时恢复当前状态。在保存完当前任务后,要把下一个任务的当前状态装入CPU寄存器,并开始下一个任务的运行,这一过程叫做“任务切换”。,2018年10月2日,TMS320C55x DSP原理及应用,18,第4章 C55x处理器的软件设计,4.1.2 应用嵌入式操作系统,每个任务都有其优先级,任务越重要,被赋予的优先级应越高。如果程序执行过程中任务的优先级不变,则称为静态优先级;反之则称为动态优先级。,所谓“任务管理”就是在内核的控制下任务在五种状态之间切换。,2018年10月2日,TMS320C55x DSP原理及应用,19,第4章 C55x处理器

15、的软件设计,4.1.2 应用嵌入式操作系统,不同任务之间有可能会使用共同的资源,当它们同时使用共享资源时有可能发生错误,嵌入式操作系统提供了信号量这一约定机制,通过该机制可以控制共享资源的使用权,或标志某一事件的发生,也可以用来为两个任务同步。信号量有两种类型二进制型和计数器型,实际上二进制型可以看作一个只有一位的计数器型信号量。,2018年10月2日,TMS320C55x DSP原理及应用,20,第4章 C55x处理器的软件设计,4.1.2 应用嵌入式操作系统,信号量可以看作一把钥匙。当任务要运行时首先要取得这把钥匙。如果信号量已经被其他任务占用,那么该任务只好挂起并等待信号量被当前使用者释

16、放。,2018年10月2日,TMS320C55x DSP原理及应用,21,第4章 C55x处理器的软件设计,4.1.2 应用嵌入式操作系统,任务要使用信号量,首先要对信号量进行初始化。 如果任务要得到信号量,首先要执行“等待”操作。 如果该信号量有效(信号量的值大于0),则该信号量值减1,任务得以继续执行。如果信号量的值为0,等待信号量的任务就被列入等待信号量任务表。,2018年10月2日,TMS320C55x DSP原理及应用,22,第4章 C55x处理器的软件设计,如果等待时间超过某一设定值,该信号量还无效,那么等待信号量的任务自动进入就绪状态并准备运行,并向系统报一个“超时错误”信息。,4.1.2 应用嵌入式操作系统,2018年10月2日,TMS320C55x DSP原理及应用,23,第4章 C55x处理器的软件设计,实际上,等待该信号量的任务可能有多个。在嵌入式操作系统中通常依照优先级来决定由哪个任务取得信号量。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号