
可以
VxWorks系统中,针对每个任务都有一个函数调用栈,里面记录了每一层函数调用的PC指针(指令指针),函数调用的入口参数,以及局部变量等内容。利用命令i可以查看系统当前运行的任务,找到要观察任务的TID,TID-0x40就是该任务调用栈的栈底。每一层函数对应一个活动纪录。
利用l命令可以查看PC指针对应的指令,也可以依此查看该层的函数名称。
在应用时,可以在系统reset前将任务的函数调用栈保存下来,如果系统是因为异常而reset,则可以查看调用栈来确定是在哪个函数中造成reset的,以及函数执行的诡计。
对你这个话题感兴趣,搜了一下,一起学习:
摘 要: 本文分析了适用于测控领域的4种实时 *** 作系统,并对比了它们实时性能的重要指标,归纳了实时性设计和实现中的若干问题。
引言
20世纪70年代以来嵌入式系统的硬件和软件技术的飞速进步,使得嵌入式应用得到了蓬勃发展,在这些应用中实时 *** 作系统起着决定性的作用。
在复杂测控应用中,必须使用对实时性要求非常高的实时 *** 作系统。例如在工业控制、交通管理、机器人、航空航天、武器装备等领域,系统事件的响应如果不能准时或超时,就可能导致巨大的损失和灾难。因而,选择 *** 作系统时,对实时性的仔细考虑至关重要。本文从实时性的角度细致的分析对比了适用于此类有苛刻实时性要求的4种 *** 作系统——VxWorks、mC/OS-II、RT-Linux、QNX,为系统选型提供一定参考。
实时性能主要实现技术
实时 *** 作系统的实时性是第一要求,需要调度一切可利用的资源完成实时任务。根据响应时间在微秒、毫秒和秒级的不同,可分为强实时、准实时和弱实时三种。强实时系统必须是对即时的事件作出反应,绝对不能错过事件处理时限。例如测控领域就是要求强或接近强实时系统。在机顶盒、PDA、信息家电等应用领域,系统负荷较重的时候,允许发生错过时限的情况而且不会造成太大的危害,准和弱实时系统就可满足应用。一个强实时的 *** 作系统通常使用以下技术:
● 占先式内核
当系统时间响应很重要时,要使用占先式内核。当前最高优先级的任务一旦就绪,总能立即得到CPU的控制权,而CPU的控制权是可知的。使用占先式内核使得任务级响应时间得以最优化。
● 调度策略分析
任务调度策略是直接影响实时性能的因素。强实时系统和准实时系统的实现区别主要在选择调度算法上。选择基于优先级调度的算法足以满足准实时系统的要求,而且可以提供高速的响应和大的系统吞吐率。当两个或两个以上任务有同样优先级,通常用时间片轮转法进行调度。对硬实时系统而言,需要使用的算法就应该是调度方式简单,反应速度快的实时调度算法了。尽管调度算法多种多样,但大多由单一比率调度算法(RMS)和最早期限优先算法(EDF)变化而来。前者主要用于静态周期任务的调度,后者主要用于动态调度,在不同的系统状态下两种算法各有优劣。在商业产品中采用的实际策略常常是各种因素的折中。
● 任务优先级分配
每个任务都有其优先级。任务越重要,赋予的优先级应越高。应用程序执行过程中诸任务优先级不变,则称之为静态优先级。在静态优先级系统中,诸任务以及它们的时间约束在程序编译时是已知的。反之,应用程序执行过程中,任务的优先级是可变的,则称之为动态优先级。
● 时间的可确定性
强实时 *** 作系统的函数调用与服务的执行时间应具有可确定性。系统服务的执行时间不依赖于应用程序任务的多少。系统完成某个确定任务的时间是可预测的。
实时性能重要指标
衡量实时 *** 作系统实时性能的重要指标有:
● 任务切换时间
当多任务内核决定运行另外的任务时,它把正在运行任务的当前状态(即CPU寄存器中的全部内容)保存到任务自己的栈区之中。然后把下一个将要运行的任务的当前状态从该任务的栈中重新装入CPU的寄存器,并开始下一个任务的运行。这个过程就称为任务切换。做任务切换所需要的时间取决于CPU有多少寄存器要入栈。CPU的寄存器越多,额外负荷就越重。
● 中断响应时间(可屏蔽中断)
计算机接收到中断信号到 *** 作系统作出响应,并完成切换转入中断服务程序的时间。对于占先式内核,要先调用一个特定的函数,该函数通知内核即将进行中断服务,使得内核可以跟踪中断的嵌套。占先式内核的中断响应时间由下式给出:
中断响应时间=关中断的最长时间
+保护CPU内部寄存器的时间
+进入中断服务函数的执行时间
+开始执行中断服务例程(ISR)的第
一条指令时间
中断响应时间是系统在最坏情况下响应中断的时间,某系统100次中有99次在50ms之内响应中断,只有一次响应中断的时间是250ms,只能认为中断响应时间是250ms。
表2列出了部分体现实时性能重要指标的典型值,它们的测试平台和测试方法不完全相同,影响了数据的可比性,但我们仍可作为参考。
另外,还有系统响应时间(系统发出处理要求到系统给出应答信号的时间)、最长关中断时间、非屏蔽中断响应时间等辅助的衡量指标。
若干问题
虽然当今的实时 *** 作系统已日臻完善,但仍有一些问题存在并干扰着强实时的实现。我们应充分的重视,并通过合理的安排程序减少它们的危害。
● 优先级反转
这是实时系统中出现得最多的问题。优先级反转是指一个任务等待比它优先级低的任务释放资源而被阻塞,如果这时有中等优先级的就绪任务,阻塞会进一步恶化。它严重影响了实时任务的完成。
为防止发生优先级反转,一些商业内核(如VxWorks)使用了优先级继承技术,当优先级反转发生时,优先级较低的任务被暂时地提高它的优先级,使得该任务能尽快执行,释放出优先级较高的任务所需要的资源。但它也不能完全避免优先级反转,只能称其减轻了优先级反转的程度,减轻了优先级反转对实时任务完成的影响。
优先权极限是另一种解决方案,系统把每一个临界资源与1个极限优先权相联系,这个极限优先权等于系统此时最高优先权加1。当这个任务退出临界区后,系统立即把它的优先权恢复正常,从而保证系统不会出现优先权反转的情况。采用这种方案的另一个有利之处,是仅仅通过改变某个临界资源的优先级就可以使多个任务共享这个临界资源。
● 任务执行时间的抖动
各种实时内核都有将任务延时若干个时钟节拍的功能。优先级的不同、延时请求发生的时间、发出延时请求的任务自身的运行延迟,都会造成被延时任务执行时间不同程度的提前或滞后,称之为任务执行时间的抖动。可能的解决方案有:
a. 增加微处理器的时钟频和时钟节拍的频率;b 重新安排任务的优先级;c 避免使用浮点运算等。
强实时系统中,我们必须综合考虑,充分利用各种手段,尽量减少任务执行时间的抖动。
● 任务划分
程序在CPU中是以任务的方式在运行,所以我们要将系统的处理框图转化为多任务流程图,对处理进行任务划分。任务划分存在这样一对矛盾:如果任务太多,必然增加系统任务切换的开销;如果任务太少,系统的并行度就降低了,实时性就比较差。在任务划分时要遵循HGomma原则:
a. I/O原则:不同的外设执行不同任务;
b. 优先级原则:不同优先级处理不同的任务;
c. 大量运算:归为一个任务;
d. 功能耦合:归为一个任务;
e. 偶然耦合:归为一个任务;
f. 频率组合:对于周期时间,不同任务处理不同的频率。
如果我们在具体分析一个系统的时候发生原则冲突的话,则要为每一个原则针对具体的系统设定“权重”,必要的时候可以通过计算“权重”来最终确定如何去划分任务。
总结
VxWorks、mC/OS-II、RT-Linux、QNX都是优秀的强实时 *** 作系统,各有特色:VxWorks的衡量指标值最好;mC/OS-II最短小精悍;RT-Linux支持调度策略的改写;QNX支持分布式应用。当我们充分理解和掌握它们实现技术、衡量指标的不同,注意所存在的问题,就能在实时性应用中游刃有余。
来源:[>
按照我们的做法,我们会将VXWORKS的IP设置在BSP的引导线中,这就和BSP的设计相关了。
但是最终是调用一个ifAddrSet()来实现ipaddress和interface的绑定,同时需要指定netmask通过调用ifMaskSet( ) 。
在windows下是可以ping通vxworks的。需要注意的是,pc 和vxworks属于同一网段,如果不在同一网段,需要添加路由。
问题一:硬实时 *** 作系统和软实时 *** 作系统有什么不同? 国际上常见的嵌入式 *** 作系统大约有40种左,右如:Linux、uClinux、WinCE、PalmOS、Symbian、eCos、uCOS-II、VxWorks、pSOS、Nucleus、ThreadX 、Rtems 、QNX、INTEGRITY、OSE、C Executive 。他们基本可以分为两类,一类是面向控制、通信等领域的实时 *** 作系统,如windriver公司的vxworks、isi的psos、qnx系统软件公司的qnx、ati的nucleus等;另一类是面向消费电子产品的非实时 *** 作系统,这类产品包括个人数字助理(pda)、移动电话、机顶盒、电子书、webphone等,系统有Microsoft的WinCE,3的Palm,以及Symbian和Google的Android等。
(一)VxWorks
VxWorks *** 作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时 *** 作系统(RTOS),是Tornado嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌人式实时 *** 作系统领域逐渐占据一席之地。
VxWorks具有可裁剪微内核结构;高效的任务管理;灵活的任务间通讯;微秒级的中断处理;支持POSIX 1003.1b实时扩展标准;支持多种物理介质及标准的、完整的TCP/IP网络协议等。
然而其价格昂贵。由于 *** 作系统本身以及开发环境都是专有的,价格一般都比较高,通常需花费功0万元人民币以上才能建起一个可用的开发环境,对每一个应用一般还要另外收取版税。一般不通供源代码,只提供二进制代码。由于它们都是专用 *** 作系统,需要专门的技术人员掌握开发技术和维护,所以软件的开发和维护成本都非常高。支持的硬件数量有限。(二)Windows CE
Windows CE与Windows系列有较好的兼容性,无疑是Windows CE推广的一大优势。其中WinCE30是一种针对小容量、移动式、智能化、32位、了解设备的模块化实时嵌人式 *** 作系统。为建立针对掌上设备、无线设备的动态应用程序和服务提供了一种功能丰富的 *** 作系统平台,它能在多种处理器体系结构上运行,并且通常适用于那些对内存占用空间具有一定限制的设备。它是从整体上为有限资源的平台设计的多线程、完整优先权、多任务的 *** 作系统。它的模块化设计允许它对从掌上电脑到专用的工业控制器的用户电子设备进行定制。 *** 作系统的基本内核需要至少200KB的ROM。由于嵌入式产品的体积、成本等方面有较严格的要求,所以处理器部分占用空间应尽可能的小。系统的可用内存和外存数量也要受限制,而嵌入式 *** 作系统就运行在有限的内存(一般在ROM或快闪存储器)中,因此就对 *** 作系统的规模、效率等提出了较高的要求。从技术角度上讲,Windows CE作为嵌入式 *** 作系统有很多的缺陷:没有开放源代码,使应用开发人员很难实现产品的定制;在效率、功耗方面的表现并不出色,而且和Windows一样占用过的系统内存,运用程序庞大;版权许可费也是厂商不得不考虑的因素。(三)嵌入式Linux
这是嵌入式 *** 作系统的一个新成员,其最大的特点是源代码公开并且遵循GPL协议,在近一年多以来成为研究热点,据IDG预测嵌入式Linux将占未来两年的嵌入式 *** 作系统份额的50%。
由于其源代码公开,人们可以任意修改,以满足自己的应用,并且查错也很容易。遵从GPL,无须为每例应用交纳许可证费。有大量的应用软件可用。其中大部分都遵从GPL,是开放源代码和免费的。可以稍加修改后应用于用户自己的系统。有大量的免费的优秀的>>
问题二:实时 *** 作系统有哪些 实时 *** 作系统是保证在一定时间限制内完成特定功能的 *** 作系统。实时 *** 作系统有硬实时和软实时之分,硬实时要求在规定的时间内必须完成 *** 作,这是在 *** 作系统设计时保证的;软实时则只要按照任务的优先级,尽可能快地完成 *** 作即可。我们通常使用的 *** 作系统在经过一定改变之后就可以变成实时 *** 作系统。
例如,可以为确保生产线上的机器人能获取某个物体而设计一个 *** 作系统。在“硬”实时 *** 作系统中,如果不能在允许时间内完成使物体可达的计算, *** 作系统将因错误结束。在“软”实时 *** 作系统中,生产线仍然能继续工作,但产品的输出会因产品不能在允许时间内到达而减慢,这使机器人有短暂的不生产现象。一些实时 *** 作系统是为特定的应用设计的,另一些是通用的。一些通用目的的 *** 作系统称自己为实时 *** 作系统。但某种程度上,大部分通用目的的 *** 作系统,如微软的Windows NT或IBM的OS/390有实时系统的特征。这就是说,即使一个 *** 作系统不是严格的实时系统,它们也能解决一部分实时应用问题。
大体上,实时 *** 作系统(RTOS)要求:
多任务
处理能被区分优先次序的进程线
一个中断水平的充份数量
被装入作为微型设备一部分的内含小 *** 作系统经常要求实时 *** 作系统。一些核心问题能被考虑以符合实时 *** 作系统的需求。然而,因为像设备驱动程序这样的其他成份,也通常被特别的方法需要,一个实时 *** 作系统通常比核心更大。
问题三:实时 *** 作系统有哪些 实时 *** 作系统是保证在一定时间限制内完成特定功能的 *** 作系统。实时 *** 作系统有硬实时和软实时之分,硬实时要求在规定的时间内必须完成 *** 作,这是在 *** 作系统设计时保证的;软实时则只要按照任务的优先级,尽可能快地完成 *** 作即可。我们通常使用的
问题四: *** 作系统都有哪些 实时 *** 作系统 上 1 目前当下 *** 作系统有PC端:Windows;Linux; Mac os; Unix;WAP端有:Android;ios
问题五:实时 *** 作系统的实时任务 在实时系统中必然存在着若干个实时任务,这些任务通常与某些个外部设备相关,能反应或控制相应的外部设备,因而带有某种程度的紧迫性。可从不同的角度对实时任务加以分类。1、 按任务执行时是否呈现周期性变化来划分:a、周期性实时任务外部设备周期性地发出激励信号给计算机,要求它按照指定周期循环执行,以便周期性的控制某种外部设备。b、非周期性实时任务外部设备所发出的激励信号并无明显的周期性,但都必须联系着一个截止时间。 它又可分为开始截止时间(任务在某时间以前必须开始执行)和完成截止时间(任务在某时间以前必须完成)两部分。2、根据对截至时间的要求来划分:a、硬实时任务b、软实时任务
问题六:windows实时 *** 作系统有哪些 Windows7、Windows8、Windows10,至少有这三款。
问题七:实时 *** 作系统的比较 实时系统与分时系统特征的比较(1)多路性。实时信息处理系统与分时系统一样具有多路性。系统按分时原则为多个终端用户服务;而对实时控制系统,其多路性则主要表现在经常对多路的现场信息进行采集以及对多个对象或多个执行机构进行控制。(2)独立性。实时信息处理系统与分时系统一样具有独立性。每个终端用户在向分时系统提出服务请求时,是彼此独立的 *** 作,互不干扰;而在实时控制系统中信息的采集和对对象的控制,也彼此互不干扰。(3)及时性。实时信息系统对实时性的要求与分时系统类似,都是以人所能接受的等待时间来确定;而实时控制系统的及时性,则是以控制对象所要求的开始截止时间或完成截止时间来确定的,一般为秒级、百毫秒级直至毫秒级,甚至有的要低于100微秒。(4)交互性。实时信息处理系统具有交互性,但这里人与系统的交互,仅限于访问系统中某些特定的专用服务程序。它不像分时系统那样能向终端用户提供数据处理服务、资源共享等服务。(5)可靠性。分时系统要求系统可靠,相比之下,实时系统则要求系统高度可靠。因为任何差错都可能带来巨大的经济损失甚至无法预料的灾难性后果。因此,在实时系统中,采取了多级容错措施来保证系统的安全及数据的安全。
问题八:嵌入式实时 *** 作系统和软实时 *** 作系统的区别 嵌入式实时系统中采用的 *** 作系统我们称为嵌入式实时 *** 作系统,它既是嵌入式 *** 作系统,又是实时 *** 作系统。作为一种嵌入式 *** 作系统,它具有嵌入式软件共有的可裁剪、低资源占用、低功耗等特点;而作为一种实时 *** 作系统(本文对实时 *** 作系统特性的讨论仅限于强实时 *** 作系统,下面提到的实时 *** 作系统也均指强实时 *** 作系统),它与通用 *** 作系统(如Windows、Unix、Linux等)相比有很大的差别,下面我们将通过比较这两种 *** 作系统之间的差别来逐步描述实时 *** 作系统的主要特点。
我们在日常工作学习环境中接触最多的是通用 *** 作系统,通用 *** 作系统是由分时 *** 作系统发展而来,大部分都支持多用户和多进程,负责管理众多的进程并为它们分配系统资源。分时 *** 作系统的基本设计原则是:尽量缩短系统的平均响应时间并提高系统的吞吐率,在单位时间内为尽可能多的用户请求提供服务。由此可以看出,分时 *** 作系统注重平均表现性能,不注重个体表现性能。如对于整个系统来说,注重所有任务的平均响应时间而不关心单个任务的响应时间,对于某个单个任务来说,注重每次执行的平均响应时间而不关心某次特定执行的响应时间。通用 *** 作系统中采用的很多策略和技巧都体现出了这种设计原则,如虚存管理机制中由于采用了LRU等页替换算法,使得大部分的访存需求能够快速地通过物理内存完成,只有很小一部分的访存需求需要通过调页完成,但从总体上来看,平均访存时间与不采用虚存技术相比没有很大的提高,同时又获得了虚空间可以远大于物理内存容量等好处,因此虚存技术在通用 *** 作系统中得到了十分广泛的应用。类似的例子还有很多,如Unix文件系统中文件存放位置的间接索引查询机制等,甚至硬件设计中的Cache技术以及CPU的动态分支预测技术等也都体现出了这种设计原则。由此可见,这种注重平均表现,即统计型表现特性的设计原则的影响是十分深远的。
实时 *** 作系统,即RTOS(Real-TIme operating system),是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的 *** 作系统。对于实时 *** 作系统,前面我们已经提到,它除了要满足应用的功能需求以外,更重要的是还要满足应用提出的实时性要求,而组成一个应用的众多实时任务对于实时性的要求是各不相同的,此外实时任务之间可能还会有一些复杂的关联和同步关系,如执行顺序限制、共享资源的互斥访问要求等,这就为系统实时性的保证带来了很大的困难。因此,实时 *** 作系统所遵循的最重要的设计原则是:采用各种算法和策略,始终保证系统行为的可预测性(predictability)。可预测性是指在系统运行的任何时刻,在任何情况下,实时 *** 作系统的资源调配策略都能为争夺资源(包括CPU、内存、网络带宽等)的多个实时任务合理地分配资源,使每个实时任务的实时性要求都能得到满足。与通用 *** 作系统不同,实时 *** 作系统注重的不是系统的平均表现,而是要求每个实时任务在最坏情况下都要满足其实时性要求,也就是说,实时 *** 作系统注重的是个体表现,更准确地讲是个体最坏情况表现。举例来说,如果实时 *** 作系统采用标准的虚存技术,则一个实时任务执行的最坏情况是每次访存都需要调页,如此累计起来的该任务在最坏情况下的运行时间是不可预测的,因此该任务的实时性无法得到保证。从而可以看出在通用 *** 作系统中广泛采用的虚存技术在实时 *** 作系统中不宜直接采用。
由于实时 *** 作系统与通用 *** 作系统的基本设计原则差别很大,因此在很多资源调度策略的选择上>>
问题九:实时 *** 作系统的特征 1)高精度计时系统计时精度是影响实时性的一个重要因素。在实时应用系统中,经常需要精确确定实时地 *** 作某个设备或执行某个任务,或精确的计算一个时间函数。这些不仅依赖于一些硬件提供的时钟精度,也依赖于实时 *** 作系统实现的高精度计时功能。2)多级中断机制一个实时应用系统通常需要处理多种外部信息或事件,但处理的紧迫程度有轻重缓急之分。有的必须立即作出反应,有的则可以延后处理。因此,需要建立多级中断嵌套处理机制,以确保对紧迫程度较高的实时事件进行及时响应和处理。3)实时调度机制实时 *** 作系统不仅要及时响应实时事件中断,同时也要及时调度运行实时任务。但是,处理机调度并不能随心所欲的进行,因为涉及到两个进程之间的切换,只能在确保“安全切换”的时间点上进行,实时调度机制包括两个方面,一是在调度策略和算法上保证优先调度实时任务;二是建立更多“安全切换”时间点,保证及时调度实时任务。实时 *** 作系统的特点IEEE 的实时UNIX分委会认为实时 *** 作系统应具备以下的几点:1、异步的事件响应2、切换时间和中断延迟时间确定3、优先级中断和调度4、抢占式调度
个人理解,仅为建议。
目前我使用的驱动是在usrRoot中加载的,主要是AD,IO这种,所以具体在哪里加载要求不是很高,甚至可以在用户应用程序中加载。
串口的需要更改pch中与串口相关的函数。
在BSP里可以看看串口的驱动程序。两个函数一个注册设备,一个是注册open等7个函数。就像上面说的加载一样,调用这两个函数,就等于在 *** 作系统中注册设备,可以使用该设备。不是必须在BSP中调用。
生成xxo文件,添加到镜像中,如果开机启动在usrRoot中调用函数名就可以了。
在usrRoot中添加启动任务,系统运行后自动执行usrRoot函数,就可以执行usrRoot中写的任务了。
sh是调试使用的,实际不会。除非留有调试函数,在必须时使用。
嵌入式实时 *** 作系统强调了什么?
系统最大的特点当然是嵌入。嵌入就意味着它和硬件的联系很强,对硬件的适配和依赖度都是很高的,对于系统移植的难易度也就成了评价嵌入实时系统的重要方面。嵌入式 *** 作系统移植的目的是使嵌入式 *** 作系统能在某个微处理器或微控制器上运行。比如VxWorks是商用 *** 作系统的有很多API函数及相关技术支持,所以移植和二次开发比较容易,但是移植成本较高。嵌入还意味着对于小型的硬件要求,主要是面对实时产生的数据,在数据产生终端进行快速的运算。所以系统极其强调灵敏性和实时性。
另一个特点就是实时。对于实时性的要求,有很多种实现措施。我们一一道来。首先就是分区处理的思想。对于核心的功能划分,使用户信息和系统程序和运行分列在不同的区划里,保证任务的有效有序运转。其次, 任务管理是嵌入式实时 *** 作系统的核心和灵魂,决定了 *** 作系统的实时性能。它通常包含优先级设置、多任务调度机制和时间确定性等部分。 嵌入式 *** 作系统支持多任务,每个任务都具有优先级,任务越重要,赋予的优先级应越高。优先级的设置分为静态优先级和动态优先级两种。静态优先级指的是每个任务在运行前都被赋予一个优先级,而且这个优先级在系统运行期间是不能改变的;动态优先级则是指每个任务的优先级(特别是应用程序的优先级)在系统运行时可以动态地改变。 嵌入式 *** 作系统支持多任务,每个任务都具有优先级。任务调度主要是协调任务对计算机系统资源的争夺使用。对系统资源非常匮乏的嵌入式系统来说,任务调度尤为重要,它直接影响到系统的实时性能。通常,多任务调度机制分为基于优先级抢占式调度和时间片轮转调度。
基于优先级抢占式调度:系统中每个任务都有一个优先级,内核总是将CPU分配给处于就绪态的优先级最高的任务运行。如果系统发现就绪队列中有比当前运行任务更高的优先级任务,就把当前运行任务置于就绪队列中,调入高优先级任务运行。系统采用优先级抢占方式进行调度,可以保证重要的突发事件及时得到处理。
时间片轮转调度:让优先级相同的处于就绪状态的任务按时间片使用CPU,以防止同优先级的某一任务长时间独占CPU。
在一般情况下,嵌入式实时 *** 作系统采用基于优先级抢占式调度与时间片轮转调度相结合的调度机制。
第三,在运行的执行方式上,VXworks等系统采用进程和线程的执行方式,而市面上其他的系统多采用任务执行方式。
嵌入式实时 *** 作系统函数调用与服务的执行时间应具有可确定性。系统服务的执行时间不依赖于应用程序任务的多少。基于此特征,系统完成某个确定任务的时间是可预测的。表1具体列出了4种 *** 作系统的调度机制。
VxWorks具有高效的任务管理功能,它支持多任务,可分配256个优先级,支持优先级抢占式调试和时间片轮转调度,实时性最好。μC/OS-II内核是针对实时系统的要求设计实现的,只支持基于固定优先级抢占式调度;调度方法简单,可以满足较高的实时性要求。μClinux在结构上继承了标准Linux的多任务实现方式,分为实时进程和普通进程,分别采用先来先服务和时间片轮转调度;仅针对中低档嵌入式CPU特点进行改良,且不支持内核抢占。eCos调度方法丰富,提供了两种基于优先级的调度器(即位图调度器和多级队列调度器),允许用户在进行配置时选择其中一个凋度器,适应性好。
此外,还涉及到任务的中断管理。
中断管理是实时系统中一个很重要的部分,系统经常通过中断与外部事件交互。主要考虑是否支持中断嵌套、中断处理机制、中断延时等。
以VXwoks为例,xWorks *** 作系统中断管理采用中断处理与普通任务分别在不同栈中处理的中断处理机制,使得中断只会引发一些关键寄存器的存储,而不会导致任务的上下文切换,从而极大地缩短了中断延时。同时,VxWorks的中断处理程序只能在最短时间内通告中断的发生,而将其他的非实时处理尽量放入被引发的中断服务程序中来完成,这也缩短了中断延时。但是凼为中断服务程序不在一个固定的仟务上下文中执行,而目没有任务控制块,所以所有中断服务程序使用相同的中断堆栈。为了能处理最坏情况下的中断嵌套,必须分配足够大的中断堆栈空间。
因商业原因,不对其他新型嵌入式实时 *** 作系统做分析。
·有哪些厉害的MPU实时 *** 作系统?
1、VXworks
VxWorks *** 作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时 *** 作系统(RTOS),是嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时 *** 作系统领域占据一席之地。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、d道制导、飞机导航等。在美国的 F-16、FA-18战斗机、B-2 隐形轰炸机和爱国者导d上,甚至连1997年4月在火星表面登陆的火星探测器、2008年5月登陆的凤凰号,和2012年8月登陆的好奇号也都使用到了VxWorks上。
VxWorks *** 作系统有以下部件组成:
多任务调度(采用基于优先级抢占方式,同时支持同优先级任务间的分时间片调度)
任务间的同步
进程间通信机制
中断处理
定时器和内存管理机制
总之,VxWorks的系统结构是一个相当小的微内核的层次结构。内核仅提供多任务环境、进程间通信和同步功能。这些功能模块足够支持VxWorks在较高层次所提供的丰富的性能的要求。
2、QNX
QNX是一种商用的遵从POSIX规范的类Unix实时 *** 作系统,目标市场主要是面向嵌入式系统。它可能是最成功的微内核 *** 作系统之一。
QNX成立于1980年,是加拿大一家知名的嵌入式系统开发商。
QNX的应用范围极广,包含了:控制保时捷跑车的音乐和媒体功能、核电站和美国陆军无人驾驶Crusher坦克的控制系统[2],还有RIM公司的BlackBerry PlayBook平板电脑。
3、Rtems
RTEMS, 即: 实时多处理器系统(Real Time Executive for Multiprocessor Systems),是一个开源的无版税实时嵌入 *** 作系统RTOS。
它最早用于美国国防系统,早期的名称为实时导d系统(Real Time Executive for Missile Systems),后来改名为实时军用系统(Real Time Executive for Military Systems),现在由OAR公司负责版本的升级与维护。无论是航空航天、军工,还是民用领域RTEMS都有着极为广泛的应用。
以上就是关于itoa函数在vxworks系统里面能用吗全部的内容,包括:itoa函数在vxworks系统里面能用吗、vxworks *** 作系统如何实现实时性、vxworks网关配置函数怎么用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)