你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【安富莱】【RTX操作系统教程】第4章 RTX操作系统介绍

[复制链接]
baiyongbin2009 发布时间:2016-1-18 15:04
第4章      RTX操作系统介绍
    本章节介绍一下RTX操作系统,让大家对RTX有一个整体的了解,Keil RTX 是免版税的确定性实时操作系统,适用于 ARM 和 Cortex-M 设备。
    4.1  RTX系统特性
    4.2  RTX系统规格
    4.3  RTX系统性能
    4.4  RTX系统内存要求
    4.5  RTX系统优势
    4.6  使用RTXVS 裸机方式的优势
    4.7  RTX和其它5款RTOS的实时性PK
    4.8         总结
4.1  RTX系统特色
                              
4.1.png
图4.1RTX内核
1.    带有源码的免版税,确定性RTOS。
2.    支持时间片,抢占式和合作式调度。
3.    以低的中断延迟执行高速实时操作(对于M3/M4内核可以实现零中断延迟)。
4.    小的空间占用适用于资源受限的系统。
5.    不限制数量的任务,每个任务都具有254的优先级。
6.    不限制数量的信号量,互斥信号量,消息邮箱和软定时器。
7.    支持多线程和线程安全操作。
8.    使用MDK基于对话框的配置向导,可以很方便的完成MDK的配置。
      
          1.   免版税
    RTX的免版税是建立在购买了正版MDK-ProfessionalEdition基础之上,详情请看:
2.   零中断延迟
    这里的零中断延迟是指ISR的中断相应时间和没有使用RTX系统是一样的,也就是说用于Cortex-M3/M4的RTX内核库中没有关闭中断的操作,这点应该算是RTX一个很大的优势,像uCOS-II,uCOS-III和FreeRTOS内核的很多地方关中断操作,关中断操作对实时性有哪些危害呢?比如此时某个任务正在调用系统API函数,而且此时中断正好关闭了,也就是进入到了临界区中,这个时候如果有一个紧急的中断事件被触发,这个中断就不能得到及时执行,必须等到中断开启才可以得到执行,如果关中断时间超过了紧急中断能够容忍的限度,危害是可想而知的。
