微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 移植ucosII到STM32F103ZE(三)

移植ucosII到STM32F103ZE(三)

时间:11-25 来源:互联网 点击:
四、 移植过程详解:
1. 初始配置 STM32 的标准外设库
stm32 标准外设库的使用在 stm32f10x_stdperiph_lib_um.chm 中的How to use the Library一节中已有说明:
1) 加载文件:加载库文件和相应启动代码到工程中,这一步在上面步骤里已经做过了。
2) 配置芯片类型:(编译下工程,使头文件加载进工程)打开 stm32f10x.h 文件,在大约的 66-73 行,根据所选芯片类型,去掉相应注释。这里我去掉 STM322F10X_HD行的注释(高密度型的stm32芯片)。对自己选用的芯片到底是属于低密度型、中密度型、高密度型还是互联型,可查看 78-92 行的官方注释。



配置芯片类型
3) 是否启用标准外设库:继续在stm32f10x.h 文件中,去掉105行的USE_STDPERIPH_DRIVER 注释,启用 stm32 标准外设库。


4) 配置芯片主频:打开system_stm32f10x.c,在 110-115行,根据所选芯片主频,去掉相应注释,默认SYSCLK_FREQ_72MHz注释已去掉。本项目中的 STM32F103主频可达 72MHz,所以这就不做修改了。


5) 配置所用外设库:打开stm32f10x_conf.h,对于工程中不需要的外设,可注释掉里面的包含的头文件,以加快编译速度。目前我们仅保留stm32f10x_gpio.h,stm32f10x_rcc.h, misc.h,
stm32f10x_tim.h,stm32f10x_usart.h,以后要用到什么再加什么,如下图。当然也可不注释,所有驱动全部保留。


6) 完善工程
完善余下工作
建立名为App.c, app_cfg.h和 includes.h的空文件,保到stm32-ucosII-demoApp文件夹下,并将它们加载到 keil工程的 APP 目录下。
建立名为 Bsp.c 和 Bsp.h 的空文件,保存到Stm32-ucosII-demoBsp文件夹下,并将它们加载到keil工程的BSP 目录下。


uCOSII_core和uCOSII_port 这两个文件目录目前为空,后面才将用到。如果去掉这两个文件目录,以上结构就是STM32裸片开发的工程树形目录了。同时,STM32F10x_StdPeriph_Driver 目录下的库文件和其它一些基本不用修改的标准文件最好设置为只读属性,以防止误修改。如上图中的带锁文件就是只读属性。
2. uCOSII 的移植步骤
以下为uCOSII系统的文件结构图:其中Your Application为应用程序,需要用户自己添加;uC/OS-II book为uC/OS提供的,不需要修改;BSP是板级支持文件,需要用户根据开发板电路进行修改;uC/OS-II Cortex-M3 Port是需要用户根据处理器进行修改的。




AppNotes包含 ucosii 移植说明文件。
这两个文件中仅需关心
MicriumAppNotesAN1xxx-RTOSAN1018-uCOS-II-Cortex-M3AN-1018.pdf。另一个是1320.pdf,是讲意法半导体的STM32评估板方面的,只需要关系AN-1018.pdf。
因为这个文件对 ucosii在 CM3 内核移植过程中需要修改的代码进行了说明。
Licensing包含 ucosii 使用许可证。


a) 系统uCOSII文件目录简介:
AppNotes包含 ucosii 移植说明文件。这两个文件中仅需关心
MicriumAppNotesAN1xxx-RTOSAN1018-uCOS-II-Cortex-M3AN-1018.pdf。因为这个文件对 ucosii在 CM3 内核移植过程中需要修改的代码进行了说明。
Licensing包含 ucosii 使用许可证。
Software 下有好几个文件夹,在本文的移植中仅需关心uCOS-II 即可。
CPU: stm32标准外设库
EvalBoards: micrium 官方评估板相关代码
uc--CPU: 基于micrium官方评估板的ucosii 移植代码
uC--LCD:micrium 官方评估板 LCD 驱动代码
uc--LIB: micrium 官方的一个库代码
uCOS-II: ucosii 源代码
uC--Probe: 和 uC-Probe 相关代码
ReadMe.pdf 就不说了。
官方的东西介绍完了,该建立工程着手移植了。
b) 添加系统文件到工程
首先,先建立两个文件夹,分别是Stm32-ucosII--demoOS-uCOSIIcore和Stm32-ucosII--demo OS-uCOSIIport
把MicriumSoftwareuCOS-IISource下的文件全部拷贝至 Stm32-ucosII--demoOS-uCOSIIcore;
把MicriumSoftwareuCOS-IIPortsARM-Cortex-M3GenericRealView 下的文件全部拷贝至
Stm32-ucosII--demo OS-uCOSIIport;
ucosiicore下的代码是ucosii 中无需修改部分,可设为只读属性。
ucosiiport下的代码是移植时需要修改的。
把MicriumSoftwareEvalBoardsSTSTM3210B-EVALRVMDKOS-Probeos_cfg.h 拷贝到
Stm32-ucosII-demoApp;
Micrium官方文件夹没用了,可关闭了。
keil中,将OS-uCOSIIcore下的所有.c 文件添加到工程uCOSII_core 中;将 OS-uCOSII port
下的所有文件添加到工程uCOSII_port 中。将App 下的os_cfg.h 添加到工程APP 中。



文件结构图

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top