STMCU小助手
发布时间:2021-11-29 22:30
|
Ⅰ、概述' @! J' o* p! Z & F+ [3 z" }* h/ g6 i+ B# w6 E& i1 Z 该文写针对初学µC/OS的朋友,基于以下平台来一步一步移植µC/OS嵌入式操作系统。UCOS移植相关平台:# A) g% S$ c( [$ N% H. q 系统平台:µC/OS-II (最新V2.92版)# C( ~. u x0 v3 Z7 o! \ 硬件平台:STM32F1 (适合F1所以系列) / P6 l) z) ^$ ?. t! w 开发平台:Keil(MDK-ARM) V5 7 s+ o% F* k8 W, w' }; E0 _& { 1.为什么是µC/OS-II? 原因在于µC/OS-II是一个比较成熟、稳定的系统,与µC/OS-III比较有些机制相对简单很多。但你掌握了µC/OS-II,µC/OS-III很容易就理解了。 0 h9 Q- N# m7 @: r0 `: L: K 2.为什么是STM32F1?2 m! f9 f* A' ^/ Z6 A" i7 S; f 7 T! F2 t, ~" G2 O 硬件平台是在移植的过程中比较重要的一点,也就是说,不同的硬件平台,移植过程中的端口(uCOS-II\Ports下源文件)存在一定的差异性。 但是同一内核的芯片,在系统移植的过程中基本上类似,也就是说,你掌握这一种内核(如:Cortex-M3),你移植相关的芯片就很容易了。' d% r0 n) F' o 3 h* ]) S& h9 ?; `0 r8 } 还有就是,你掌握了移植的原理,不管在什么芯片上移植你都会觉得不是那么难,笔者在51、430、ST等众多芯片上移植过µC/OS,问题都不是很大,只要用心,相信都会没问题。 + y: ?3 N4 y+ r; w 3.为什么是MDK-ARM V5?/ G. ^' p) ?! P9 T( ` 这里没什么好说的,个人爱好,喜欢使用最新的开发平台。其他平台(如:IAR)与系统软件关联性不是很大,你也可以试着用其他平台进行移植。( z# w$ X+ P8 z! S Ⅱ、关于µC/OS' k$ s4 }+ M2 A* I$ E 2 ?2 T: j& E+ ? ?; g' w0 o µC/OS-II是Micrium公司开发的一套嵌入式实时操作系统,应用非常广泛(工业、医疗、航天等)。µC/OS-II具有裁剪性(配置资源多少)和高度的移植性,所以很受嵌入式开发工程师的追捧。% ]# {: |6 R; m1 o- U5 [/ z6 P 0 j; g" V2 k( }0 z9 b µC/OS总共有三大版本(μCOS、μCOS-II和μCOS-III),这三个版本也存在很多差异,该文主要针对初学者,因此围绕µC/OS-II来讲解。它们之间的差异对比可以参看相关文档(uCOS-III用户指导手册)。
Ⅲ、准备工作 8 |6 L& J( Q5 D' ] 1.µC/OS软件工程包下载+ U) o- b2 A. J# E) C0 o% ] Micrium官网下载流程图:
2.ST标准外设库 Micrium官网下载的软件是使用比较老的ST标准外设库,这里我们下载最新的外设库。 ST官网下载流程图:& U b: P+ f. Y% d) F9 r , i8 T; s8 U, b6 X* r
$ E }% R/ g% K1 D, `, Z/ S* h 3.MDK-ARM下载与安装' e+ I' c! F) L4 a# f! A6 i9 M Ⅳ、移植过程(文件描述与提取): B- ?" S5 K0 g5 }) q0 h3 r8 L 1.软件工程文件夹描述 从Micrium官网下载的软件工程包解压之后会发现里面有许多源程序文件,其实对于初学者来说,里面有很多文件都不会使用的。这里我们以下载的软件包“Micrium_uC-Eval-STM32F107_uCOS-II.zip”解压来说明一下里面的文件。
EvalBoards:评估(开发)板相关文件;主要是配置底层和系统,我们会提取部分有效文件。 * d/ }, ]" x2 O& \( z# E3 K a. y' A Z uC-CPU:CPU相关文件;我们使用ST标准外设库配置一些模块,不使用该文件夹下文件。3 n' \, k: a5 u0 q ; Y% w* Z6 U% e uC-LIB:这个是Micrium官方的库,初学者这里也不使用。& J9 \9 Z2 p' t, ?( s1 Z uCOS-II:这个文件夹才是关键,我们移植的内容基本上就是这里的文件。0 ^" M C |, @0 Y8 N, W , |' N+ P0 H9 W+ f I6 D5 B5 } 2.提取工程中有用的文件5 x4 p. Q$ S! }8 o k# ~ 0 Y, l1 @9 Q0 X2 d5 v 我们主要提取EvalBoards和uCOS-II下文件。& W8 c, j' F9 f2 ` " v9 F- W( b4 ~" Z( K9 Q
app_cfg.h是应用配置的文件(如:任务优先级、堆栈大小等)。5 b7 r+ J4 E: r/ |5 U' f9 C" h os_cfg.h是系统配置的文件(使能相应功能函数,也就是所谓的裁剪系统)。 0 j0 F) |* w# J( n; `7 N 将这两个文件提取至我们自己新建工程app文件夹下。 9 ]% W" _5 `/ G6 J
Ports是与系统息息相关的端口配置文件。 " D# h# p+ W9 N9 v( m Source这个不用说了,就是OS全部文件。 拷贝整个uCOS-II文件夹(里面)到我们工程。8 M) m8 r! J: u$ g% v 3.提取ST标准外设库有用的文件) {& u% _4 Q G Micrium官网下载的软件工程包也是使用标准外设库建立的工程,但那是老版本的标准外设库,因此,我们需要使用ST官网最新的标准外设库。/ I+ P( f: r) |9 \2 P , _) C2 ]- z6 \% g 提取的文件过程我不在描述,最后我会提供下载链接供大家下载。/ M) H3 D! f5 ~$ | # Z& \5 i" Q) J& _ a: M( J# J
4.整合提取的文件1 ^5 t. H5 q8 e( X9 Y3 m0 S Micrium官网下载的文件 + ST下载标准外设库 + 提取整合 = UCOS2_STM32F1_ProjectTemplate(提取文件),如下图:4 D4 r+ D- Q3 z: t) g3 W ) g2 T( [0 T+ v6 L/ z5 E# L- v Ⅴ、移植过程(新建工程及文件) 5 R$ X- s4 V, O- \5 n# d" R 1.新建工程) v f0 f' Q2 y/ X/ v6 H ) D8 N4 j" \6 l8 T6 ^ 配置的时候需要将uCOS-II下的文件添加到工程,同时也需要将他们的路径配置好。 如下动画: N0 L7 f! |6 r* U' G 2.新建、修改文件$ \ N$ O0 J2 J( ?( K- t - ^6 O: V6 O/ h" ?3 Y1 ~2 F5 I 工程建好之后,还需要新建一些文件(main.c、 bsp.c、 bsp.h、 app_cfg.c、 app_task.c、 app_task.h等)。同时,还需要修改某些文件,修改的这些文件是移植过程的重点,我将在下一篇文章进行总结。 9 R6 p( g4 v6 a; v 我将新建好的工程和源代码整理打包供大家下载(注意:没有修改源代码,暂时编译通不过)。" @+ y s( P7 C- [: |4 } " s, L. R1 r. ?+ U$ g3 o3 t 360云盘下载(新建工程、文件): https://yunpan.cn/cRpHh6CTYQavV 访问密码 cc34 Ⅵ、说明 % r4 L; _: _1 W3 |; v0 D 当你掌握UCOS在一种平台上的移植,其他平台移植原理类似,请不要局限某一平台。% e/ `9 R/ D# G. ]4 ?; Z) Y 3 s8 w; ^, N; t% ?9 t$ C - A8 ]' ~, s+ Y9 Y" `( N) J |
DMA 原理从 0 到 1:为什么它能解放 CPU?一文讲透 DMA 的工作流程
【福利三:雨露均沾·逢7狂欢】之五:STM32系统时钟PLL故障排除1例
【福利三:雨露均沾·逢7狂欢】之三:AI帮我查BUG
福利三:雨露均沾·逢7狂欢】之二:STM32F407VG串口通信乱码故障的排除
基于STM32F103的I2C主从机通信
OpenBLT移植到STM32F103战舰开发板上适用于所有STM32F103系列的Bootloader
TFT LCD 与 FSMC 的硬件连接大容量 STM32F10xxx FSMC 接口
单片机:初学者该了解的STM32F103基础知识
2025软件工具兔哥知道
STM32之继电器模块
微信公众号
手机版