- 1、本文档共78页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[材料科学]电子科技大学—实时调试集成环境DSP-BIOS的应用
实时调试集成环境DSP/BIOS的应用 主要内容 DSP/BIOS的概述- Introduction DSP/BIOS的线程管理/调度-Real Time Scheduling DSP/BIOS提供的实时分析工具- Real Time Analysis Tools DSP/BIOS高级应用:线程、通讯、同步、硬件中断、数据交换、内核评估、优化 DSP/BIOS应用的例子-Example DSP/BIOS的概述 Part 1 - Introduction DSP/BIOS 概述 DSP/BIOS是一个可升级的实时内核。它主要是为需要任务的实时调度和同步,主机-目标系统通讯和实时监测的应用而设计的。 DSP/BIOS 集成到 CCS 中的,不需要额外的费用。 DSP/BIOS 是 TI’s eXpressDSP 技术的重要组成部分。 DSP/BIOS的组件 抢先式多任务内核 配置工具 实时分析工具 DSP/BIOS API :提供近200个DSP/BIOS API给用户。 DSP/BIOS 配置工具 图形界面的静态配置工具 设定DSP/BIOS库中的各种参数 DSP/BIOS的裁减控制 创建目标应用程序使用的对象(object),以便使用DSP/BIOS提供的API函数。 使用CSL配置外设 对目标系统的初始化配置 DSP/BIOS 的 API模块 DSP/BIOS 的 API模块 DSP/BIOS 的 API模块 几个与型号有关的模块 MEM模块 GBL模块 C54XX,C62XX,C64XX CSL片级支持库(Chip Support Library) DSP/BIOS 的 API模块 几种DSP/BIOS API函数可以触发SWI线程: 创建DSP/BIOS配置 从已有的DSP/BIOS配置文件中修改获得 在“File”菜单中新建配置文件,CCS提供了许多摸板共选择 将创建的配置文件保存到你的工作目录下 将创建的配置文件(*.cdb)添加到prject工程文件中。 创建DSP/BIOS配置 配置工具将自动创建下面的文件(‘C6000为例): 当保存配置文件(如my.cdb) mycfg.s62 Assembly file mycfg_c.c C file mycfg.h Header file for C mycfg.h62 Header file for assembly “mycfg.cmd”也会自动生成,但需要手工添加到工程文件中。 注意:用户需要自己将 *.cdb 和 *.cmd 添加到工程文件中。 DSP/BIOS的线程管理与调度 Part 2 - Real Time Scheduling DSP/BIOS应用程序的结构 DSP/BIOS API提供可伸缩的实时核,还提供了有优先级的多线程处理。它是专为那些需要实现实时调度、同步以及通讯的应用程序而设计。在一个包含DSP/BIOS内核的应用程序按优先级从低到高有四种主要线程: 后台线程(IDL线程) 任务(TSK模块) 软件中断(SWI模块) 硬件中断(HWI模块) DSP/BIOS 的线程类型 线程选择的一般原则 严格的实时性 :如果线程的执行需要严格的实时性,而线程执行需要的时间又很少时,你可以使用硬件中断或时钟函数来完成。CLK时钟函数也是在硬件中断中执行的。 部分实时性:执行时间较长,使用SWI软件中断或TSK任务线程来完成一些非实时性的处理任务。这样可以减少中断的潜伏期,提高响应实时性请求的能力。 线程选择的一般原则 周期性的服务:需要周期性或在固定的时间间隔内完成处理任务,使用PRD周期性函数来完成。 不需要实时性 :线程只需要在后台进行一些不关键的处理,比如收集统计数据、与自己交换检测数据等等。这种情况,我们建议使用IDL线程。 线程之间的不同 线程的等待和执行的速率. 线程的不同状态:HWI只有运行状态;SWI有就绪和运行状态;TSK有就绪(Ready),挂起/等待(Pending),运行(Running),结束(Done) 线程的优先级 线程之间的不同 对堆栈的需求 要使用系统堆栈,请使用SWI线程. 需要独立的堆栈时,应该使用TSK线程. 线程之间的同步要求和通讯方式 SWI 和TSK使用不同的方法 . 用户自己的习惯 任务线程的特点 所有任务线程的优先级都低于硬件中断和软件中断。 任务线程和软件中断不同的是:一个任务线程可以中断自己的运行,转而运行其它的任务。当某些条件满足后又恢复继续执行。 任务的切换不是任何情况下都被允许,只有在中断发生(有更高优先级的线程要运行),或某些任务模块的API函数调用时才会发生。 SWI 或 TSK 的区别 Put
文档评论(0)