第4章 C55x处理器的软件设计.ppt_第1页
第4章 C55x处理器的软件设计.ppt_第2页
第4章 C55x处理器的软件设计.ppt_第3页
第4章 C55x处理器的软件设计.ppt_第4页
第4章 C55x处理器的软件设计.ppt_第5页
已阅读5页,还剩98页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘要:2020年8月2日,TMS320C55x DSP的原理及应用,第1章,C55x处理器的软件设计,C55x系列处理器具有灵活的应用和强大的处理能力,为开发和使用提供了良好的硬件平台。为了使这个平台发挥更好的作用,高效便捷的软件设计是必不可少的。程序的主框架和实时性要求低的部分采用C/C语言,算法实现采用汇编语言,可以充分发挥两者的优势,解决可读性和效率之间的矛盾。同时,它也提高了软件的可移植性。软件移植时,不需要改变程序的主框架,只需为处理器提供相应的算法。本章主要介绍C55x处理器的基本程序结构、C语言编程与优化、C语言与汇编语言的混合编程以及通用目标文件格式。最后,介绍了C55x处理器

2、的数字信号处理库、图像和视频处理库。2020年8月2日,TMS320C55x DSP的原理与应用,第4章,C55x处理器的软件设计,4.1 C55x处理器程序基本结构,4.2 C语言程序开发与优化,4.3 C语言与汇编语言混合编程,4.4通用对象文件格式,4.5 C55x处理器数字信号处理库和图像与视频处理库,2020年8月2日,TMS320C55x DSP原理与应用;3、第4章,C55x处理器软件设计,C55x处理器软件开发流程;2020年8月2日,TMS320C55x数字信号处理器原理及应用;4,第4章,C55x处理器软件设计,汇编程序:将汇编源代码转换成机器语言。汇编程序:它将汇编源代码

3、转换成机器语言。链接器:将多个目标文件合并成一个可执行文件。归档器:一组文件可以归档到库中供用户使用。如果用户只用汇编语言编写程序,他将跳过C编译器,直接通过汇编程序生成目标文件。2020年8月2日,TMS320C55x DSP的原理和应用,第4章,C55x处理器的软件设计,C55x处理器程序的基本结构。根据任务调度方法的不同,C55X处理器程序大致可以分为两类:(1)由程序本身进行任务调度,运行效率高,对硬件中断响应快,程序运行稳定,适用于单个任务,实时性强。(2)任务调度是由嵌入式操作系统完成的,但有必要使用嵌入式操作系统同时完成多个任务,因为嵌入式操作系统可以将应用分解成多个任务,简化了

4、应用系统的软件设计,更重要的是,良好的多任务设计有助于提高系统的稳定性和可靠性。2020年8月2日,TMS320C55x DSP的原理和应用,第4章,C55x处理器的软件设计,以及4.1.1自调度程序的基本结构。虽然嵌入式操作系统已经发展得比较成熟,但是通过程序本身来完成任务调度仍然保持着强大的生命力,因为这种方法适用于需要完成大量实时数据的顺序处理的DSP。自调度器的基本结构如下。中断程序1;中断程序m;主()数字信号处理器_整数();/数字信号处理器为()初始化;)/主循环if(条件1)/判断条件1处理模块1;/如果满足条件,运行处理模块1;如果(条件n)/判断条件n处理模块n;/条件满足

5、运行处理模块n的要求;2020年8月2日,TMS320C55x DSP的原理与应用,第7章,C55x处理器的软件设计,初始化部分通常完成DSP软硬件的初始化设置,启动系统硬件,使能DSP中断,启动DMA传输等。主回路是程序的主要部分,它将完成数据的输入、处理和输出。主循环由条件判断和处理模块组成,当条件满足时运行,如果条件不满足则自动跳转到下一个判断条件。中断器通常不处理数据,而只是设置判断标志来影响主回路的运行。自调度器通常由中断程序部分、初始化部分和主循环部分组成:4.1.1自调度器的基本结构,TMS320C55x DSP的原理及应用2020年8月2日8。第四章C55x处理器的软件设计。为

6、了满足实时操作的要求,自调度器的主循环部分必须将处理延迟限制在最大可接受的延迟。具体来说,运行主循环所有分支的总时间必须小于最大可接受延迟。如果不能满足这个条件,在最坏的情况下,数据处理将是不连续的,并且不能实现实时数据处理。当编写的程序不满足上述条件时,需要修改处理流程或修改处理算法以满足条件。4.1.1自调度程序的基本结构,2020年8月2日,TMS320C55x DSP的原理及应用,第9章,C55x处理器的软件设计,数字信号处理器中运行的操作系统必须满足系统的实时性要求,操作系统的实时模式可分为硬实时模式和软实时模式。在软实时系统中,任务由软件切换,而在硬实时系统中,任务根据固定的时钟节

