UCOS2_STM32F1移植详细过程(一)

Ⅰ、概述

该文写针对初学µC/OS的朋友,基于以下平台来一步一步移植µC/OS嵌入式操作系统。UCOS移植相关平台:

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

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

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

1.为什么是µC/OS-II?

原因在于µC/OS-II是一个比较成熟、稳定的系统,与µC/OS-III比较有些机制相对简单很多。当你掌握了µC/OS-II,µC/OS-III很容易就理解了。

2.为什么是STM32F1?

硬件平台是在移植的过程中比较重要的一点,也就是说,不同的硬件平台,移植过程中的端口(uCOS-II\Ports下源文件)存在一定的差异性。

但是同一内核的芯片,在系统移植的过程中基本上类似,也就是说,你掌握这一种内核(如:Cortex-M3),你移植相关的芯片就很容易了。

还有就是,你掌握了移植的原理,不管在什么芯片上移植你都会觉得不是那么难,笔者在51、430、ST等众多芯片上移植过µC/OS,问题都不是很大,只要用心,相信都会没问题。

3.为什么是MDK-ARM V5?

这里没什么好说的,个人爱好,喜欢使用最新的开发平台。其他平台(如:IAR)与系统软件关联性不是很大,你也可以试着用其他平台进行移植。

笔者将“UCOS移植详细过程”分为多篇文章来讲述,敬请关注。

关于本文的详情请往下看(微信请点击“阅读原文”查看内容链接内容)。

本着免费分享的原则,方便大家手机学习知识,定期在微信平台分享技术知识。如果你觉得分享的内容对你有用,又想了解更多相关的文章,请用微信搜索“EmbeddDeveloper” 或者扫描下面二维码、关注,将有更多精彩内容等着你。

Ⅱ、关于µC/OS

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

µC/OS总共有三大版本(μCOS、μCOS-II和μCOS-III),这三个版本也存在很多差异,该文主要针对初学者,因此围绕µC/OS-II来讲解。它们之间的差异对比可以参看相关文档(uCOS-III用户指导手册)。

https://yunpan.cn/cRU7gefa6gcma  访问密码 8c7d

Ⅲ、准备工作

1.µC/OS软件工程包下载

µC/OS-II可以在Micrium官网下载(需要账号),也可以到我360云盘下载。

Micrium官网下载地址(需要账号):

https://www.micrium.com/download/micrium_stm32f107_ucos-ii

我360云盘下载地址(定期更新):

https://yunpan.cn/cRzcf8eSacEhE  访问密码 1235

Micrium官网下载流程图:

2.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

我360云盘下载地址(定期更新):

https://yunpan.cn/cSaCpGejMSfr8  访问密码 60ae

ST官网下载流程图:

3.MDK-ARM下载与安装

该环节我在我的其他文章中已经详细讲述过,请参考我的另外一篇文章:

http://blog.csdn.net/ybhuangfugui/article/details/51647893

Keil官网下载地址(需要账号):

https://www.keil.com/demo/eval/arm.htm

我360云盘下载地址(定期更新):

https://yunpan.cn/cPYaeY23RSsbb  访问密码 9aba

Ⅳ、移植过程(文件描述与提取)

1.软件工程文件夹描述

从Micrium官网下载的软件工程包解压之后会发现里面有许多源程序文件,其实对于初学者来说,里面有很多文件都不会使用的。这里我们以下载的软件包“Micrium_uC-Eval-STM32F107_uCOS-II.zip”解压来说明一下里面的文件。

EvalBoards:评估(开发)板相关文件;主要是配置底层和系统,我们会提取部分有效文件。

uC-CPU:CPU相关文件;我们使用ST标准外设库配置一些模块,不使用该文件夹下文件。

uC-LIB:这个是Micrium官方的库,初学者这里也不使用。

uCOS-II:这个文件夹才是关键,我们移植的内容基本上就是这里的文件。

2.提取工程中有用的文件

我们主要提取EvalBoardsuCOS-II下文件。

