原创 STM32&uCOS笔记1、搭建符合自己需求的开发环境

2012-4-2 20:42 4225 17 17 分类: MCU/ 嵌入式

本日志期待实现的目标是:修改Micrium官方提供的例程使其可以在神舟IV号开发板上正常使用,所做的主要修改是将该例程中的ST固件库由2.1.0升级为3.4.0

一、资源准备

    神舟IV号开发板及J-Link

    Micrium官方STM32F107例程(http://micrium.com/page/downloads/ports/st/stm32)

    ST官方STM32F10x标准驱动库v3.4.0(http://www.st.com/cn/mcu/class/1734.jsp)

    IAR 6.10(因为下载的工程是在IAR6.10下建的,如果用较早版本打开的话,原有的配置将被重置,编译时会出错)


二、牛刀小试

    1、将下载的压缩包(uC-Eval-STM32F107_OS_II.zip)解压,解压后的文件结构如图1所示:  

20110712105748001.gif
图1 例程文件结构

    2、打开“IAR工程文件夹”(图1)下的“OS-II.eww”,工程结构如图2所示

20110712110339001.gif
图2 工程结构图

    3、该工程实现的功能实际上是让开发板上的3个LED灯闪烁,神舟开发板与官方的开发板LED连接的管脚不同,所以需要做一下修改。打开“bsp.h”文件,将其中的:

#define  BSP_GPIOD_LED1               DEF_BIT_13
#define  BSP_GPIOD_LED2               DEF_BIT_14
#define  BSP_GPIOD_LED3               DEF_BIT_15

改为:

#define  BSP_GPIOD_LED1               DEF_BIT_02
#define  BSP_GPIOD_LED2               DEF_BIT_
03
#define  BSP_GPIOD_LED3               DEF_BIT_04

    4、其他设置不变,重新编译工程,连接开发板,调试,即看到神舟IV号开发板上的3个LED灯同时闪烁。

三、升级STM32固件库并创建自己的工程

    1、根据自己需要新建一个文件夹并命名,此例新建一个“MyNewUcosPrj”文件夹。

    2、将例程文件夹里的“uC-CPU” “uC-LIB” “uCOS-II”原封不动地拷到“MyNewUcosPrj”文件夹下。同时在该文件夹下新建一个文件夹“EWARM”,并将“BSP”文件夹复制到该目录下。在“EWARM”目录下新建一个存放IAR工程的文件夹,这里命名为“FirstLED”,在“FirstLED”目录下新建一个“APP”文件夹,并将“OS-II”文件夹中的*.c和*.h文件拷到APP目录下,该目录用于存放应用程序。整体目录结构如图3所示。

20110712114428001.gif
图3 新建的目录结构

    3、升级STM32固件库。

       1)  解压所下载的压缩包STM32F10x_StdPeriph_Lib_V3.4.0.rar,其结构如图4所示。

20110712115652001.gif
图4 库函数文件结构

       2)  将Libraries文件夹下的两个文件夹复制到BSP文件夹下,同时删除BSP文件夹下的STM32文件夹。

       3)  用STM32F10x_StdPeriph_Template文件夹下的stm32f10x_conf.h文件替换APP文件夹下的该文件。至此,新建及替换工作已经完成。

       4)  新建工程,并保存在FirstLED目录下,工程结构如图5所示或参考所上传的工程。

20110712125540001.gif

图5 新建的工程结构

      5)  工程配置,与平常进行工程配置没什么区别。主要是器件选择,头文件搜索路径添加,预定义,调试工具选择。详细参考提供的工程。

      6)   文件需修改的地方:
           (1)、将includes.h,bsp.h中的stm32f10x_lib.h删除,同时添加

                     #include "stm32f10x.h"

                     #include "stm32f10x_conf.h"

            (2)、将bsp.c文件中的void  BSP_Init (void)函数中的“BSP_IntInit();”和“BSP_CPU_ClkFreq_MHz = BSP_CPU_ClkFreq() / (CPU_INT32U)1000000;”之间的语句用“SystemInit();”代替。

           (3)、打开“bsp.h”文件,将其中的:

#define  BSP_GPIOD_LED1               DEF_BIT_13
#define  BSP_GPIOD_LED2               DEF_BIT_14
#define  BSP_GPIOD_LED3               DEF_BIT_15

改为:

#define  BSP_GPIOD_LED1               DEF_BIT_02
#define  BSP_GPIOD_LED2               DEF_BIT_
03
#define  BSP_GPIOD_LED3               DEF_BIT_04

           (4)、打开stm32f10x_conf.h,打开相应的头文件包含语句。

      至少,所做的更改已经完成,编译调试,即可看到3个LED灯闪烁。

工程文件rar.gifMyNewUcosPrj.rar

文章评论0条评论)

登录后参与讨论
我要评论
0
17
关闭 站长推荐上一条 /2 下一条