操作系统: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
注:本文是经过实践得来的,
后面的一部分是参考大神的配置,直接就贴图了,本想注明出处,可惜时间太久,找不到了,在此感谢!