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

【安富莱STM32F407之uCOS-III教程】第1章 嵌入式实时操作系统...

[复制链接]
baiyongbin2009 发布时间:2014-12-15 16:04
本帖最后由 baiyongbin2009 于 2014-12-15 16:26 编辑 1 w( O9 i9 Q  [& O; K7 `* u
7 b7 X/ P$ [( @8 ^3 }+ B
特别说明:
1.  本教程是安富莱电子原创。
2.  安富莱STM32F407开发板资料已经全部开源,开源地址:http://bbs.armfly.com/read.php?tid=1285
3.  当前共配套300多个实例,4套用户手册。
% O8 M5 C2 P/ E0 |% O# ]5 z
第1章  嵌入式实时操作系统介绍
        本期教程开始带领大家学习μCOS-III的源码分析和使用,在讲这个前需要做几期嵌入式实时操作系统基础知识和基于时间触发的嵌入式系统使用方法。这么做主要是方面没有OS基础的同学也可以直接学习μCOS-III,本期教程就从嵌入式实时操作系统基本概念开始,这一期内容比较容易,初学者有个了解就行。1.1 嵌入式系统) |2 B/ G1 d5 q$ y1 `( v; N
1.2 基于时间触发的嵌入式系统
, b  s9 q* K5 c/ q2 x0 q  \  b1.3 总结
! L! J) z& Z6 v' z7 z. f1.1  嵌入式系统" Q0 O4 d0 i, ^# d" w0 s( b
      一般嵌入式系统方面的书籍开头部分都会做很多概念性的介绍。关于概念性的东西,大家读读就可以了,有个了解就行。我这里也简单整理了些,后面加入一些个人的理解。+ t8 r! D9 ?6 ^% o4 l% z  k
1.1.1      定义: `3 b/ d3 c% q* I; H
        关于嵌入式系统,至今没有确切的定义,下面给出三个比较常用的定义:
8 F( Q/ D" I/ E3 W/ t$ Zl  系统定义2 o4 u5 Y) c' E" ]/ h! m) y
        当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的嵌入式操作系统。
' G  t9 \5 A% y0 U        注:在工业控制、 军事设备、 航空航天等领域对系统的响应时间有苛刻的要求,这就需要使用实时系统。我们常常说的嵌入式操作系统都是嵌入式实时操作系统。比如μCOS-III,eCOS和Linux、HOPEN OS。故对嵌入式实时操作系统的理解应该建立在对嵌入式系统的理解之上加入对响应时间的要求。0 k# u9 e! A) |
l  IEEE定义- j( ]6 N- [" A. O: g. C8 E
        嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置”(Devices used to control, monitor, orassist the operation of equipment, machinery or plants)。
7 z4 f& P1 r7 H" H: E: n! H1 Rl  一般定义4 x  L" `( |6 }3 t
        以应用为中心、以计算机技术为基础、软件硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
" @8 a2 i' ?  l5 K; a3 E/ y% M, d其实还有一种通俗的理解:嵌入式操作系统是为了区别于通用的计算机系统,人们把嵌入到对象体系中,为实现对象体系智能化控制的计算机系统,称作嵌入式计算机系统,简称嵌入式系统。, X* d) h5 t3 ~5 u) }" x/ S, M
% s8 K: _# r! G8 H0 L! Y6 r+ @7 ^
1.1.2      嵌入式操作系统分类1 Z$ C0 u( j/ O* n$ U! B+ G$ R2 P
        按对外部事件的响应能力来分类,嵌入式操作系统有分时操作系统和实时操作系统。如果操作系统能使计算机系统及时的响应外部事件请求,并能控制所有实时设备和实时任务协调运行,且能在一个规定的时间内完成对事件的处理,那么这种系统就称为实时操作系统(RTOS)。
- ^. {) D8 T+ ]: h% u1 `" ]        按时间的正确程度来分,实时操作系统又分为硬件的实时操作系统和软件的实时操作系统。系统必须在及其严格的时间内完成的任务叫做硬件的实时操作系统,要是不是很严格的话就是软件的实时操作系统。
  l8 g& Z( u5 ~! o2 O        分时操作系统就是按时间片轮转完成各个任务。
' A) w$ B/ q8 ]/ q+ K8 P. n% w
* r7 G8 _" i, y+ y1 m, w* \9 L1.1.3      当前流行的嵌入实时操作系统% [5 V6 O# ^8 j  L" H0 C
        在过去的2013年里,由UBM Tech Electronics做的2013年嵌入式市场报告分析了当前比较流行的嵌入式实时操作系统,为了说明这个报告的权威性,下面是主办方的信息:  L' o# L( q  s6 A
1.jpg

8 }5 u: D/ r4 W: ?        根据EETimes上面所说的测试者主要来自欧洲和北美:http://www.eetimes.com/document.asp?doc_id=1263083
* X  j; _8 j3 Y7 C# h; M, k' B. k        这里我们主要关心的是小型的嵌入式RTOS,这个也是我们本期教程讨论的重点,下面我就把相关的信息帖出来,这样大家也好有个了解。
/ |) @& e. t% ?3 n" }; m- R
2.jpg

( j8 ?3 V' ^7 b
3.jpg

* q  C: u0 f7 M: h        上面两个图表的含义解释:
, ^; @( \1 ?9 j+ w, }% r" x4 M+ y        1.    第一个图标是当前正在使用的系统使用调查,第二个是以后的12个月里将要使用的系统。3 |; W7 \0 t$ O7 J0 F
        2.    对于第一个图表,只有使用超过%2的才会在上面显示。对于第一个图表,只有使用超过%3的才会在上面显示。
5 @# g( _: z/ f* ~, E) \        3.    因为咱们第一期RTOS的教程做的就是μCOS-III,所以重点看一下Micrium(μCOS-III,II)Net,从2012年的%10下降到2013年的%6。下滑有点大。
& Z  a$ K  I$ R4 J' Y        4.    FreeRTOS在小型嵌入式RTOS里面是当之无愧的老大,之所以这么火都是有原因的,后面跟大家简单分析下。
- L. B* B1 D/ J        5.    RTX(由KEIL公司设计,现在已经被并入ARM公司旗下)也是榜上有名,这个OS设计的也非常强劲,将基于Cortex-M3/M4架构的ARM芯片性能发挥到极致,比如那个零延迟中断。而且在任务切换等性能测试方面完爆其它RTOS,后面跟大家提供一组数据。
' T* j1 v9 Z; _% u0 G; I. Q        6.    embOS也非常的不错,只是没有上榜,可能大家对这款RTOS了解的比较少,说起emWin大家应该记比较熟悉了,和emWin一样都是出自Segger公司。
- g3 ^% z! G! {8 s2 c  T! s" X& J7 b: u: r% p* w
+ b/ B+ g1 y- D3 d5 e
赞 收藏 2 评论14 发布时间:2014-12-15 16:04

举报

14个回答
baiyongbin2009 回答时间:2014-12-15 16:05:38
本帖最后由 baiyongbin2009 于 2014-12-15 16:27 编辑
6 K' }& u( t9 e. G: V* q8 S8 ]
) c: V4 E" V! ~" J5 A& W
下面讨论几个大家关心的问题:
l  为什么FreeRTOS这么火?. L. M( ?# g8 V, W3 `
下面说一下我个人的理解:7 `. I; X5 A" r6 a8 T9 s& \" q
Ø  开源免费的,而且官方在这款RTOS升级上面做的也很积极,而且官方有完善的函数使用手册以及相关的例子,使用起来很容易上手。
4.jpg
( }: f) f/ v2 `2 u  E. X' H+ `; `
5.jpg
+ H; Y) n- ?" G) }3 y0 {
Ø  既然FreeRTOS这么火,这里简单的做点介绍:FreeRTOS一共有三个版本,其它两个是SafeRTOS,OpenRTOS。, U9 N1 u5 ~5 d) x5 L
1.    FreeRTOS和OpenRTOS的关系
# L) ^" K$ U1 r* T        FreeRTOS和OpenRTOS的共享相同的源码,只是 OpenRTOS 为 FreeRTOS 披上commercial and legal wrapper。用户从FreeRTOS更新到OpenRTOS主要有两个原因:
5 x. Y2 A6 M2 ?! V# \u  为了克服FreeRTOS修改版的GPL许可证限制。
3 O# c  ~. n4 h* v- au  为了获得额外的服务,如专业的技术支持,高质量的中间件,培训,咨询和相应的工具。
4 ?5 N, k( ?! T* T! ~% Z2.    FreeRTOS有GPL(修正版)许可证限制
2 f; n5 G( j5 V4 t$ t        修改版的GPL许可证有如下几个缺陷(There are several reasons whydevelopers may find the FreeRTOS modified GPL licence restrictive.): d6 C" f% Z5 Z# J& D& J6 K
u  公司可能有一个全面禁止在他们的项目中使用GPL授权的软件。: Z- G; b, A, l& m9 q
u  他们可能需要IP赔偿。/ R, K- D* Y3 [
u  他们可能更愿意在他们的产品中,避免FreeRTOS的许可证要求承认他们使用FreeRTOS的。! _( S0 w& r- S5 O  e; U5 E) s
前面说的OpenRTOS许可证删除GPL(修改版)的限制,提供知识产权保障,并允许开发者保持匿名。
4 }6 t3 u, J9 l3 q3.    FreeRTOS和SafeRTOS的关系
' |1 t( n. O% ?. ?6 d  R' k4 a2 p        SafeRTOS也是基于FreeRTOS的,但是和FreeRTOS不同,被安全方面的专家做了重新设计,下面是SafeRTOS获得的安全认证(这些认证非常重要)。
  
Industrial
  
IEC 61508 (2010)
Railway
EN 50128
Medical
IEC 62304/FDA 510K
Nuclear
IEC 61513, IEC 62138, ASME  NQA-1 2008
Process
IEC 61511
Automotive
ISO 26262
Aerospace
DO178B
7 a: G1 M' w5 e2 k  V% ^+ W
l  既然FreeRTOS是当前最火的,为什么不先做FreeRTOS的教程?
; N4 \" C8 a+ V/ K  C, N+ ]" `Ø  一方面是因为很多人已经有μCOS-II的经验,学习μCOS-III也相对比较容易,而且国内铺天盖地的μCOS-II资料。+ q4 v: ]( m0 J. C4 r* e# Y
Ø  这个原因比较重要,就是μCOS-III的源码可读性比较强,相比RTX和FreeRTOS都要好很多,代码写的非常规范,是学习研究的好资料。
1 {! O3 e6 W: J5 Ol  关于RTX的一些简单说明) v+ V$ f' v4 @2 S- l2 G: y
        KEIL公司被ARM公司并购后,ARM公司在RTX的基础上正式推出CMSIS-RTOS,相对于RTX,主要是重新进行了一层封装,并加入了一些新的特性,这里就不做过多的介绍了,下面贴一组我测试的数据,主要是说明RTX强劲的性能。
9 Z) r3 k4 }; q0 w        测试条件:STM32F103VET6,Cortex-M3内核,72Mhz,* |7 |. a% Y6 v2 w5 U
        软件用的MDK4.54,  1级优化。7 A/ b% s5 Z: q9 W
        测试10000次,2ms测试一次,然后求平均。
0 x) J! H: I, y/ G1 @/ J
RTOS
版本
测试周期个数

' f& E# a6 W, ]# PRTX

$ W6 }# l( S" O, d& d/ B. H" W3 s4 WV4.5

5 s4 X8 ]0 y: v% B252
2 U! J& T! g& I4 ~! l- [
μCOS-II
. c/ q( D0 w  t: Z" i: {4 h. {( o" o
V2.92.07
6 M7 {/ H7 N1 n2 s- Z/ c
354
8 w3 m3 t# s/ d! Y/ O
μCOS-III
% F: K5 @6 l+ F) I3 |2 x: U
V3.03.01
- L& P5 z7 l3 C' v: }9 T: h
576
- z# D9 P+ d. j7 d
embOS
5 j2 Y& s% T3 d! }; \6 z
V3.86
% M  F  O  W" j
389
6 R" |$ ]5 z7 w
FreeRTOS
5 {% j1 f" j! h) |
V7.4.2

4 \9 Z; c5 v- P- C7 p  b  q+ O$ K514(另一种测试是374)

& |4 n' d- Q7 F! _+ q/ [6 l
7 d% n2 Y( W' V( Q" U) ]8 M1.1.4      STM32嵌入式实时操作系统解决方案
, G9 n. f, o7 p4 U9 m
       ST公司有一个手册是专门讲嵌入式解决方案的,这里就把RTOS相关的粘贴出来。
! x7 Z; D7 T1 B. A
6.jpg
6 J7 a+ C# S/ c
7.jpg
# p3 u$ J* J* f9 g
    一般情况下是这样的,芯片厂商推出一款新的处理器芯片后,都会做一个评估板,很多RTOS厂商都会在这个评估板的基础上做一些相关的DEMO,比如Micrium公司为ST出的评估板配套的例子。
8.jpg
像SEGGER(embOS),KEIL(RTX)等都会为其配套例子的。
1 I0 D+ m1 k/ \+ M4 @8 \& \

# w- v8 Y$ I$ `: w. l5 v) ^% k, z. }8 ?' `) H3 ^

