Edited by Foxit PDF Editor Copyright(c)by Foxcit Software Company,2003-2009 For Evaluation Only. 第4章C55x处理器的软件设计 内容提要 C55x系列处理器应用灵活、处理能力强大,为 开发、使用提供了一个很好的硬件平台,要使这个平 台更好的发挥作用,高效、方便的软件设计是不可或 缺的。 程序的主体框架和对实时性要求不高的部分采用 C/C++语言,而算法实现采用汇编语言,这样能够充 分发挥二者的优点,解决易读性和效率之间的矛盾。 同时也改善了软件的移植性,在软件移植时不用改变 程序的主体框架,只要为处理器提供相应的算法即可。 本章主要介绍了C55x处理器的程序基本结构,C 语言编程以及优化,语言与汇编语言的混合编程, 通用目标文件格式,最后对C55x处理器的数字信号处 理库和图像、视频处理库进行了介绍。 TMS320C55xDSP原理及应用 1
第4章C55x处理器的软件设计 4.1C55x处理器程序基本结构 4.2C语言程序开发及优化 4.3C语言与汇编语言的混合编程 4.4通用目标文件格式 4.5C55x处理器的数字信号处理库和图像 视频处理库 TMS320C55xDSP原理及应用 2
第4章C55x处理器的软件设计 建立运行 运行支 支持库 持库 可执行 C/C++ C编译器 汇编 COFF 汇编器 链接器 COFF 源文件 源代码 目标文 件 文件 宏源文 宏调用 目标文 件 归档器 归档器 库 件库 C55x处理器软件开发流程 2010年7月18日 TMS320C55xDSP原理及应用 3
第4章C55x处理器的软件设计 ●汇编器:是把汇编源代码转换成机器语言 ●汇编器:是把汇编源代码转换成机器语言。 ●链接器:则将多个目标文件结合成一个可执 行文件 ●归档器:可以把一组文件归档为一个库,供 用户使用。 如果用户只用汇编语言编写程序,则将跳过C编译器而 直接通过汇编器生成目标文件。 2010年7月18日 TMS320C55xDSP原理及应用 4
第4章C55x处理器的软件设计 4.1C55x处理器程序基本结构 根据任务调度的方式不同,C55x处理器程序大体可以分 为两类: (1)由程序自己完成任务调度 程序运行效率高,对硬件中断响应快,程序运行稳定, 适合于任务较为单一,实时性较强的应用; (2)由嵌入式操作系统完成任务调度 但如果要利用处理器同时完成多个任务,应用嵌入式操 作系统是十分有必要的,这是因为嵌入式操作系统可以将应 用分解为多个任务,简化了应用系统软件设计,更为重要的 是良好的多任务设计有助于提高系统的稳定性和可靠性。 2010年7月18日 TMS320C55xDSP原理及应用 5
第4章C55x处理器的软件设计 4.1中啊瞥'我调度程序的基本结构 中断程序m; MainO) 虽然嵌入式操作系统已祭发展得较为成熟,但 DSP INTO DS初始1 通过程序身完成任务调度傍然保持着旺盛的生命力 这是因为这种劈我适合于慰种需要对大量实时 数据完成顺序处理的遊块1下面给臀我度程序的 基本结构。 if条件n) /判断条件n f 处理模块n; ∥条件满足运行处理模块n } 2010年7月18日 TMS320C55xDSP原理及应用 6
第4章C55x处理器的软件设计 4.1.1自我调度程序的基本结构 自我调度程序通常由中断程序部分、初始化部 分和主循环部分组成: ●初始化部分通常完成DSP软、硬件的初始化设置,启动系 统硬件,使能DSP中断,启动DMA传送等工作。 ●主循环部分是程序的主体,将由它完成数据输入、处理和 输出等工作。主循环由条件判断和处理模块组成,当满足条件时 运行处理模块,不满足条件则自动跳到下一个判断条件。 ●中断程序通常不进行数据处理,只通过设置判断标志来影 响主循环部分的运行。 2010年7月18日 TMS320C55xDSP原理及应用 7
第4章C55x处理器的软件设计 4.1.1自我调度程序的基本结构 为了满足实时运行的要求,自我调度程序的主 循环部分必须将处理时延限制在最大可接受时延内, 具体来说就是运行主循环的所有分支的时间总和必须 小于最大可接受时延,如果不能满足这一条件,则在 最坏情况下,会造成处理数据的不连续,而无法实现 数据的实时处理。 当所编写的程序没有满足上述条件时,则需要对 处理流程进行修改,或修改处理算法以满足条件。 2010年7月18日 TMS320C55xDSP原理及应用 8
第4章C55x处理器的软件设计 4.1.2应用嵌入式操作系统 在数字信号处理器中运行的操作系统必须满足系统实 时性要求,而操作系统的实时方式可以分成两种硬实时 方式和软实时方式。 软实时系统由软件来进行任务的切换,而硬实时系统 则按照固定时钟节拍切换任务。软实时系统使各个任务尽快 运行,而不要求限定某个任务在多长时间内完成;硬实时系 统中各任务不仅要执行无误,而且要准时。 嵌入式实时操作系统的作用就是合理调度、分配任务的 运行,使各个任务正确、及时地执行。 2010年7月18日 TMS320C55xDSP原理及应用 9
第4章C55x处理器的软件设计 4.1.2应用嵌入式操作系统 嵌入式操作系统的核心是操作系统内核,在多 任务系统中,内核负责管理各个任务,为每个任务 分配CPU时间,负责任务间的通信和任务切换。根据 其重要程度的不同系统中每个任务被赋予一定的优 先级,内核将根据任务的优先级进行任务调度。基 于优先级的内核可以分成不可剥夺型和可剥夺型两 种类型。 2010年7月18日 TMS320C55xDSP原理及应用 10