7、拍切换。软实时系统使每个任务尽快运行,而不限制一个任务能完成多长时间;在硬实时系统中,每个任务不仅要正确执行,而且要准时。4.1.2使用嵌入式操作系统,嵌入式实时操作系统的功能是合理地调度和分配任务,使每个任务能够正确、及时地执行。2020年8月2日,TMS320C55x DSP的原理与应用,第10章,C55x处理器的软件设计,嵌入式操作系统的核心是操作系统内核。在多任务系统中,内核负责管理每个任务,为每个任务分配CPU时间,在任务之间进行通信和切换任务。系统中的每个任务根据其重要性被赋予一定的优先级,内核将根据其优先级来调度任务。基于优先级的内核可以分为两种类型:不可剥夺的和不可剥夺的。4.

8、1.2嵌入式操作系统的应用,2020年8月2日,TMS320C55x DSP的原理与应用,11,第4章,C55x处理器的软件设计,1。不可分割的内核,它要求每个任务自愿放弃使用中央处理器的权利。这种任务调度方法也可以称为协同多任务,其中每个任务相互协作并共享一个中央处理器。不可分割内核中的异步事件由中断服务处理,中断服务可以将高优先级任务从挂起状态变为就绪状态;但是,在服务中断后,中央处理器的使用权返回给原来被中断的任务,高优先级的任务只有在主动放弃中央处理器的使用权后才能进入运行状态。4.1.2嵌入式操作系统的应用,2020年8月2日,TMS320C55x DSP的原理和应用,12,第4章,

9、C55x处理器的软件设计,该内核的优点是能快速响应中断,不可分割的内核允许任务使用不可重入函数。每个任务都调用不可重入的函数,而不用担心其他任务会使用这个函数并导致数据破坏。当使用不可分割的内核时,任务的响应时间取决于最长任务的执行时间。在使用内核时,很少需要使用信号量来保护共享数据,因为运行的任务不必担心其他任务会抢占CPU;然而,如果任务使用共享设备,它们也应该使用互斥信号量。4.1.2嵌入式操作系统的应用,1。不可分割的内核,2020年8月2日,TMS320C55x数字信号处理器的原理和应用,13。第四章,C55x处理器的软件设计,不可分割内核的缺点是响应时间不确定,并且无法确定具有最高

10、优先级的任务何时可以获得使用CPU的权利。2.可剥夺内核。当可剥夺内核运行时,一旦具有最高优先级的任务准备就绪,它总是可以获得使用中央处理器的权利。当优先级较高的任务进入就绪状态时,当前运行的任务将被暂停,上级任务将立即获得CPU的使用权。,1。不可分割的内核,4.1.2嵌入式操作系统的应用,2020年8月2日,TMS320C55x数字信号处理器的原理与应用,14。第四章,C55x处理器的软件设计,如果中断服务子程序使一个高优先级任务进入就绪状态,中断完成后,中断的任务暂停,上级任务开始运行。通过使用可移动内核,可以随时执行最高级别的任务,这优化了任务的响应时间。使用不可重入内核要求应用程序不

11、应该直接使用不可重入函数,如果它想使用它,它应该满足互斥条件。4.1.2嵌入式操作系统的应用,2。可剥夺内核,2020年8月2日,TMS320C55x数字信号处理器原理与应用,15。第四章,C55X处理器的软件设计,4.1.2嵌入式操作系统的应用,内核的主要工作是完成任务调度,也可以称为线程,这是一个简单的程序,并且这个程序认为中央处理器属于完全操作系统,要求系统要完成的工作分解成多个任务,每个任务都是应用的一部分。任务被赋予一定的优先级,并有自己的一组中央处理器寄存器和堆栈空间。2020年8月2日,TMS320C55x DSP原理与应用,16,第4章,C55x处理器的软件设计,4.1.2,嵌

12、入式操作系统的应用,任务是一个无限循环,必须处于以下五种状态之一:(1)休眠状态是任务驻留在内存中,但没有被系统内核调用;就绪状态是任务已就绪,但任务的优先级低于正在运行的任务的优先级,因此暂时无法运行;运行状态是任务有权使用中央处理器并且正在运行;挂起状态是指任务正在等待一个事件来结束当前的等待(如等待外设I/O操作、等待共享资源、等待计时或超时信息等)。);当中断发生时,中央处理器进入中断服务程序,但暂时不能运行当前任务,任务进入中断状态。2020年8月2日,TMS320C55x DSP的原理和应用,第17章,C55x处理器的软件设计,第4章,嵌入式操作系统,操作系统需要在多个任务之间进行

