基于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.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的更多相关文章
- 基于MDK的ARM-GCC开发环境建立及新唐M0的HID类设备的C++开发
一,下载安装测试arm-none-eabi-gcc编译工具链 1,查看arm-none-eabi-gcc编译工具版本 打开网页:https://sourcery.mentor.com/G ...
- 20155206赵飞 基于《Arm试验箱的国密算法应用》课程设计个人报告
20155206赵飞 基于<Arm试验箱的国密算法应用>课程设计个人报告 课程设计中承担的任务 完成试验箱测试功能1,2,3 . 1:LED闪烁实验 一.实验目的 学习GPIO原理 ...
- 2015520吴思其 基于《Arm试验箱的国密算法应用》课程设计个人报告
20155200吴思其 基于<Arm试验箱的国密算法应用>课程设计个人报告 课程设计中承担的任务 完成试验箱测试功能4,5,6以及SM3加密实验的实现 测试四 GPIO0按键中断实验 实验 ...
- 使用eclipse插件创建一个web project
使用eclipse插件创建一个web project 首先创建一个Maven的Project如下图 我们勾选上Create a simple project (不使用骨架) 这里的Packing 选择 ...
- 搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 (1)
搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 原文地址(英文):http://www.networkcomms.net/creating ...
- Eclipse 使用maven创建Dynamic Web Project
今天看到spring的官网首页已经没有下载连接了,建议使用maven构建spring项目.虽然maven已经不是新技术,但是这个我还没用过,谷歌走起! 通常创建项目都是用Eclipse,前几年还是My ...
- Particles.js基于Canvas画布创建粒子原子颗粒效果
文章目录 使用方法 自定义参数 相关链接 Particles.js是一款基于HTML5 Canvas画布的轻量级粒子动画插件,可以设置粒子的形状.旋转.分布.颜色等属性,还可以动态添加粒子,效果非常炫 ...
- eclipse EE neon创建dynamic web project时,卡在installing dynamic web module facet,解决办法
我们在用eclipse EE neon创建dynamic web project时,如果你发现底部状态栏一直卡在installing dynamic web module facet,永远到不了100 ...
- 令用EclipseJ2EE创建的Dynamic Web project目录结构与用MyEclipse创建的Web project一样
Eclipse for EE 版本, 创建 Dynamic Web Project 会有俩个工程. 其中一个 是你创建的工程, 另外一个 是Servers 工程(其实也就是tomcat 的一个配置) ...
- 创建Dynamic Web Project时 显示最新Apache Tomcat 8.0 的方法
创建Dynamic Web Project时 显示最新Apache Tomcat 8.0 等的方法 解决办法如下: 第一步:eclipse菜单help->eclipse marketplac ...
随机推荐
- Unity3D入门之Unity3D介绍以及编辑器的使用(1)
1.Unity3D介绍 Unity3D是跨平台(IOS.Android.Windows Phone.Windows.Flash.XBOX360.PS3.Wii等)游戏引擎,可以开发2D.2.5D.3D ...
- Angular实现递归指令 - Tree View
在层次数据结构展示中,树是一种极其常见的展现方式.比如系统中目录结构.企业组织结构.电子商务产品分类都是常见的树形结构数据. 这里我们采用Angular的方式来实现这类常见的tree view结构. ...
- 简介Gulp, Grunt, Bower, 和 Npm 对Visual Studio的支持
[原文发表地址]Introducing Gulp, Grunt, Bower, and npm support for Visual Studio Web 开发,特别是前端 Web 开发,正迅速变得像 ...
- 64位进程池HashCode兼容处理
背景 net旧项目使用32位生成的HashCode,存储到数据库中.迁移到64位上,就需要对HashCode做兼容处理. 解决方案 1:进程池配置支持32位程序. 2:对Hashcode做兼容处理,[ ...
- kafka的一些认识
原创文章转载请注明出处:@协思, http://zeeman.cnblogs.com 近来无事研究了一下kafka,并且用golang连接kafka做了producer和consumer的简单测试 ...
- Java中测试异常的多种方式
使用JUnit来测试Java代码中的异常有很多种方式,你知道几种? 给定这样一个class. Person.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
- OpenCV 3.0函数库索引
================================== 前言:值的个数: cvCrossProduct:计算两个三维向量的向量积(叉积): cvCvtColor:将数组的通道从一个颜色空 ...
- Azure China (10) 使用Azure China SAS Token
<Windows Azure Platform 系列文章目录> 本文介绍的是国内由世纪互联运维的Azure China 注意:本文介绍的是Azure China Storage Priva ...
- Hibernate SQL实际sql语句监控- p6spy+hibernate+proxool 设置
由于ORM工具的缘故,我们调试程序的时候远没有直接在程序里直接写个string的SQL简单,想当年查个sql是有多么的幸福,一行sql = "select * from ..."找 ...
- 微软官网下载windows系统有点全
第一步:访问:https://www.microsoft.com/zh-cn/software-download/windows10ISO/ 默认就只能下载win10,这怎么行呢.巨硬程序员貌似没做服 ...