• 基于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库情况下(均后续补充))

  • 相关阅读:
    数据库设计 一对多 多对多 无限级菜单 设计方法
    线程创建的四种方式
    Linux常用指令---grep(搜索过滤)
    Netty4实战
    linux查找日志技巧
    javascript---关于字符串和数组的方法
    angularJs---route
    JavaScript---详解scroll
    JavaScript--location
    socket中 emit和on的写法
  • 原文地址:https://www.cnblogs.com/121792730applllo/p/3284806.html
Copyright © 2020-2023  润新知