app_cfg.h是应用配置的文件(如:任务优先级、堆栈大小等)。

os_cfg.h是系统配置的文件(使能相应功能函数,也就是所谓的裁剪系统)。

将这两个文件提取至我们自己新建工程app文件夹下。

Ports是与系统息息相关的端口配置文件。

Source这个不用说了,就是OS全部文件。

拷贝整个uCOS-II文件夹(里面)到我们工程。

3.提取ST标准外设库有用的文件

Micrium官网下载的软件工程包也是使用标准外设库建立的工程,但那是老版本的标准外设库,因此,我们需要使用ST官网最新的标准外设库。

提取的文件过程我不在描述,最后我会提供下载链接供大家下载。

4.整合提取的文件

Micrium官网下载的文件 + ST下载标准外设库 + 提取整合

= UCOS2_STM32F1_ProjectTemplate(提取文件),如下图:

可以在我360云盘下载整合提取的文件:

https://yunpan.cn/cRz7TxwWex9Wc  访问密码 70f4

Ⅴ、移植过程(新建工程及文件)

1.新建工程

新建Keil软件工程及其工程的配置这里就不在多说,可以参考我的另外一篇文章:

http://blog.csdn.net/ybhuangfugui/article/details/51510482

配置的时候需要将uCOS-II下的文件添加到工程,同时也需要将他们的路径配置好。

如下动画:

2.新建、修改文件

工程建好之后,还需要新建一些文件(main.c、 bsp.c、 bsp.h、 app_cfg.c、 app_task.c、 app_task.h等)。同时,还需要修改某些文件,修改的这些文件是移植过程的重点,我将在下一篇文章进行总结

我将新建好的工程和源代码整理打包供大家下载(注意:没有修改源代码,暂时编译通不过)。

360云盘下载(新建工程、文件):

https://yunpan.cn/cRpHh6CTYQavV  访问密码 cc34

Ⅵ、说明

当你掌握UCOS在一种平台上的移植,其他平台移植原理类似,请不要局限某一平台。

以上总结仅供参考,若有不对之处,敬请谅解。

Ⅶ、最后

关注微信,回复“更多内容”,将获得更多内容(如:UCOS实例等,不断更新中......)。

如果你喜欢我分享的内容,你又想了解更多相关内容,请关注文章开头的微信公众号,新内容持续更新中,后期将会有更多精彩内容出现。

时间: 2025-01-20 06:03:09

UCOS2_STM32F1移植详细过程(一)的相关文章

UCOS2_STM32F1移植详细过程

源:UCOS2_STM32F1移植详细过程(三) UCOS2_STM32移植过程.系统内核.事件描述(汇总)

UCOS2_STM32F1移植详细过程(二)

Ⅰ.概述 打开上一篇文章新建的工程,是提取的ST标准库里面源代码文件和UCOS工程包源代码文件.下载过的朋友可能会知道,直接编译那个工程会有大片的错误和警告,原因在于那个工程是没有经过修改源代码的工程,接下来就是讲述一步一步修改源代码的过程(也就是所谓的移植过程). 该文接着上一篇文章来讲述“UCOS移植详细过程”,上一篇文章是讲述准备工作.文件提取并整理.新建UCOS工程等工作.该文讲述UCOS移植过程中修改源代码(底层代码.系统配置等)工作. 笔者将“UCOS移植详细过程”分为多篇文章来讲述

UCOS2_STM32F1移植详细过程(三)

Ⅰ.概述 上一篇文章是讲述ST芯片相关的配置和OS裁剪相关的配置,接着上一篇文章来讲述关于UCOS的移植,该文主要针对uC/OS-II Ports下面os_cpu_a.asm.os_cpu_c.c和os_cpu.h文件底层端口代码来讲述. 请下载“UCOS2_STM32F1_3个简单任务”作为参考工程. 笔者将“UCOS移植详细过程”分为多篇文章来讲述,敬请关注. 关于本文的详情请往下看(微信请点击“阅读原文”查看内容链接内容). 本着免费分享的原则,方便大家手机学习知识,定期在微信平台分享技术

