基于MDK-ARM创建STM32L-DISCOVERY Project

本文只针对使用MDK-ARM建立软件开发环境,并基于STM32L1xx_StdPeriph_Lib_V1.1.1库及其Examples,其余情况可参考UM1451 User manual Getting started with software development toolchains for the STM32L-DISCOVERY board

(后续会补充一般情况下创建STM32L MDK Project说明)

1.  安装Keil uVision4

2.  下载获得STM32L1xx_StdPeriph_Lib_V1.1.1.zip压缩包,解压到H:STM32L1xx_StdPeriph_Lib_V1.1.1,内部目录结构如下:

(PS:可以详细阅读目录下的stm32l1xx_stbperiph_lib_um.chm,该文档有不错的参考价值)

3.  在H盘下新建STM32_Project目录,拷贝H:STM32L1xx_StdPeriph_Lib_V1.1.1ProjectSTM32L1xx_StdPeriph_ExamplesGPIO  目录到 H:STM32_Project下

4.  进入到H:STM32_ProjectGPIOIOToggle 目录下创建MDK-ARM,并在MDK-ARM目录下创建objects目录

5.  打开Keil uVision4,点击Project菜单栏的New uVsion Project ,此时选择保存路径为:H:STM32_ProjectGPIOIOToggleMDK-ARM


6.  按照提示选择芯片为STM32L152RB

7.  此时会提示是否拷贝startup文件到当前目录,选择YES,此时将MDK-ARM目录下的startup_stm32l1xx_md.s 拷贝到上一级目录即:H:STM32_ProjectGPIOIOToggle

(这样做是为了将所有源文件都放在H:STM32_ProjectGPIOIOToggle目录下,而MDK-ARM目录只存放MDK所生产的文件)

8.  选中target1,点击右键,选择Options for Target 'Target1'... 或者按Alt+F7快速打开该Options窗口

9.  按照下图显示进行配置Options for Target 'Target1'

Device选项为创建Project时选择的芯片型号,可从该页面修改选择的芯片类型

Target 选项配置如下,由页面可以配置了on-chio ROM 和 RAM的地址和大小,还有Xtal频率,另外勾选了Use MicroLIB ,对于这个库可参考MDK-ARM的说明http://www.keil.com/arm/microlib.asp

Output页面可配置编译输出文件目录和输出信息,点击select folder for objects,选择在MDK-ARM目录下的objects目录

C/C++配置为最重要的配置,定义了USE_STDPERIPH_DRIVER, STM32L1XX_MD, USE_STM32L152_EVAL symbols,选择Optimization为Level 3(-O3),Warnings为All Warnings,同时配置Include Paths,否则编译时会找不都相关头文件

Debug选择仿真器为ST-Link Debugger 同时Protocol为SWD,同时勾选Run to main()

Utilities 同样选择ST-Link Debugger

10.  选中target1,右键选择Manage Components

11.  配置Components,Environment and Books,修改Project Targets 名称为iotoggle,创建Groups:User、StbPeriph_Driver、CMSIS、STM32152L_EVAL、MDK-ARM、Doc,然后为不同的Groups添加文件:

User 包含H:STM32_ProjectGPIOIOToggle 目录下的main.c、stm32l1xx_it.c

StbPeriph_Driver包含H:STM32L1xx_StdPeriph_Lib_V1.1.1LibrariesSTM32L1xx_StdPeriph_Driversrc目录下的所有.c文件

CMSIS包含H:STM32_ProjectGPIOIOToggle 目录下的system_stm32l1xx.c

STM32152L_EVAL包含H:STM32L1xx_StdPeriph_Lib_V1.1.1UtilitiesSTM32_EVALSTM32L152_EVAL 目录下的所有.c文件

MDK-ARM包含了H:STM32_ProjectGPIOIOToggle 目录下的startup_stm32l1xx.md.s

Doc 包含readme.txt

12.  以上配置完成后基本已配置完成,点击Build Target会出现以下错误,此时选中stm32l152_eval_i2c.ee.c,右键选中options  for file stm32l152_eval_i2c.ee.c,不勾选Include in Target Build

保存重新编译,通过完成,此时基于STM32L1xx_StdPeriph_Lib_V1.1.1库及其Examples 的MDK-Project建立配置完成,另外可以将源文件拷贝到H:STM32L1xx_StdPeriph_Lib_V1.1.1ProjectSTM32L1xx_StdPeriph_Templates目录下,使用模板project来运行example(暂末尝试,后续补充),我这样创建MDK-Project的目的是为了可以使用subversion来进行版本控制,虽然比起使用template步骤繁琐,但是对于了解MDK配置有一定帮助,另外有利于以后创建自己的Porject(一般情况下和不适用lib库情况下(均后续补充))

原文地址:https://www.cnblogs.com/121792730applllo/p/3284806.html