您的位置 首页 编程

uCOS-II在STM32上的移植过程

前言:说点废话,网上有很多关于uCOS-ii移植的文章,好多都是千篇一律,理论性很强,分析了一大堆虚头巴脑的东西,真想问他们,你确定你分

前语:
说点废话,网上有许多关于uCOS-ii移植的文章,许多都是千人一面,理论性很强,剖析了一大堆虚头巴脑的东西,真想问他们,你确认你剖析的这些东西是需求你做的作业吗?实操性严峻短缺。。。这方面我也走了许多弯路,下面就将自己的移植进程一步步的记载下来,也给我们做做参阅。
首要,简略总结一下移植的大约进程:
(1) 去uC/OS-ii官网下载你要移植芯片CPU的相关事例,不一定彻底对应,那就找相应系列吧。
(2) 编程环境一般有两种,分别是IAR和MDK,这个依据你自己的编程环境进行下载。
(3) 本事例需求将uC/OS-II 移植到STM32F103ZET6上,而我运用的编程环境是MDK,很惋惜,官网上供给的事例是依据IAR的,所以要依据IAR的事例进行更改。
(4) 运用MDK创立一个无操作体系的最简略程序,保证这个程序可以运用,这样做的意图是为了一步步的排查过错,假如无操作体系时,都有过错,移植进程中也必定会有编译过错,那么在排查过错的时分也就增加了难度,不会写物操作体系的简略程序怎样办。。。那就不要往下看了。
(5) 移植的最大的改动主要有两部分,一个是一些头文件的增减,别的一个便是向量表中PendSV_Handler和SysTick_Handler的修正。这儿我要吐槽一下,网上说了一大堆关于什么OS_CPU.H的更改还有各种函数的的剖析,这都是扯淡。。。这些底子就不必移植者去修正,官网供给的事例都现已供给了,除非你挑选移植的CPU是比较偏的,那么这些东西需求移植者自己去编写。
好了,下面就开端具体的记载怎样去移植。
一、 创立一个无操作体系的简略裸板体系
1. 创立源文件工程文件夹,如下图所示:

其间文件夹“CMSIS”为内核的接口,包括的文件如下图

文件夹STM32_StdPeriph为固件驱动文件夹,这个把STM32的固件全都增加进去即可。
文件夹User为其他文件,如下图所示:

文件夹Output和List主要是放那些编译发生的杂乱无章的文件,为了使工程代码愈加简练。
2.运用MDK创立无操作体系工程项目,这一点就不逐个说了,将创立后的工程项目文件树截图如下:

这个时分还没有main文件,那么创立一个mian.c文档即可,这儿需求留意,创立main.c后,要将其增加到项目中才行,而不是简略的保存。如下图所示:、

留意:main.c中要有一个mian函数,不然编译器会报错提示你的。然后便是项意图装备,这个仍是很重要的,下面分甭说需求装备的当地:
(1)Output选项如下:

这儿面勾选了Create HEX File选项,一起将项目输出放到了之前创立的Output文件夹。
(2)List选项,将List发生的文件放入到之前创立的List文件夹中。
(3)C/C++装备选项如下:

其间Define选项中,填入:USE_STDPERIPH_DRIVER,STM32F10X_HD,这是告知编译器,运用规范外设,还有挑选的CPU类型,其间CPU类型需求依据你挑选移植的CPU进行恰当的更改。Include Paths是要包括的头文件途径,这个为了稳妥,将项目中的一切有.h的文件的文件夹都包括进去就可以了。
4.Debug选项如下:

,我运用的是Jlink进行烧写调试,所以挑选了如图所示,还要进行settings,如下:

这儿要勾选“Reset and Run”,这样做的意图是,每逢烧写下载后,CPU进行复位并运转。
5.Utilities选项设置如下所示:

至此,装备结束,编译一下,没有过错,创立一个简略的点亮LED程序,验证一下即可。
补白阐明:假如依照这个过程操作,编译,假如呈现一些简略的过错,比方没有main函数,没有发现某个头文件,那么依照提示处理即可,可是假如发现了许多怪怪的编译过错,比方说未定义u32,u8这些符号时,那就要留意一下了,有可能是MDK版别的问题,我在运用MDK低版别的时分,发现有问题,而运用高版别的时分就没问题了,所以需求留意一下。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/biancheng/319645.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部