6 e* c) w; N0 t& h- h
1 L$ k7 }) F! }- ?
0 w0 f( u9 z, T+ C4 u2 K& R% A5 [
baiyongbin2009 回答时间:2014-12-15 16:05:53
本帖最后由 baiyongbin2009 于 2014-12-15 16:07 编辑 " U7 G* K, F: k/ U! Y4 `
' [: S5 o1 n0 J3 R0 Q8 m. [3 |, f
1.2  基于时间触发的嵌入式系统9 X0 e5 S: ~1 o
        这里把基于时间触发的嵌入式系统单独的作为一小节独立了出来,是因为时间触发方式在嵌入式领域也很重要,这种方式简单可靠,有很好的可预测性,在一些安全关键的领域也得到了广泛的应用。
2 ^: ?& Z8 R7 g# Y8 b       有一本时间触发嵌入式系统设计模(patterns for time-triggered embedded systems)的书,作者是Michael J. Pont,他在这个领域深有研究,而且有很多相关的论文发表,有兴趣的可以搜索一些他的文章进行深入的了解。作为入门,大家可以看一下时间触发嵌入式系统这本书的第11页,1.7 Time-triggered systems(一定要读)对时间触发做了入门性的介绍,讲的非常好。如果读英文有点吃力的话,可以选择读中文版。
: m* g1 k6 a7 s       后面两期会跟大家做两期时间触发的教程,让大家学会如何使用这种程序设计架构。
$ Y: o1 P9 d, O' I, p+ x( K$ t, r( D1 [+ S$ K* e
1.3      总结
+ q6 N5 ~; K" Y+ Y
本期教程是一些入门性质的介绍,有兴趣的可以查阅一下相关的资料进行深入的了解。
& U, [: P+ |3 e# h3 Q& x% ]. D5 H( `) b% l& }4 \% a9 b4 z4 I
参考资料:3 ]' y$ F* {+ R$ _" Y- C0 A+ ]
1.    百度百科
% R/ f; F) R2 U- X: w& E: b2.    Patterns fortime-triggered embedded systems英文版和中文版% _2 g8 ?# g5 x" X5 }7 ~3 J
3.    www.micrium.com
; ~: C: i# u" b1 ^4.    www.freertos.org
6 Z0 A/ I; Q$ D  y. j0 l' q: A" ?5.    2013嵌入式市场报告5 i- Q9 a4 r. p* e- z) q
6.    stm32-stm8_embedded_software_solutions
1 h: z% ]* x( x+ d8 S- _
- k3 R5 J! L: |+ `2 }& h
294479435@qq.co 回答时间:2015-4-7 18:05:52
学习了,感谢楼主!!!!!!!!!!!
stary666 回答时间:2015-4-28 17:04:19
牛。。。。。。。。。。。。。。。。。
wu1169668869 回答时间:2015-4-28 19:06:45
好像很厉害的样子 3.gif
wu1169668869 回答时间:2015-4-28 19:07:00
改天好好了解一下 8.gif
wyxy163@126.com 回答时间:2015-4-28 19:37:35
提示: 作者被禁止或删除 内容自动屏蔽
小七777 回答时间:2015-8-4 15:02:09
厉害。。。。。。。。。。。。。。。
一木320 回答时间:2015-9-10 14:34:51
标记                        
damiaa 回答时间:2015-9-10 15:01:02
) x4 I4 c2 {. a: O
谢谢分享
拉肚肚 回答时间:2015-9-10 17:33:48
谢谢分享
hawk123345 回答时间:2018-3-1 16:18:35
好,我过来鼓掌。
0830arthur 回答时间:2018-3-14 11:43:19
感谢楼主 ....
maoppblue 回答时间:2018-3-27 11:02:24
mark一下

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版