嵌入式实时操作系统-BIOS

上传人:痛*** 文档编号:123616358 上传时间:2022-07-22 格式:PPTX 页数:29 大小:577.86KB
返回 下载 相关 举报
嵌入式实时操作系统-BIOS_第1页
第1页 / 共29页
嵌入式实时操作系统-BIOS_第2页
第2页 / 共29页
嵌入式实时操作系统-BIOS_第3页
第3页 / 共29页
点击查看更多>>
资源描述
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是针对不同处理器优化设计的高效率实时多任务内核。据专家预测,在优秀RTOS上跨处理器平台的程序移植只需要修改1 5的内容。它的引入解决了嵌入式软件开发标准化的难题。基于RTOS开发出来的程序具有较高的可移植性,引入RTOS相当于引入了一个新的管理模式,可减少重复劳动,提高知识创新效率。随着DSP性能的不断改进,目前多种型号的DSP继承了大量外设器件,DSP逐渐从高速数字处理引擎转变成具备多种微控制功能的芯片。因此在实际应用中DSP在继续用来完成算法的同时,还要完成包括信号采样,驱动控制,通讯等任务在内的整个系统的功能。DSP中混合各种各样的算法,同时要完成高性能控制,通讯,在这种情况下就更需要兼顾系统的实时性。传统的前后台模式已经难以满足实际要求。(ucos/uclinux/bios)所有的DSP/BIOS对象都可以在配置工具中静态建立;实时监测数据在主机端做格式化处理;API函数是模块化的,只有应用程序用到的API模块才会和应用程序链接在一起;为达到最快的运行速度,大部分函数用汇编语言编写;目标处理器和主机分析工具之间的通信在后台空闲循环中完成,这样不会影响应用程序的运行。如果CPU太忙,不能执行后台任务,DSP/BIOS分析工具会停止从目标处理器接收信息。(隐式/显式)2.1 DSP/BIOS 概述DSP/BIOS的定义DSP/BIOS是一个可升级的实时内核。它主要是为需要实时调度和同步以及主机-目标系统通讯和实时监测(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)利用这些功能用户可以比较方便的编写各种结构复杂,实时性强,运行效率高的应用软件,降低了软件开发的难度,提高了调试效率。3.1 dsp/bios中的时钟用户可以往DSP/BIOS配置中定义DSP/BIOS系统时钟参数。除了系统时钟之外,用户可以建立其它时钟对象(CLK,PRD),实现在每次定时器中断发生时触发某函数的执行。很多DSP/BIOS的API函数都有一个超时的函数。DSP/BIOS会使用系统时钟来判断是否超时。3.1 DSP/BIOS中的时钟模块高分辩率计时Global setting中设置主频主频,(C2000)低分辩率计时系统时钟PRD管理器的属性页的“Use CLK Manager to Drive PRD”控制是否使用CLK管理器驱动系统时钟 PRD对象如果不用低分辨率时钟驱动,则设置Micrsecends/tick CLK管理器的属性中设置:时钟周期寄存器时钟周期寄存器的值,以决定中断发生的时间间隔PRD对象的属性中设置几次系统时钟tick运行一次PRD函数3.1.1 系统中的高/低分辨率时钟DSP/BIOS提供了两种独立的时钟管理方法:高分辨率和低分辨率的时钟管理。在默认设置中,系统时钟使用低分辨率的时钟管理。每当进入一次定时器中断服务程序时,低分辨率的计数器加1,因此,低分辨率的计数器记录了定时器中断发生的次数,也就是说低分辨率的时钟与定时器中断时钟一一致。而高分辨率时钟是定时器的计数寄存器被减的次数。(对于28X系列就是低分辨率乘以TIMERPRD的值)CLK模块为用户周期性调用提供方法,同时对一些代码评估工具提供了时间参考。实际上CLK模块完全依赖于DSP的定时器中断。CLK管理器还允许随意建立各种时钟函数,当定时器中断发生时,CLK管理器就执行这些时钟函数。当定时器减至0时,便产生定时器中断。内核进入中断服务子程序CLK_F_isr函数。3.1.2 时钟管理模块CLK3.1.3 周期函数管理模块PRD许多应用程序都需要根据I/O口可用性或其它可编程的事件来调度函数。其余的应用程序则基于实时时钟来调度函数。用户可以创建多个PRD对象,但它们都由同一个系统时钟驱动。它的周期是以系统时钟为单位。3.2dsp/bios中的线程许多实时DSP应用都需要同时执行许多不相关的功能(functions,函数),这些功能一般是对外部事件的响应.这些功能就叫线程.DSP/BIOS定义线程为任何独立的指令流.可以是一个函数,或一个中断服务程序.DSP/BIOS使应用程序按线程结构化设计,每个线程完成一个模块化的功能.多线程程序中允许高优先级线程抢占低优先级线程,以及线程间的同步和通讯.3.2dsp/bios中的线程DSP/BIOS支持多种不同优先级的线程,每种线程的类型都有不同的执行和抢占特性。这些线程按照优先级从高到低的顺序排列如下:1.硬件中断(HWI),包括CLK函数2.软件中断(SWI),包括PRD函数3.任务(TSK)4.空闲循环(IDL)3.2.1 硬件中断硬件中断是用来处理应用程序响应外部异步事件必须执行的关键任务。在典型的DSP应用中,硬件中断是由片上外设或外部设备触发的,然后跳转地址。硬件中断ISR可以使用汇编,C语言或两种混合编写。所有硬件中断会一直运行到结束(可以被抢占)。即使被触发多次,该ISR也只运行一次。因此用户必须尽量减小HWI函数执行的代码量。当硬件中断产生之后,DSP/BIOS就会调用相应的HWI函数。如果把HWI设置为Dispatch的话,则会在调用HWI函数的前后自动调用HWI_enter和HWI_exit。3.2.2 软件中断DSP/BIOS的SWI模块提供了软件中断的能力。通过在程序中调用一个API函数,即可触发中断。优先级介于硬件中断与任务之间。适用于处理频率较低或者实时性没有硬件中断严格的程序作业。当软件中断被触发时,它会在等待中的硬件中断都执行完后才开始执行。正在运行的SWI线程在任何时刻都可以被高优先级抢断。另一方面,SWI线程总能抢占任务的执行。15个优先级,为了满足同一时刻出现的最大数量的线程抢占,每增加一个优先级别,所需的堆栈大小就会增加。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/bios中的线程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则把控制权转给其他的TSK。例如如果是把控制权转给同样优先级的其他TSK,则可以调用TSK_yield函数。如果是要把控制权转给低优先级的TSK,则可以调用TSK_sleep函数让自己休眠一段时间,或者调用SEM_pend函数等待。除非TSK中调用了HWI_disable或者SWI_disable,否则它在任何时候都可以被HWI或者SWI抢占。谢谢观赏演讲完毕,谢谢观看!
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!