3.   确定性
    确定性是指在在定义的时间内处理事件和中断,RTX 提供完全确定性的行为,这意味着在预定义时间内(期限)处理事件和中断,这个主要得益于RTX的零中断延迟特性。(注:另外根据CMSIS RTOS RTX的说明,RTX系统的任务切换时间也是确定的
4.   线程安全
    线程安全涉及到的问题较多,详情请看: http://www.keil.com/rl-arm/rl_threadsafe.asp

* \* q3 [9 Y4 V( T& v( O
收藏 1 评论12 发布时间:2016-1-18 15:04

举报

12个回答
baiyongbin2009 回答时间:2016-1-18 15:13:09
4.2   RTX系统规格( q6 c* }% M+ H. z

/ D8 O3 f" c) E$ @
4.2.png
4.3.png

$ P# I0 E1 j) m' _* V$ v* X
1.     不限意味着RTX内核对数量没有限制,但是,可用的系统内存资源限制可以创建的项目数量。
2.     用于Cortex-M3/M4内核的RTX库不禁用中断,中断延迟与无RTX内核时相同,Cortex-M1/M0的中断延迟小于20个时钟周期。
( D# C- H2 I: T( z4 r0 G1 i2 }3 e$ s
baiyongbin2009 回答时间:2016-1-18 15:14:47
4.3  RTX系统性能
4.4.png
1.     用于Cortex-M3/M4内核的RTX库不禁用中断,中断延迟与无RTX内核时相同,Cortex-M1/M0的中断延迟小于20个时钟周期。

% q: v' ~4 G# b" e/ G8 O8 a
baiyongbin2009 回答时间:2016-1-18 15:15:40
) X7 B7 Q% k$ ~. y
4.4  RTX系统内存要求
$ ~2 g; \$ c& L* i  o
4.5.png
1.     本测试的RTX内核是针对 10 个任务、10 个用户计时器并禁用堆栈检查。
2.     RAM要求取决于同时运行的任务数量。
3.     代码和RAM大小使用 MicoLib 运行库进行计算。

9 ]' ^" J% o) ~$ ?0 a, [
baiyongbin2009 回答时间:2016-1-18 15:18:24
4.5  RTX系统优势
     Keil RTX 实时操作系统提供许多高级功能,其他供应商的RTOS产品中并不总是提供这些功能。在选择RTOS时,应考虑以下几点:
1.   RTX 包含在 MDK-ARM 中 - 全功能、商业级RTX(包括源代码)作为 Keil MDK-ARM 开发工具的一部分提供。这不是评估版。它可完全配置,没有任何限制。因此,如果您计划使用 MDK 进行开发,RTX 是免费的。
2.   RTX 免版税 - RTX 是免版税提供的。获得了使用许可后,您可以装备使用RTX创建的产品,而无需支付其他费用或产生后续成本。
3.   市场领先的 RTOS -RTX 一直是嵌入式应用程序中领先的RTOS之一(2013,2014,2015年嵌入式市场调查报告)。您可以信心十足地在应用程序中使用 RTX。

7 o! B, q3 D2 T1 @
4.    灵活的调度 - RTX 提供三种不同的调度方式,您可以使用最适合您的调度方式:
    抢占式- 每个任务都具有不同的优先级,只有在更高优先级的任务准备好运行后才会运行。此选项方式于交互式系统,在用户输入某些内容之前,设备可能处于待机或后台模式。
    时间片 -每个任务都将运行固定的CPU运行时间段。数据记录器/系统显示器通常使用时间片调度,所有传感器或数据源都会依次进行采样,不分优先级。
    合作式 -每个任务将一直运行,直到指示其将控制权传递给另一个任务或遇到阻塞式API函数。可以在要求固定执行顺序的应用程序中使用这种调度方式。
( _, H# j! P) U4 Y
5.    确定性的行为 - 并非每个RTOS 都具有确定性。RTX 提供完全确定性的行为,这意味着在预定义时间内(期限)处理事件和中断。您的应用程序可以依赖于一致且已知的进程计时。
6.     专为嵌入式系统而设计 - RTX 是专门为基于 ARM 和 Cortex-M MCU 的嵌入式系统而编写的。它并不是根据较大的操作系统或其他架构改写的。它运行速度快,占用的 MCU 资源极少,内存占用量仅为 5KB (ROM)。
7.     易于使用 - 学习周期短,产品开发速度快。µVision IDE/调试器完全支持 RTX,其中采用 RTX 任务识别工具以便于在您的应用程序中快速方便地配置和调试 RTX。
8.     源代码 - 在所有MDK-ARM 版本中都包含 RTX 源代码。这对于需要源代码进行产品认证的情况会很有用。
9.     支持 - 提供了广泛的资源,包括示例、用户指南以及快速入门指南。Keil完全支持 RTX。

+ S' S9 K; M; n
baiyongbin2009 回答时间:2016-1-18 15:30:57
本帖最后由 baiyongbin2009 于 2016-1-18 15:32 编辑 0 ~9 F6 U) n9 c' Z
% x8 p  \" N0 z% |" X, Y
4.6  使用RTX VS 裸机方式的优势
    简单的嵌入式系统通常使用超级循环概念,其中应用程序按固定顺序执行每个函数。中断服务例程 (ISR) 用于时间关键程序部分。这种方法非常适合小系统,但对较为复杂的应用程序会有限制。
/ ?( i* {: f9 b' q  J" I5 f
4.6.1     超级循环的缺点
1.   必须在中断(ISR)内处理时间关键运算:         
$ X$ |) Z3 X# A. e* i9 C    A.  ISR 函数变得非常复杂,并且需要很长执行时间。         
( I2 t- `. @. m5 R( \& C    B.   ISR 嵌套可能产生不可预测的执行时间和堆栈需求。) b7 X1 ^! a* ^; f0 e
5 j& v1 B" V/ F/ c
2.    超级循环和ISR之间的数据交换是通过全局共享变量进行的:
      应用程序的程序员必须确保数据一致性。

. Q  a9 T, ^1 [
3.    超级循环可以与系统计时器轻松同步,但:
    A.  如果系统需要多种不同的周期时间,则会很难实现。
    B.  超过超级循环周期的耗时函数需要做拆分。
    C.  增加软件开销,应用程序难以理解。

; X. J" [( U& A  f) X! U
4.    超级循环使得应用程序变得非常复杂,因此难以扩展:
    A.  一个简单的更改就可能产生不可预测的副作用,对这种副作用进行分析非常耗时。
    B.  超级循环 概念的这些缺点可以通过使用实时操作系统 (RTOS) 来解决。
0 S0 @5 M! C; X, C
4.6.2     RTOS的优势
    RTOS将程序函数分成独立的任务,并为其提供合理的调度方式。RTX提供以下重要优势:
任务调度- 任务在需要时进行调用,从而确保了更好的程序执行和事件响应。
多任务- 任务调度会产生同时执行多个任务的效果。
确定性的行为- 在定义的时间内处理事件和中断。
更短的 ISR - 实现更加确定的中断行为。
任务间通信- 管理多个任务之间的数据、内存和硬件资源共享。
定义的堆栈使用 - 每个任务分配一个堆栈空间,从而实现可预测的内存使用。
系统管理 - 可以专注于应用程序开发而不是资源管理。
                              
4.6.png
图4.2RTX中任务通信
图4.2中任务1和任务2是应用程序中的函数,RTX提供了内存池,消息邮箱和任务之间的通讯机制
4.7.png
图4.3 RTX为直接访问RTOS所有资源提供了一种简单语法
6 j, Z* ]+ V: g  U# H2 [6 r8 b, S
baiyongbin2009 回答时间:2016-1-18 15:33:16
4.7 RTX和其它5款RTOS的实时性PK
   RTOS实时性的两个重要指标,一个是中断延迟时间,另一个就是任务切换时间,因为使用CM3或者CM4内核,RTX系统可以实现零中断延时,也就是跟裸机情况是一样的。其它4款RTOS都无法实现达到这个性能指标。中断延时时间方面,RTX完胜。
    下面就是任务切换时间的比较:
     测试条件 :STM32F103VET6,Cortex-M3内核,72MHz,
                                 软件用的MDK4.54,  1级优化。
                                  测试10000次,2ms测试一次,然后求平均。
4.8.png
从上面的测试可以看出,RTX的优势很明显,其实除了任务切换时间外,信号量,事件标志,消息邮箱的实时性都比其它4款RTOS的强劲。
3 v4 H2 @+ M5 r1 C8 P# E# `
baiyongbin2009 回答时间:2016-1-18 15:45:04
4.8  总结
     本章节就为大家讲解这么多,主要目的是想让大家对RTX操作系统有一个整体的认识,从下一章我们就开始正式的进入RTX操作系统的学习。

+ o& p; ?6 \. b0 N( O, I5 D7 u
党国特派员 回答时间:2016-1-19 09:10:39
学习之。。。 blank.png blank1.png blank2.png blank3.png blank4.png
ptiinngg 回答时间:2016-1-19 09:12:05
埃斯提爱慕 回答时间:2016-1-19 19:05:34
提示: 作者被禁止或删除 内容自动屏蔽
watershade 回答时间:2016-1-19 21:33:37
baiyongbin2009 发表于 2016-1-18 15:33/ G6 v: I+ k7 ^1 Q$ I; D
4.7 RTX和其它5款RTOS的实时性PK   RTOS实时性的两个重要指标,一个是中断延迟时间,另一个就是任务切换时 ...

) X2 F5 C, o' e* X2 o9 s2 J* ^" D" @等待教程
板子粉丝 回答时间:2018-3-22 18:02:43
听课学习第四章

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版