本文只针对使用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.1\Project\STM32L1xx_StdPeriph_Examples\GPIO  目录到 H:\STM32_Project\下

4.  进入到H:\STM32_Project\GPIO\IOToggle 目录下创建MDK-ARM,并在MDK-ARM目录下创建objects目录

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

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

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

(这样做是为了将所有源文件都放在H:\STM32_Project\GPIO\IOToggle\目录下,而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_Project\GPIO\IOToggle\ 目录下的main.c、stm32l1xx_it.c

StbPeriph_Driver包含H:\STM32L1xx_StdPeriph_Lib_V1.1.1\Libraries\STM32L1xx_StdPeriph_Driver\src目录下的所有.c文件

CMSIS包含H:\STM32_Project\GPIO\IOToggle\ 目录下的system_stm32l1xx.c

STM32152L_EVAL包含H:\STM32L1xx_StdPeriph_Lib_V1.1.1\Utilities\STM32_EVAL\STM32L152_EVAL 目录下的所有.c文件

MDK-ARM包含了H:\STM32_Project\GPIO\IOToggle\ 目录下的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.1\Project\STM32L1xx_StdPeriph_Templates目录下,使用模板project来运行example(暂末尝试,后续补充),我这样创建MDK-Project的目的是为了可以使用subversion来进行版本控制,虽然比起使用template步骤繁琐,但是对于了解MDK配置有一定帮助,另外有利于以后创建自己的Porject(一般情况下和不适用lib库情况下(均后续补充))

基于MDK-ARM创建STM32L-DISCOVERY Project的更多相关文章

  1. 基于MDK的ARM-GCC开发环境建立及新唐M0的HID类设备的C++开发

    一,下载安装测试arm-none-eabi-gcc编译工具链 1,查看arm-none-eabi-gcc编译工具版本        打开网页:https://sourcery.mentor.com/G ...

  2. 20155206赵飞 基于《Arm试验箱的国密算法应用》课程设计个人报告

    20155206赵飞 基于<Arm试验箱的国密算法应用>课程设计个人报告 课程设计中承担的任务 完成试验箱测试功能1,2,3 . 1:LED闪烁实验 一.实验目的  学习GPIO原理  ...

  3. 2015520吴思其 基于《Arm试验箱的国密算法应用》课程设计个人报告

    20155200吴思其 基于<Arm试验箱的国密算法应用>课程设计个人报告 课程设计中承担的任务 完成试验箱测试功能4,5,6以及SM3加密实验的实现 测试四 GPIO0按键中断实验 实验 ...

  4. 使用eclipse插件创建一个web project

    使用eclipse插件创建一个web project 首先创建一个Maven的Project如下图 我们勾选上Create a simple project (不使用骨架) 这里的Packing 选择 ...

  5. 搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 (1)

    搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 原文地址(英文):http://www.networkcomms.net/creating ...

  6. Eclipse 使用maven创建Dynamic Web Project

    今天看到spring的官网首页已经没有下载连接了,建议使用maven构建spring项目.虽然maven已经不是新技术,但是这个我还没用过,谷歌走起! 通常创建项目都是用Eclipse,前几年还是My ...

  7. Particles.js基于Canvas画布创建粒子原子颗粒效果

    文章目录 使用方法 自定义参数 相关链接 Particles.js是一款基于HTML5 Canvas画布的轻量级粒子动画插件,可以设置粒子的形状.旋转.分布.颜色等属性,还可以动态添加粒子,效果非常炫 ...

  8. eclipse EE neon创建dynamic web project时,卡在installing dynamic web module facet,解决办法

    我们在用eclipse EE neon创建dynamic web project时,如果你发现底部状态栏一直卡在installing dynamic web module facet,永远到不了100 ...

  9. 令用EclipseJ2EE创建的Dynamic Web project目录结构与用MyEclipse创建的Web project一样

    Eclipse for EE 版本, 创建 Dynamic Web Project  会有俩个工程. 其中一个 是你创建的工程, 另外一个 是Servers 工程(其实也就是tomcat 的一个配置) ...

  10. 创建Dynamic Web Project时 显示最新Apache Tomcat 8.0 的方法

    创建Dynamic Web Project时  显示最新Apache Tomcat  8.0 等的方法 解决办法如下: 第一步:eclipse菜单help->eclipse marketplac ...

随机推荐

  1. 【腾讯Bugly干货分享】揭秘:微信是如何用libco支撑8亿用户的

    本文来自于腾讯bugly开发者社区,未经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/58203cfcd149ba305c5ccf85 作者:Leiffy 导语 lib ...

  2. 图解集合3:CopyOnWriteArrayList

    初识CopyOnWriteArrayList 第一次见到CopyOnWriteArrayList,是在研究JDBC的时候,每一个数据库的Driver都是维护在一个CopyOnWriteArrayLis ...

  3. 推荐书籍 -《移动App测试的22条军规》

    在今天的博文中,博主希望给大家分享一本博主同事黄勇的最新利作:<移动App测试的22条军规>.黄勇是ThoughtWorks资深敏捷QA和咨询师.对于我来说,和黄勇在一起的工作的这个项目, ...

  4. Linux网络编程系列-TCP编程实例

    实例: client #include <stdio.h> #include <sys/socket.h> #include <netinet/in.h> #inc ...

  5. SQL中group by的用法

    group by即按照给定字段对结果集进行分组,从字面意义上理解就是根据"by"指定的规则对数据进行分组,所谓的分组就是将一个"数据集"划分成若干个" ...

  6. 更新日志 - fir.im「高级统计」功能上线

    距离 2016 年到来只剩 10 个日夜,fir.im 也准备了一些新鲜的东西,比如「高级统计」功能和「跳转应用商店」功能,帮助你更好地管理.优化应用,欢迎大家试用反馈:) 新增高级统计功能 这次更新 ...

  7. Java学习第一天

    Java学习第一天 对于网络管理员或者黑客必须知道的八个cmd命令 详情请参考:http://www.2cto.com/os/201608/533964.html          nbtstat  ...

  8. Java基础-接口.编写2个接口:InterfaceA和InterfaceB;在接口InterfaceA中有个方法void printCapitalLetter();在接口InterfaceB中有个方法void printLowercaseLetter();然 后写一个类Print实现接口InterfaceA和InterfaceB,要求 方法 实现输出大写英文字母表的功能,printLowerca

    #34.编写2个接口:InterfaceA和InterfaceB:在接口InterfaceA中有个方法void printCapitalLetter():在接口InterfaceB中有个方法void ...

  9. jeasyUI的treegrid批量删除多行(转载)

    看上去,JavaScript的变量类型,也可以分为值类型和引用类型.赋值操作中,值类型,各自独立,互不干涉:引用类型,指针而已,大家指向同一个对象. 为什么这样说呢? 我是从jeasyUI的treeg ...

  10. C#相关

    1.索引器 索引器允许类或结构的实例按照与数组相同的方式进行索引.索引器类似于属性,不同之处在于它们的访问器采用参数.它可以像数组那样对对象使用下标.它提供了通过索引方式方便地访问类的数据信息的方法. ...