嵌入式实时操作系统-BIOS.ppt_第1页
嵌入式实时操作系统-BIOS.ppt_第2页
嵌入式实时操作系统-BIOS.ppt_第3页
嵌入式实时操作系统-BIOS.ppt_第4页
嵌入式实时操作系统-BIOS.ppt_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、TI DSP/BIOS,机电学院 : Yys,实时操作系统的概述 DSP/BOIS简介 DSP/BIOS的功能及分析,前言,1.1 什么是RTOS?,RTOS称为实时多任务操作系统(Real-Time Operating System),是嵌入式应用软件的基础和开发平台,它是一段嵌入在目标代码中的软件,用户的其它应用程序都建立在RTOS之上。 RTOS还是一个可靠性和可信性很高的实时内核,将CPU时间、中断、I/O和定时器等资源都包装起来,留给用户一个标准的API接口,并能根据各个任务的优先级,合理地在不同任务之间分配CPU时间。,1.2用RTOS有什么好处?,RTOS是针对不同处理器优化设计

2、的高效率实时多任务内核。据专家预测,在优秀RTOS上跨处理器平台的程序移植只需要修改1 5的内容。它的引入解决了嵌入式软件开发标准化的难题。基于RTOS开发出来的程序具有较高的可移植性,引入RTOS相当于引入了一个新的管理模式,可减少重复劳动,提高知识创新效率。,随着DSP性能的不断改进,目前多种型号的DSP继承了大量外设器件,DSP逐渐从高速数字处理引擎转变成具备多种微控制功能的芯片。因此在实际应用中DSP在继续用来完成算法的同时,还要完成包括信号采样,驱动控制,通讯等任务在内的整个系统的功能。 DSP中混合各种各样的算法,同时要完成高性能控制,通讯,在这种情况下就更需要兼顾系统的实时性。传

3、统的前后台模式已经难以满足实际要求。(ucos/uclinux/bios),所有的DSP/BIOS对象都可以在配置工具中静态建立; 实时监测数据在主机端做格式化处理; API函数是模块化的,只有应用程序用到的API模块才会和应用程序链接在一起; 为达到最快的运行速度,大部分函数用汇编语言编写; 目标处理器和主机分析工具之间的通信在后台空闲循环中完成,这样不会影响应用程序的运行。如果CPU太忙,不能执行后台任务,DSP/BIOS分析工具会停止从目标处理器接收信息。(隐式/显式),2.1 DSP/BIOS 概述,DSP/BIOS的定义DSP/BIOS是一个可升级的实时内核。它主要是为需要实时调度和

4、同步以及主机-目标系统通讯和实时监测(Instrumentation)的应用而设计的。 DSP/BIOS是集成到CCS中的, 不需要额外的费用。但不提供源码。 DSP/BIOS 是 TIs eXpressDSP 技术的重要组成部分。,DSP/BIOS本身占用极少的CPU资源,提供丰富的面向用户的应用程序编程接口(API)和程序开发工具。主要包括以下核心模块: 1.任务调度模块(HWI/SWI/TSK) 2.进程同步模块(SEM/QUE/MBX) 3.数据输入输出模块(PIP/SIO) 4.调试模块(LOG/STS) 利用这些功能用户可以比较方便的编写各种结构复杂,实时性强,运行效率高的应用软件

5、,降低了软件开发的难度,提高了调试效率。,3.1dsp/bios中的时钟,用户可以往DSP/BIOS配置中定义DSP/BIOS系统时钟参数。除了系统时钟之外,用户可以建立其它时钟对象(CLK,PRD),实现在每次定时器中断发生时触发某函数的执行。 很多DSP/BIOS的API函数都有一个超时的函数。DSP/BIOS会使用系统时钟来判断是否超时。,3.1 DSP/BIOS中的时钟模块,3.1.1 系统中的高/低分辨率时钟,DSP/BIOS提供了两种独立的时钟管理方法:高分辨率和低分辨率的时钟管理。在默认设置中,系统时钟使用低分辨率的时钟管理。每当进入一次定时器中断服务程序时,低分辨率的计数器加1

