打印
[STM32F1]

UCOS II 移植到STM32F1系列

[复制链接]
2252|30
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ucos II 是RTOS(实时操作系统) 能够管理多个任务的协调,相比Linux操作系统,它内核代码较小,适合很多核的移植,移植操作系统对于多项任务并发执行,解决多项任务的协调工作。
沙发
hanzhen654|  楼主 | 2018-6-12 21:24 | 只看该作者
本文写针对初学操作系统的朋友,基于以下平台来一步一步移植µC/OS嵌入式操作系统。UCOS移植相关平台:

系统平台:µC/OS-II  (V2.92版)

硬件平台:STM32F1   (适合STM32F1所以系列)

开发平台:Keil(MDK-ARM) V5

使用特权

评论回复
板凳
hanzhen654|  楼主 | 2018-6-12 21:27 | 只看该作者
1.为什么选择µC/OS-II?

由于µC/OS-II是一个比较成熟、稳定的系统,与µC/OS-III比较有些机制相对简单很多。但你掌握了µC/OS-II,µC/OS-III很容易就理解了,更重要的是UCOSII 资料比较多。

使用特权

评论回复
地板
hanzhen654|  楼主 | 2018-6-12 21:27 | 只看该作者
本帖最后由 hanzhen654 于 2018-6-12 21:32 编辑

2.为什么选择STM32F1系列的单片机?

硬件平台是在移植的过程中比较重要,不同的硬件平台,移植过程中的配置文件(uCOS-II\Ports下源文件)存在一定的差异性。但是同一内核的芯片,在系统移植的过程中基本上类似,你掌握一种内核(例如:Cortex-M3),移植相关的芯片就很容易了。还有就是,你掌握了移植的原理,不管在什么芯片上移植你都会觉得不是那么难,本人在51单片机、MSP430、STM32等众多芯片上移植过µC/OS,问题都不是很大,只要用心,相信都会没问题。

使用特权

评论回复
5
hanzhen654|  楼主 | 2018-6-12 21:33 | 只看该作者
3.为什么选择 MDK-ARM V5作为开发平台?

一句话,学习STM32开始大家用的都是这个,个人爱好,喜欢使用最新的开发平台。其他平台(如:IAR)与系统软件关联性不是很大,你也可以试着用其他平台进行移植。

使用特权

评论回复
6
hanzhen654|  楼主 | 2018-6-12 21:34 | 只看该作者
µC/OS简介

µC/OS-II是Micrium公司开发的一套嵌入式实时操作系统,应用非常广泛(工业、医疗、航天等)。µC/OS-II具有裁剪性(配置资源多少)和高度的移植性,所以很受嵌入式开发工程师的追捧。

使用特权

评论回复
7
hanzhen654|  楼主 | 2018-6-12 21:35 | 只看该作者
µC/OS总共有三大版本(μCOS、μCOS-II和μCOS-III),这三个版本也存在很多差异,该文主要针对初学者,因此围绕µC/OS-II来讲解。

使用特权

评论回复
8
hanzhen654|  楼主 | 2018-6-12 21:37 | 只看该作者
本帖最后由 hanzhen654 于 2018-6-12 21:38 编辑

下面开始进行移植ucos的准备工作
1.µC/OS软件工程包下载
µC/OS-II可以在Micrium官网下载(需要注册个人账号,比较麻烦)。
Micrium官网下载地址
https://www.micrium.com/download/micrium_stm32f107_ucos-ii


使用特权

评论回复
9
hanzhen654|  楼主 | 2018-6-12 21:39 | 只看该作者
Micrium官网下载UCOS流程




使用特权

评论回复
10
hanzhen654|  楼主 | 2018-6-12 21:40 | 只看该作者
ST标准外设库 Micrium官网下载的软件是使用比较老的ST标准外设库,这里我们下载最新的外设库。
ST官网下载地址(需要注册账号):
下载地址:
http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software.html?querycriteria=productId=SC961

使用特权

评论回复
11
hanzhen654|  楼主 | 2018-6-12 21:42 | 只看该作者
ST官网最新的外设库下载流程示意图

使用特权

评论回复
12
hanzhen654|  楼主 | 2018-6-12 21:44 | 只看该作者
从Micrium官网下载的软件工程包解压之后会发现里面有许多源程序文件,其实对于初学者来说,里面有很多文件都不会使用的。这里我们以下载的软件包“Micrium_uC-Eval-STM32F107_uCOS-II.zip”解压来说明一下里面的文件。

使用特权

评论回复
13
hanzhen654|  楼主 | 2018-6-12 21:44 | 只看该作者
EvalBoards:评估(开发)板相关文件;主要是配置底层和系统,我们会提取部分有效文件。

使用特权

评论回复
14
hanzhen654|  楼主 | 2018-6-12 21:44 | 只看该作者
uC-CPU:CPU相关文件;我们使用ST标准外设库配置一些模块,不使用该文件夹下文件。

使用特权

评论回复
15
hanzhen654|  楼主 | 2018-6-12 21:52 | 只看该作者
uC-LIB:这个是Micrium官方的库,初学者这里也不使用。

使用特权

评论回复
16
hanzhen654|  楼主 | 2018-6-12 21:53 | 只看该作者
uCOS-II:这个文件夹才是关键,我们移植的内容基本上就是这里的文件。

使用特权

评论回复
17
hanzhen654|  楼主 | 2018-6-12 22:05 | 只看该作者
我们主要提取EvalBoards和uCOS-II下文件。


使用特权

评论回复
18
hanzhen654|  楼主 | 2018-6-12 22:06 | 只看该作者
app_cfg.h是应用配置的文件(如:任务优先级、堆栈大小等)。

使用特权

评论回复
19
hanzhen654|  楼主 | 2018-6-12 22:07 | 只看该作者
os_cfg.h是系统配置的文件(使能相应功能函数,也就是所谓的裁剪系统)。

使用特权

评论回复
20
hanzhen654|  楼主 | 2018-6-12 22:08 | 只看该作者
将这两个文件提取至我们自己新建工程app文件夹下。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

73

主题

1766

帖子

2

粉丝