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

   前言:

  说点废话,网上有很多关于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. 创建源文件工程文件夹,如下图所示:

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

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

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

  文件夹STM32_StdPeriph为固件驱动文件夹,这个把STM32的固件全都添加进去即可。

  文件夹User为其他文件,如下图所示:

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

  文件夹Output和List主要是放那些编译产生的乱七八糟的文件,为了使工程代码更加简洁。

  2.使用MDK创建无操作系统工程项目,这一点就不一一说了,将创建后的工程项目文件树截图如下:

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

  这个时候还没有main文件,那么创建一个mian.c文档即可,这里需要注意,创建main.c后,要将其添加到项目中才行,而不是简单的保存。如下图所示:、

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

  注意:main.c中要有一个mian函数,否则编译器会报错提示你的。然后就是项目的配置,这个还是很重要的,下面分别说需要配置的地方:

  (1) Output选项如下:

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

  这里面勾选了Create HEX File选项,同时将项目输出放到了之前创建的Output文件夹。

  (2) List选项,将List产生的文件放入到之前创建的List文件夹中。

  (3) C/C++配置选项如下:

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

  其中Define选项中,填入:USE_STDPERIPH_DRIVER,STM32F10X_HD,这是告诉编译器,使用标准外设,还有选择的CPU类型,其中CPU类型需要根据你选择移植的CPU进行适当的更改。Include Paths是要包含的头文件路径,这个为了保险,将项目中的所有有.h的文件的文件夹都包含进去就可以了。

  4.Debug选项如下:

技术专区

  • 低成本开发系统现在正处于物联网期望膨胀峰值期
  • 因特尔Cyclone 10 LP FPGA评估板电路图集及PCB装配图
  • 采用32位MCU系列对新型无磁水表设计
  • 一个嵌入式或者X86的工业控制板上,少不了CAN口!
  • 以MSP432主机微控制器的软件与硬件集成解决方案
  • 实操性最强:uCOS-II移植到STM32上的详细步骤已关闭评论
    A+
发布日期:2019年07月14日  所属分类:物联网