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

【经验分享】UCOS2_STM32F1移植详细过程(一)

[复制链接]
STMCU小助手 发布时间:2021-11-29 22:30
Ⅰ、概述# ~2 ^9 s5 H. z" O

, @# o# |! l* B" ^$ E8 Z该文写针对初学µC/OS的朋友,基于以下平台来一步一步移植µC/OS嵌入式操作系统。UCOS移植相关平台:) H1 p' b8 G8 E6 ~* u4 L
: i1 V& E5 t0 w& {0 K
系统平台:µC/OS-II  (最新V2.92版): P, A1 p& i" r8 u3 K7 h
) a4 ]# Z% z& J- Y" R# ^
硬件平台:STM32F1   (适合F1所以系列)
3 c6 ]6 J7 l9 S1 w5 f
; R5 P7 V+ l$ I" H& p开发平台:Keil(MDK-ARM) V5
0 m4 w$ }" O3 F: p+ V% q
1 G- P3 u4 }7 Y/ Y1.为什么是µC/OS-II?
( p3 b6 p+ p/ G* n$ A$ D! b1 \- ?4 ]
原因在于µC/OS-II是一个比较成熟、稳定的系统,与µC/OS-III比较有些机制相对简单很多。但你掌握了µC/OS-II,µC/OS-III很容易就理解了。% N$ A+ C0 F, p5 r! K
9 |3 K+ w/ n3 W# Y1 U2 e7 [
2.为什么是STM32F1?! H- p% s' }' C6 z2 ^- Y; I
/ `3 k3 n# ~: f' h
硬件平台是在移植的过程中比较重要的一点,也就是说,不同的硬件平台,移植过程中的端口(uCOS-II\Ports下源文件)存在一定的差异性。
, e- ^8 V4 p+ r! Z
: l0 x2 H0 q5 T3 I3 x但是同一内核的芯片,在系统移植的过程中基本上类似,也就是说,你掌握这一种内核(如:Cortex-M3),你移植相关的芯片就很容易了。$ w% Z/ r- k$ \- H1 [1 W

$ c! b; Z: ^" ~# w) q5 K% q* n还有就是,你掌握了移植的原理,不管在什么芯片上移植你都会觉得不是那么难,笔者在51、430、ST等众多芯片上移植过µC/OS,问题都不是很大,只要用心,相信都会没问题。
: O: n6 x6 `# c  f6 B
$ H# K$ x* ~  ~, B6 d9 ?$ P3.为什么是MDK-ARM V5?
0 Q8 n) l6 {7 U, ^6 o! i! j+ C$ T, A( o/ R# @; ~1 _
这里没什么好说的,个人爱好,喜欢使用最新的开发平台。其他平台(如:IAR)与系统软件关联性不是很大,你也可以试着用其他平台进行移植。/ m5 }2 ~2 s/ S* S3 X- a; a

- l" o( X  `: t2 z2 b4 TⅡ、关于µC/OS5 H* e8 y5 a! E! ^, O; E

2 e5 R# ]- y% U# P0 q/ x  uµC/OS-II是Micrium公司开发的一套嵌入式实时操作系统,应用非常广泛(工业、医疗、航天等)。µC/OS-II具有裁剪性(配置资源多少)和高度的移植性,所以很受嵌入式开发工程师的追捧。% v. u3 |) X9 g, {+ I5 |

9 P1 ^' v6 I3 j4 b2 e7 [* G* k! S/ XµC/OS总共有三大版本(μCOS、μCOS-II和μCOS-III),这三个版本也存在很多差异,该文主要针对初学者,因此围绕µC/OS-II来讲解。它们之间的差异对比可以参看相关文档(uCOS-III用户指导手册)。
. {( w8 e  K! [, ~6 f8 D9 x
. k' W! D7 P, l/ i5 ?
20160626091101687.png

  z; p: K5 k) }% o, x" _' l) l7 n/ y( Z: I' T" Y4 I, C
Ⅲ、准备工作
- ?, `' Q7 i# d  n/ e' q0 U% V& W  v
1.µC/OS软件工程包下载
% t8 Q6 N# B; i7 W2 k! ^/ YMicrium官网下载流程图:
2 G5 [/ r4 z" G- V2 Q9 H* M% [  `+ K5 P! T2 M9 R' [' B2 d% H2 g7 o3 B8 K
20160626091127515.gif
" }; n. ^/ K, a7 Z+ Z. P+ ~6 D

. O$ q' Z3 W, S( B* y: Y
8 {4 Q- L! T3 f2 ?4 [: k3 v8 x+ W2.ST标准外设库# R/ n% A, w6 ]% T0 Z2 F! q

% M# s$ h' W" cMicrium官网下载的软件是使用比较老的ST标准外设库,这里我们下载最新的外设库。
2 x7 z* J- f: l! h1 L2 |ST官网下载流程图:
6 N4 X% F  O! v( Q7 u$ }' V$ N4 }* l/ q
20160626091146781.gif

  Q2 m$ b! J! v. e+ l- J" v9 i2 g9 r" S  W1 \

1 }2 K5 O- ]" o8 j1 _3.MDK-ARM下载与安装
0 u+ a  q# z' @) O
9 Q$ F; Q, p  A) E1 B' rⅣ、移植过程(文件描述与提取)
9 t; V2 o8 u" t: k; j0 k! {/ \$ Q! \+ [/ r4 \0 c% A! x0 N/ m) _1 E
1.软件工程文件夹描述
/ \2 ^1 ~/ m( M$ o/ P: V  K/ e0 B* o# z0 x% V0 r2 e- o4 e
从Micrium官网下载的软件工程包解压之后会发现里面有许多源程序文件,其实对于初学者来说,里面有很多文件都不会使用的。这里我们以下载的软件包“Micrium_uC-Eval-STM32F107_uCOS-II.zip”解压来说明一下里面的文件。
9 |" }: B& _! o# M7 R
4 K+ P  f2 c( G
20160626091235889.png
- e+ @+ c% b% i, I7 {- e
EvalBoards:评估(开发)板相关文件;主要是配置底层和系统,我们会提取部分有效文件。  r6 [$ m& _3 H
; c! e2 I( I3 e+ `# ^. t* H5 H& W
uC-CPU:CPU相关文件;我们使用ST标准外设库配置一些模块,不使用该文件夹下文件。
% p/ p6 Z# }& n  `% \2 o5 a0 F! G! K2 U. h3 I. a9 |) w! Q; D
uC-LIB:这个是Micrium官方的库,初学者这里也不使用。  V. i. W9 w9 B$ o* [$ O: \+ y

+ }" j$ c  H0 ]" _uCOS-II:这个文件夹才是关键,我们移植的内容基本上就是这里的文件。
7 j  T- G+ f5 K* W
/ ~/ h6 H, F  k, j, c/ w3 {2.提取工程中有用的文件
, N# d* N4 s6 v' X- g/ \% h" D; H9 ?5 W6 E* g7 K% b
我们主要提取EvalBoards和uCOS-II下文件。
8 K) ?0 i' k2 e: l9 d( X  |2 d. C3 f2 f7 S' s
20160626091245156.png

, G2 V4 ]! X6 aapp_cfg.h是应用配置的文件(如:任务优先级、堆栈大小等)。8 ?, X4 r- `: _) x( k

8 B5 A0 h  C3 o# t: U, ~os_cfg.h是系统配置的文件(使能相应功能函数,也就是所谓的裁剪系统)。- p, r+ W' k3 Q$ I& \  Q

' M" Y! N. x5 a# J将这两个文件提取至我们自己新建工程app文件夹下。) g$ c  b) v. W
3 Z# w6 I7 M0 a$ m& H; h4 w
20160626091256735.png

' H5 r) G6 T2 v8 F& j& m- h1 }Ports是与系统息息相关的端口配置文件。' _+ Z  S* O- Y+ s6 {" Z
0 q, g6 F* A, x$ I
Source这个不用说了,就是OS全部文件。
$ v2 w. K/ o3 h0 v5 l. y7 g
/ i' ~' m* d- k4 `- v3 j拷贝整个uCOS-II文件夹(里面)到我们工程。* L, e* S( G: ]) J  x& }

, f  t3 f; V+ W+ q3 G, z  e3.提取ST标准外设库有用的文件( X; \* j: X) I1 A+ v
; q( t5 |# ?2 o2 }& B
Micrium官网下载的软件工程包也是使用标准外设库建立的工程,但那是老版本的标准外设库,因此,我们需要使用ST官网最新的标准外设库。# o2 I0 `; k& M! P4 a& o
+ l$ q8 I! {# j3 R2 w% I* i
提取的文件过程我不在描述,最后我会提供下载链接供大家下载。6 O, b7 C9 a! T0 f3 F

5 ]2 U" R. ?) S/ l; g5 T- H' J
20160626091356469.png
7 @* A7 G3 `; v# t" _* }6 \+ H
4.整合提取的文件
1 {- t" d  y& Y& P2 D0 z3 j* F0 t1 C/ T/ ~' B6 H# t
Micrium官网下载的文件 + ST下载标准外设库 + 提取整合7 @! D/ v) R, y& a1 p! E
' k3 {0 A- y$ w0 S5 g4 t
= UCOS2_STM32F1_ProjectTemplate(提取文件),如下图:. T* ~, S& C5 {4 U6 M2 h6 s& [

0 p% [5 U! W; ~6 v; E$ ?2 I) Z9 P2 X3 L2 u# `4 {
Ⅴ、移植过程(新建工程及文件)
: h5 w5 p* Y1 [1 t
9 h" G( M4 w" z5 v+ R6 M1 i1.新建工程
2 }+ M2 [& R5 \+ H* a  u$ Y, |' O6 g
8 v; _6 O4 o- x9 ?! V$ l配置的时候需要将uCOS-II下的文件添加到工程,同时也需要将他们的路径配置好。
! S- m- L2 i. E' O
2 ?! k  y9 ?" [- M, x; }; c如下动画:
3 U) Q) e- o# I) y2 C
. L4 P( D( s) y9 u+ a- h/ p2.新建、修改文件
  }0 R) Z4 u: t9 t
; s, P8 m$ H9 x工程建好之后,还需要新建一些文件(main.c、 bsp.c、 bsp.h、 app_cfg.c、 app_task.c、 app_task.h等)。同时,还需要修改某些文件,修改的这些文件是移植过程的重点,我将在下一篇文章进行总结。6 {: O( I8 g6 h) X0 b6 s

3 ~& E. s; ]* ^- e! o我将新建好的工程和源代码整理打包供大家下载(注意:没有修改源代码,暂时编译通不过)。
; u+ v8 U% d, l
  t8 ~) v5 l  m1 G  U360云盘下载(新建工程、文件):
! o& E3 U7 e( M9 e( r# V) K! O; ]6 B, `1 }- _( p
https://yunpan.cn/cRpHh6CTYQavV  访问密码 cc34
, [) p% e5 \( a8 m( P' C9 J, J4 {8 ]. `# j- |# l9 y$ Q; O
Ⅵ、说明1 n' ]/ z1 d' `* d7 @+ E

& Q1 i" F5 Y1 A/ r& I当你掌握UCOS在一种平台上的移植,其他平台移植原理类似,请不要局限某一平台。/ {+ G( W" \. k4 b, x- `
: s' [! Y' x1 ?& q

* d% V0 {( e, s' e2 a/ V- G# d) s0 l. ?5 ], Q; R
20160626091419641.gif
收藏 评论0 发布时间:2021-11-29 22:30

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版