实操性最强:uCOS-II移植到STM32上的详细步骤;

实操性最强:uCOS-II移植到STM32上的详细步骤;

ID:42664229

大小:285.63 KB

页数:15页

时间:2019-09-19

实操性最强:uCOS-II移植到STM32上的详细步骤;_第1页
实操性最强:uCOS-II移植到STM32上的详细步骤;_第2页
实操性最强:uCOS-II移植到STM32上的详细步骤;_第3页
实操性最强:uCOS-II移植到STM32上的详细步骤;_第4页
实操性最强:uCOS-II移植到STM32上的详细步骤;_第5页
资源描述:

《实操性最强:uCOS-II移植到STM32上的详细步骤;》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、前言:说点废话,网上有很多关于uCOS-ii移植的文章,好多都是千篇一律,理论性很强,分析了一大堆虚头巴脑的东西,真想问他们,你确定你分析的这些东西是需要你做的工作吗?实操性严重欠缺。。。这方面我也走了很多弯路,下面就将自己的移植过程一步步的记录下来,也给大家做做参考。首先,简单总结一下移植的大概过程:(1)去uC/OS-ii官网下载你要移植芯片CPU的相关案例,不一定完全对应,那就找相应系列吧。(2)编程环境一般有两种,分别是IAR和MDK,这个根据你自己的编程环境进行下载。(3)本案例需要将uC/OS-II移植到STM32F103ZET6上,而我使用的编程环境

2、是MDK,很遗憾,官网上提供的案例是基于IAR的,所以要基于IAR的案例进行更改。(4)使用MDK创建一个无操作系统的最简单程序,确保这个程序能够使用,这样做的目的是为了一步步的排查错误,假如无操作系统时,都有错误,移植过程中也肯定会有编译错误,那么在排查错误的时候也就增加了难度,不会写物操作系统的简单程序怎么办。。。那就不要往下看了。(5)移植的最大的改动主要有两部分,一个是一些头文件的增减,另外一个就是向量表中PendSV_Handler和SysTick_Handler的修改。这里我要吐槽一下,网上说了一大堆关于什么OS_CPU.H的更改还有各种函数的的分析,

3、这都是扯淡。。。这些根本就不用移植者去修改,官网提供的案例都已经提供了,除非你选择移植的CPU是比较偏的,那么这些东西需要移植者自己去编写。好了,下面就开始详细的记录怎么去移植。一、创建一个无操作系统的简单裸板系统1.创建源文件工程文件夹,如下图所示:其中文件夹“CMSIS”为内核的接口,包含的文件如下图文件夹STM32_StdPeriph为固件驱动文件夹,这个把STM32的固件全都添加进去即可。文件夹User为其他文件,如下图所示:文件夹Output和List主要是放那些编译产生的乱七八糟的文件,为了使工程代码更加简洁。2.使用MDK创建无操作系统工程项目,这一

4、点就不一一说了,将创建后的工程项目文件树截图如下:这个时候还没有main文件,那么创建一个mian.c文档即可,这里需要注意,创建main.c后,要将其添加到项目中才行,而不是简单的保存。如下图所示:、注意:main.c中要有一个mian函数,否则编译器会报错提示你的。然后就是项目的配置,这个还是很重要的,下面分别说需要配置的地方:(1)Output选项如下:这里面勾选了CreateHEXFile选项,同时将项目输出放到了之前创建的Output文件夹。(1)List选项,将List产生的文件放入到之前创建的List文件夹中。(2)C/C++配置选项如下:其中Def

5、ine选项中,填入:USE_STDPERIPH_DRIVER,STM32F10X_HD,这是告诉编译器,使用标准外设,还有选择的CPU类型,其中CPU类型需要根据你选择移植的CPU进行适当的更改。IncludePaths是要包含的头文件路径,这个为了保险,将项目中的所有有.h的文件的文件夹都包含进去就可以了。4.Debug选项如下:,我使用的是Jlink进行烧写调试,所以选择了如图所示,还要进行settings,如下:这里要勾选“ResetandRun”,这样做的目的是,每当烧写下载后,CPU进行复位并运行。5.Utilities选项设置如下所示:至此,配置完毕,

6、编译一下,没有错误,创建一个简单的点亮LED程序,验证一下即可。备注说明:如果按照这个步骤操作,编译,如果出现一些简单的错误,比如没有main函数,没有发现某个头文件,那么按照提示解决即可,但是如果发现了很多怪怪的编译错误,比如说未定义u32,u8这些符号时,那就要注意一下了,有可能是MDK版本的问题,我在使用MDK低版本的时候,发现有问题,而使用高版本的时候就没问题了,所以需要注意一下。一、移植uC/OS-ii到STM32F10X上1.首先在官网上下载基于STM32的移植工程案例,里面的移植文档AN-1018中是作者写的移植文档,说的很详细,想要移植的话,多看看

7、这个文档。1.其中有张图,非常重要,其实就是告诉了移植者要做的工作,如下图所示:这个图表达了什么信息呢,其实就是告诉移植者需要将那些文件移植到你的工程当中,首先是uC/OS-ii的源文件,就是OS_CORE.C、OS_FLAG.C.....ucos_ii.H这些文件,其实是uC/OS-ii的Port文件,包括4个,分别是OS_CPU_C.C,OS_CPU_A.ASM,OS_CPU.H,OS_DBG.C,还有是用户应用程序里的包含文件,这个里面不能照搬,选择使用两个文件,分别为OS_CFG.H和INCLUDES.H,其他三个,可以自己编写,为什么不套用另外那三个呢,

8、主要是因为

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。