- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ITRON4 0规范的实时操作系统 NORTi ve
?
基于u ITRON4.0规范的实时操作系统(NORTi version 4)-12011-03-21 22:45
特长
高速应答性
NORTi是抢占式多任务操作系统,当事件发生时通过基于优先度的调度程序,实时地切换
任务。系统内核由仔细斟酌过的代码构成,在系统调用内部不必通过查询,1次即可选择
操作对象,而且中断屏蔽时间被缩短到以前的一半,能最大限度地发挥CPU性能。此外,
操作系统能够导入优先度高于OS的中断程序。此时,中断屏蔽时间无限趋近于零。
小型
最佳优化了TCB(Task Control Clock任务管理模块)等操作系统内部管理模块大小,不会
浪费宝贵的RAM领域1个字节
C语言编写的内核
NORTi的大部分源代码是用容易理解的C语言编写的,有人认为用C语言编写的操作系统性
能不如汇编语言编写的操作系统,其实并非如此。用C语言编写的操作系统通过编译器分
配寄存器,可以使用最少的寄存器完成存储/复原等操作,相应系统就可高速运行。并且
,因为应用过的源代码可以兼容多种CPU,故新版CPU发布后,马上就能保证可靠运行。
兼容u ITRON4.0与u ITRON3.0两种规范
日本TRON协会的u ITRON4.0规范并不兼容3.0规范。而在NORTi里不仅支持u ITRON4.0规
范,也实装了u ITRON3.0规范的接口。在以前版本中开发的程序,不经修改即可与现系
统共存直接使用。
完整的u ITRON NORTi中完整的实装了u ITRON4.0/3.0规范,并认真地进行了优化组合、另外还提供了丰
富的同步通信手段(不包括CPU异常处理程序定义)。
支持多种处理器/编译程序/调试工具
由于NORTi支持大部分的16~32位处理器,所以即使目标机器不同中,也可以用相同的作
法使用NORTi。此外为了支持更多的开发环境,MiSPO公司正在与多家开发工具制造商进
行合作,积极地寻求对策。
任务的状态
在NORTi中可并行处理的程序单位称为任务,任务始终处于NON-EXISTENT(未生成状态),
DORMANT(停止状态),READY(准备状态),RUNNING(执行状态),WAITING(等待状
态),SUSPENDED(强制等待状态),WAITING-SUSPENDED(双重等待状态)等7个状态的
任1状态。
准备状态(READY)
因为更高优先度处于执行状态,或者相同优先级的任务被提前执行,而等待的状态。
执行状态(RUNNING)
任务正在被处理器执行的状态。处于RUNNING状态的任务同时只能存在1个。对于任务而
言,READY状态和RUNNING状态没有太大的差别,最优先的READY任务也可以被称为
RUNNING任务。
等待状态(WAITING)
等待状态是指通过自任务呼叫的系统调用而停止执行的状态。在事件驱动的多任务系统
中,被启动的任务大部分的时间都应该处于等待状态中。否则,不能利用任务等待的时
间执行其他的任务。
等待状态根据其特点分为以下几类。
起床等待(slp_tsk,tslp_tsk)
时间等待(dly_tsk)
事件标识(event flag)成立等待(wai_flg,twai_flg)
信号(semaphore)获得等待(wai_sem,twai_sem)
排他资源(mutex)获得等待(loc_mtx,tloc_mtx)
信箱(mail box)接收消息(message)等待(rcv_mbx,trcv_mbx)
消息缓存(message buffer)发送消息等待(snd_mbf,tsnd_mbf)
消息缓存(message buffer)接收消息等待(rcv_mbf,trcv_mbf)
数据队列(data queue)发送消息等待(snd_dtp,tsnd_dtp)
数据队列(data queue)接收消息等待(rcv_dtp,trcv_dtp)
会合(rendezvous)呼叫等待(cal_por,tcal_por)
会合(rendezvous)应答等待(acp_por,tacp_por)
会合(rendezvous)结束等待(cal_por,tcal_por)
可变长内存块(memory block)获得等待(get_mpl,tget_mpl)
固定长内存块(memory block)获得等待(get_mpf,tget_mpf)
强制等待状态(SUSPENDED)
任务被其他任务中止执行后进入的状态。该状态被利用的机会很少。设置的目的主要为
了调试时暂时停止正在执行的任务。
双重等待状态(WAITING-SUSPENDED)
是为了方便管理而分离出来的,其与强制等待状态大致相同。只是当任务被其他任务停
止时不是处于准备状态,而
文档评论(0)