UCOS2_STM32移植详细过程(汇总)

Ⅰ.概述 笔者发现一个问题,很多初学者,甚至很多工作一两年的人,他们有一种依赖的思想,就是希望从别处获取的软件代码不做任何修改,直接可以运行或者使用.笔者想说,实践才是检验真理的关键,实践才是掌握知识的方法. 笔者最近整理的关于最新UCOS2(V2.92)移植在STM32开发平台上,针对初学者将STM32F0.F1.F3.F4几个硬件平台的移植工作都做好了,只需要适当修改一下你硬件型号就可以运行UCOS操作系统程序了. Ⅱ.UCOS移植文章 下面这四篇文章主要是针对初学者,将源代码下载.工程整理

STM32F0xx_EXIT中断配置详细过程

Ⅰ.概述 EXIT外部中断在使用到按键或者开关控制等应用中比较常见,低功耗中断唤醒也是很常见的一种.因此,EXIT在实际项目开发中也是比较常见的一种. STM32F0中外部中断EXIT属于中断和事件的章节,请看参考手册第十二章,但需要配合系统配置控制器(System configuration controller)进行操作,为中断分配引脚,详情请看参考手册第十章. 本着免费分享的原则,方便大家手机学习知识,每天在微信分享技术知识.如果你觉得分享的内容对你有用,又想了解更多相关的文章,请用微信搜

Linux下WebSphereV8.5.5.0 安装详细过程

Linux下WebSphereV8.5.5.0 安装详细过程 自WAS8以后安装包不再区别OS,一份介质可以安装到多个平台.只针对Installation Manager 进行了操作系统的区分 ,Websphere产品介质必须通过专门的工具Install Managere安装.进入IBM的官网http://www.ibm.com/us/en/进行下载.在云盘http://yun.baidu.com/share/linkshareid=2515770728&uk=4252782771 中是Linu

网站渗透测试原理及详细过程

网站渗透测试原理及详细过程 渗透测试(Penetration Testing)目录 零.前言一.简介二.制定实施方案三.具体操作过程四.生成报告五.测试过程中的风险及规避参考资料FAQ集 零.前言 渗透测试在未得到被测试方授权之前依据某些地区法律规定是违法行为. 这里我们提供的所有渗透测试方法均为(假设为)合法的评估服务,也就是通常所说的道德黑客行为(Ethical hacking),因此我们这里的所有读者应当都是Ethical Hackers,如果您还不是,那么我希望您到过这里后会成为他们中的

STM32F0xx_TIM输出PWM配置详细过程

前言 前面我说过STM32的定时器功能很强大,今天就来总结一下它的另外一个“强大”功能:TIM的比较输出功能,输出可调PWM波形.直接调用函数接口“TIM2_CH1_PWM(uint32_t Freq, uint16_t Dutycycle)”传入频率和占空比就能输出指定的波形. 我提供的软件工程直接调用是比较简单就能实现想要的PWM波形.但是,如果你是学习者,建议还是进去函数把每一个细节了解清楚,里面的东西可能对你掌握TIM很有帮助. 本着免费分享的原则,如果你觉得分享的内容对你有用,认可我分

STM32F0xx_TIM输入捕获(计算频率)配置详细过程

前言 关于STM32的定时器,可谓是功能强大,估计没有多少人研究完STM32定时器的所有功能(包括我也没有),只是使用常用的一些功能,后续我会推出关于STM32定时器的更多功能. STM32芯片多数为16位计数,但基本上都有1个或两个32位的定时器,可惜的是我们最常使用的F1系列芯片中没有32位的定时器,F030中也没有,具体请看数据手册. 今天主要总结关于STM32F0系列输入捕获,捕获信号频率,即所谓逻辑分析仪检测数字频率的功能. 今天使用32位的TIM2作为捕获的定时器,为什么是32位,原