6、,因此,低分辨率的计数器记录了定时器中断发生的次数,也就是说低分辨率的时钟与定时器中断时钟一一致。而高分辨率时钟是定时器的计数寄存器被减的次数。(对于28X系列就是低分辨率乘以TIMERPRD的值),CLK模块为用户周期性调用提供方法,同时对一些代码评估工具提供了时间参考。实际上CLK模块完全依赖于DSP的定时器中断。CLK管理器还允许随意建立各种时钟函数,当定时器中断发生时,CLK管理器就执行这些时钟函数。 当定时器减至0时,便产生定时器中断。内核进入中断服务子程序CLK_F_isr函数。,3.1.2 时钟管理模块CLK,3.1.3 周期函数管理模块PRD,许多应用程序都需要根据I/O口可用

7、性或其它可编程的事件来调度函数。其余的应用程序则基于实时时钟来调度函数。 用户可以创建多个PRD对象,但它们都由同一个系统时钟驱动。它的周期是以系统时钟为单位。,3.2dsp/bios中的线程,许多实时DSP应用都需要同时执行许多不相关的功能(functions,函数),这些功能一般是对外部事件的响应. 这些功能就叫线程. DSP/BIOS定义线程为任何独立的指令流. 可以是一个函数, 或一个中断服务程序. DSP/BIOS使应用程序按线程结构化设计,每个线程完成一个模块化的功能. 多线程程序中允许高优先级线程抢占低优先级线程,以及线程间的同步和通讯 .,3.2dsp/bios中的线程,DSP

8、/BIOS支持多种不同优先级的线程,每种线程的类型都有不同的执行和抢占特性。这些线程按照优先级从高到低的顺序排列如下: 1.硬件中断(HWI),包括CLK函数 2.软件中断(SWI),包括PRD函数 3.任务(TSK) 4.空闲循环(IDL),3.2.1 硬件中断,硬件中断是用来处理应用程序响应外部异步事件必须执行的关键任务。 在典型的DSP应用中,硬件中断是由片上外设或外部设备触发的,然后跳转地址。硬件中断ISR可以使用汇编,C语言或两种混合编写。 所有硬件中断会一直运行到结束(可以被抢占)。即使被触发多次,该ISR也只运行一次。因此用户必须尽量减小HWI函数执行的代码量。 当硬件中断产生之

9、后,DSP/BIOS就会调用相应的HWI函数。如果把HWI设置为Dispatch的话,则会在调用HWI函数的前后自动调用HWI_enter和HWI_exit。,3.2.2 软件中断,DSP/BIOS的SWI模块提供了软件中断的能力。通过在程序中调用一个API函数,即可触发中断。优先级介于硬件中断与任务之间。适用于处理频率较低或者实时性没有硬件中断严格的程序作业。 当软件中断被触发时,它会在等待中的硬件中断都执行完后才开始执行。正在运行的SWI线程在任何时刻都可以被高优先级抢断。另一方面,SWI线程总能抢占任务的执行。 15个优先级,为了满足同一时刻出现的最大数量的线程抢占,每增加一个优先级别,

10、所需的堆栈大小就会增加。,3.2.3 任务,TSK模块优先级高于空闲但低于HWI和SWI模块。任务自身共有15个优先级。每个任务总是处于四种执行状态之一。 1.运行态(Runing):代表该任务正在执行 2.就绪态(Ready):已经被调度等待可用 3.阻塞态(Blocked):等待某个事件或者资源 4.终止态(Terminated):代表任务已经被终止,3.2.4 空闲循环,空闲循环是DSP/BIOS的后台线程,可以被其它任何一个线程抢占。 目标DSP和主机分析工具间的通信通常在空闲状态循环中执行。这保证了分析工具不会影响应用程序的处理。,3.2dsp/bios中的线程,3.2dsp/bio

11、s中的线程,DSP/BIOS运行优先级最高的线程 当下面情况发生时, 不一定运行优先级最高的线程:(1) HWI_disable, SWI_disable或TSK_disable被调用(2) 高优先级的任务处于阻塞时,即调用了TSK_sleep, LCK_pend, MBX_pend, or SEM_pend.,3.2.5 线程特点比较,3.2.5 线程特点的比较,HWI和SWI都使用系统堆栈,而每个TSK都有自己的堆栈。可以在TSK线程之间随意地互相切换,切换时DSP/BIOS将自动地更新堆栈寄存器,因此TSK线程可以被阻塞。这样TSK就可以写成一个死循环:While(1) Do_some_task(); Yield_to_other_task();Do_some_task做这个TSK所要做的事情,Yield_to_other_task则把

温馨提示

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

评论

0/150

提交评论