uCos在stm32上的移植总结

来源:互联网 发布:php网站免费模板 编辑:程序博客网 时间:2024/04/28 17:59

操作系统:Windows XP

开发环境:Keil uVision3 –MDK

实验开发板:open103Z

一、准备

1、        keil-MDK  下载地址:http://www.keil.com/download/product/

2、        uCOS-II 源码(移植版本):http://micrium.com/download/Micrium-ST-uCOS-II-LCD-STM32.exe

3、        STM32标准外设库(stm32标准外设库是stm32全系列芯片的外设驱动):http://www.st.com/internet/com/SOFTWARE_RESOURCES/SW_COMPONENT/FIRMWARE/stm32f10x_stdperiph_lib.zip

4、        JLink仿真器驱动程序:找不到官网

二、建立工程文件夹结构

      如图:


 

App 用来存放应用程序文件; Bsp 用来存放板级驱动文件;  Libraries用来存放stm32的标准外设库文件;     

OS-uCOSII用来存放uCOS文件; Project用来存放工程文件;Readme用来存放TXT格式的自述文件(可选)


三、整理库代码

      1、解压STM32F10x_StdPeriph_Lib_V3.5.0下的Libraries文件夹拷贝到stm32-ucos_ii下,替换Libraries(懒惰做法,包含冗余文件)

      2、将STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template下的stm32f10x_it, stm32f10x_it.h,stm32f10x_conf.h拷贝到stm32-ucos_ii\App下


四、建立KEIL工程

      使用KEIL MDK新建STM32-Ucosii-DEMO工程,并保存到stm32-ucos_ii\Project文件夹下,选择芯片类型stm32f103ZE,当弹出是否拷贝启动代码到工程文件时要选No, 因为标准外设库里已经有启动代码了。

      再建立几个group,如图:

                                           

1、   将stm32-ucos_ii\Libraries\STM32F10x_StdPeriph_Driver\src下的6个文件添加进STM32F10x_StdPeriph_Driver 组下,如图:

1、   将stm32-ucos_ii\Libraries\CM3下的所有.c和.h文件和stm32-ucos_ii\Libraries\CM3\startup相应的.s文件加到STM32F10x_CM3组(我选择startup_stm32f10x_hd.s 参见stm32f10x.h中对各型号的说明)

2、   将App目录下的所有文件加载到APP组下。


五、初始配置STM32的标准外设库

      1、配置芯片类型(stm32f10x.h),如图:

     2、是否启用标准外设库(stm32f10x.h):去掉105行USE_STDPERIPH_DRIVER注释,如图:

3、配置芯片主频(system_stm32f10x.c) , 在110-115行,如图:

4、配置所用外设库(stm32f10x_conf.h), 目前仅保留五个库,如图:

5、完善工程

1、 在stm32-ucos_ii\App下建立App.c,app_cfg.h和includes.h空文件,然后添加到工程中APP组

2、 在stm32-ucos_ii\Bsp下建立Bsp.c和Bsp.h空文件,然后添加到工程中BSP组

3、 最后得目录结构如图所示:

六、开始移植

     1、uCOSII的体系结构如图:


2、解压Micrium-ST-uCOS-II-LCD-STM32.exe

         1)、将Micrium-ST-uCOS-II-LCD-STM32\Micrium\Software\uCOS-II\Source下的所有文件拷贝到stm32-ucos_ii\OS-uCOSII\core下,然后添加到工程

         2)、将Micrium-ST-uCOS-II-LCD-STM32\Micrium\Software\uCOS-II\Ports\ARM-Cortex-M3\Generic\RealView下的所有文件拷贝至stm32-ucos_ii\OS-uCOSII\port下,然后添加到工程

         3)、将Micrium-ST-uCOS-II-LCD-STM32\Micrium\Software\EvalBoards\ST\STM3210B-EVAL\RVMDK\OS-Probe下的os_cfg.h拷贝至stm32-ucos_ii\App下,并添加到工程

 

    3、修改与移植相关的文件os_cpu.h, os_cpu_c.c 和os_cpu_a.asm









注:本文是经过实践得来的,

后面的一部分是参考大神的配置,直接就贴图了,本想注明出处,可惜时间太久,找不到了,在此感谢!





原创粉丝点击