13、转换和调度,因为CPU在某个时间只能服务一个任务,而CPU必须依次服务一系列任务。多任务处理可以最大限度地提高CPU利用率并模块化应用程序。多任务处理可以使程序更容易设计和维护。当任务从当前任务切换到另一个任务时,必须保存正在执行的任务的当前状态。所谓“任务的当前状态”是指中央处理器寄存器中的所有内容;这些内容保存在任务自己的堆栈中,以便在下次执行任务时恢复当前状态。保存当前任务后,将下一个任务的当前状态加载到中央处理器寄存器中,开始下一个任务。这个过程被称为“任务切换”。2020年8月2日,TMS320C55x DSP的原理与应用,第18章,C55x处理器的软件设计,以及4.1.2嵌入式操作

14、系统的应用,每个任务都有其优先级,而且任务越重要,优先级越高。如果任务的优先级在程序执行过程中保持不变,则称为静态优先级;否则,它被称为动态优先级。所谓的“任务管理”意味着任务在内核的控制下在五种状态之间切换。2020年8月2日,TMS320C55x DSP的原理与应用,第19章,C55x处理器的软件设计,4.1.2,嵌入式操作系统可能会在不同的任务之间使用共同的资源,当它们同时使用共享资源时,可能会出现错误。嵌入式操作系统提供了约定的信号量机制,通过它可以控制共享资源的使用权或标记事件。信号量有两种类型:二进制类型和计数器类型。事实上,二进制类型可以被视为只有一位的计数器类型信号量。2020

15、年8月2日,TMS320C55x数字信号处理器的原理和应用,第20章,C55x处理器的软件设计,以及4.1.2嵌入式操作系统的应用,信号量可视为一个关键。当任务要运行时,您必须首先获取该密钥。如果信号量已经被其他任务占用,任务必须暂停并等待当前用户释放信号量。,2020年8月2日,TMS320C55x DSP的原理与应用,第21章,C55x处理器的软件设计,4.1.2嵌入式操作系统的应用,任务中应该使用信号量,信号量应该先初始化。如果一个任务想要得到一个信号量,它必须首先执行一个“等待”操作。如果信号量有效(信号量的值大于0),信号量的大小减少1,任务可以继续执行。如果信号量的值为0,则等待信

16、号量的任务列在等待信号量的任务表中。2020年8月2日,TMS320C55x DSP的原理和应用,第4章,C55x处理器的软件设计,如果等待时间超过某个设定值,信号量仍然无效,等待信号量的任务将自动进入就绪状态,准备运行,并向系统报告“超时错误”消息。4.1.2嵌入式操作系统的应用,2020年8月2日,TMS320C55x DSP的原理和应用,23,第4章,C55x处理器的软件设计,实际上,可能有很多任务在等待这个信号量。在嵌入式操作系统中,通常根据优先级来决定哪个任务获得信号量。任务也可以释放信号量。如果有一个任务在等待信号量,那么一个任务将进入就绪状态,信号量的值不会增加。如果此时没有等待

17、信号量的任务,信号量的值将增加1。4.1.2嵌入式操作系统的应用,2020年8月2日,TMS320C55x DSP的原理及应用,24,第4章,C55x处理器的软件设计,4.1.2嵌入式操作系统的应用,两个任务可以通过信号量同步,信号量可以分为单向同步和双向同步两种类型。单向同步意味着一个任务用一个信号量触发另一个任务。单向同步,2020年8月2日,TMS320C55x DSP的原理与应用,第25章,C55x处理器的软件设计,当两个任务需要相互同步时,需要双向同步。两个任务的双向同步,4.1.2嵌入式操作系统的应用,2020年8月2日,TMS320C55x DSP的原理与应用,26,第4章,C5

18、5x处理器的软件设计,4.1.2嵌入式操作系统的应用,任务之间的通信可以通过两种方式:全局变量或消息。当使用全局变量时,必须保证任务或中断服务子程序,并且在使用该变量时,没有其他任务或中断服务子程序访问该变量。此外,如果任务没有其他机制来通知其变量已被修改,则任务只能定期查询变量值。为避免这种情况,请考虑使用邮件邮箱或邮件队列。2020年8月2日,TMS320C55x DSP的原理与应用,第4章,C55x处理器的软件设计,以及4.1.2嵌入式操作系统的应用,消息邮箱是一个任务还是一个中断程序。通过指针变量将消息(指针)放入邮箱,一个或多个任务可以通过内核服务接收消息。内核可以提供以下邮箱服务:初始化邮箱中的消息;将邮件放入邮箱;等待邮件进入邮箱;从邮箱中获取

温馨提示

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

评论

0/150

提交评论