MDK建立STM32F103*开发模板
一、整体流程
1、获取ST库--STM32F10x_StdPeriph_Lib_V3.5.0
2、新建文件夹并加载文件
3、新建工程
4、给工程添加组
5、设置"Target Option"
6、设置J-link选项
二、获取ST库
这里用野火光盘提供的"ST库3.5.0源码"--STM32F10x_StdPeriph_Lib_V3.5.0,也可以从ST公司的官网下载,下载地址是“http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/PF257890”。
三、新建文件夹并添加文件
先新建一个顶层文件夹Template,然后依次建立以下子文件夹。
1、DOC
此目录存放说明文档,对程序的一些简要说明、用法之类,通常放readme.txt。
2、Include
该目录集中存放头文件,将下面列出的库中的头文件拷贝到这个文件夹下。
STM32F10x_StdPeriph_Lib_V3.5.0/Librarys/CMSIS/CM3/CoreSupport/core_cm3.h
STM32F10x_StdPeriph_Lib_V3.5.0/Librarys/CMSIS/CM3/DeviceSupport/ST/STM32F10x/stm32f10x.h以及该目录下的system_stm32f10x.h。
STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\inc下的所有头文件,比如说misc.h、stm32f10x_adc.h等。
STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template\stm32f10x_conf.h以及该目录下的stm32f10x_it.h。
3、Libraries
再新建两个子目录:CMSIS和FWLIB
①CMSIS
存放ARM公司为cm3内核专一定制的内核文件接口,将下面列出的库中的文件拷贝到这个文件夹下。
STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport\core_cm3.c
STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c
再在CMSIS中新建一个子文件夹startup,将下面列出的库中的文件拷贝到这个文件夹下。
STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm所有文件拷到该目录。
②FWLIB
存放STM32的外设库,将下面列出的库中的文件拷贝到这个文件夹下。
STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\src所有文件。
4、Listing
该目录是MDK生成信息输出目录,存放代码分布(.map和.lst)。
5、Output
该目录是MDK生成信息输出目录,存放目标文件(.o)、调试文件(.axf)、下载文件(.hex)、依赖文件(.d)等。
6、Project
再新建一个子目录RVMDK(uv4),将来MDK的工程就建在这个目录中。之所以这样处理,是因为可能将来我们会在IAR环境下编译程序,这个时候只需要在Project目录下新建一个针对IAR的目录,就可以方便的切换开发环境。
7、User
存放用户程序,以后写程序的文件存放在该目录,先把库中的用户程序添加进来,建立一个完整模板。
STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template\main.c和stm32f10x_it.c。
8、keilkill.bat
在顶层目录中,添加MS-DOS批处理文件keilkill.bat。当双击这个工具的时候,会将Output目录中生成的中间目标文件全部删除,只留下hex文件。
四、新建工程
1、点击MDK图标打开软件
2、Project->New uVision Project,将工程目录选择在Template\Project\RVMDK(uv4)
3、选择芯片为ST公司的STM32F103VE。
4、在新弹出的对话框--询问是否添加启动代码,我们选择"否"。
五、给工程添加组
1、建立5个分组,分别为STARTUP、SMSIS、USER、DOC、FWLIB。
2、对每个分组双击,然后添加文件。
这里只需要添加C文件和汇编文件(其中DOC目录除外),头文件不需要添加。通过“六、设置Target Option”,我们可以指定头文件搜索路径,来解决这个问题。而且,编译器会根据*.C文件生成对应的依赖文件。
六、设置Target Option
依次选择Project->Options for Target ‘Template’
1、Device
Device选择100脚的STM32F103VE
2、Target
晶振频率:8 MHz
Use MicroLIB: 使用微库
片内Flash起始地址:0x8000000
片内Flash大小:0x80000
片内RAM起始地址:0x20000000
片内RAM大小:0x10000
3、Output
Select Folder for Objects: 可以选择输出文件夹
Name of Executable: 可执行文件的名字
4、Listing
Select Folder for Listing: 可以选择生成Lst的文件夹
5、User
如果想生成bin格式的可执行文件,可以在User栏子选项中添加如下语句:
C:/Keil/ARM/BIN40/fromelf.exe --bin -o ../../Output/Template.bin ../../Output/Template.axf
6、C/C++
Define: 预处理宏
STM32F10X_HD 使用的芯片是大容量的
USE_STDPERIPH_DRIVE 为了使用ST库
Optimization 优化等级
Warngings 警告等级
Include Paths 添加头文件目录
compiler control string 可以查看编译命令
可见头文件搜索目录除了系统默认的C:\Keil\ARM\INC\ST\STM32F10x,还包括我们添加的..\..\Include
7、ASM
与C/C++选项配置类似
8、Linker
R/O Base 代码段和只读数据段起始地址
R/W Base 数据段起始地址
Linker control string 可以查看连接命令
Don't Search Standard Libraries 完全不使用系统默认提供的库
9、Debug
Use simulator 软件仿真
Use cortex-M3 J-LINK 用J-link硬件仿真
10、Utilities(工具)
七、设置J-link选项
在步骤六的第8小步--Debug界面,按下settings,进入J-link配置界面。以下是开发板上电后正常连通时的配置信息。
1、Debug
2、Flash Download
其中Programming Algorithm的Description中需要添加芯片的Flash型号,这样下载的时候才知道是什么存储器,下载到哪里,大小多少。
Erase Full Chip 擦除整个Flash
Program 使能编程
Verify 使能核查
Reset and Run 编程完毕后,复位并且运行
参考资料:《STM32库开发实战指南》
MDK建立STM32F103*开发模板的更多相关文章
- Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发
Keil MDK STM32系列 Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发 Keil MDK STM32系列(二) 基于标准外设库SPL的STM32F401 ...
- 基于MDK的ARM-GCC开发环境建立及新唐M0的HID类设备的C++开发
一,下载安装测试arm-none-eabi-gcc编译工具链 1,查看arm-none-eabi-gcc编译工具版本 打开网页:https://sourcery.mentor.com/G ...
- STM32开发环境--使用MDK建立一个工程
STM32开发环境--使用MDK建立一个工程 该工程模版是基于库函数基础制作而成,其中有借鉴相关资料.虽然工程模版一旦建立,以后任何项目只需套用即可,但考虑到长时间不使用,在将来某天可能会突然用到,再 ...
- ASP.NET 5 入门(1) - 建立和开发ASP.NET 5 项目
ASP.NET入门(1) - 建立和开发ASP.NET 5 项目 ASP.NET 5 理解和入门 使用自定义配置文件 建立项目 首先,目前只有VS 2015支持开发最新的ASP.NET 5 程序,所以 ...
- ubuntu linux下建立stm32开发环境: 程序烧录 openocd+openjtag
原文出处: http://blog.csdn.net/embbnux/article/details/17619621 之前建立stm32开发环境,程序也已经编译好生成main.bin,接下来就是要把 ...
- 轻松建立Silverlight开发环境
创建Silverlight 4开发环境,微软提供最简单的方法是使用Web Platform Installer,进行“一键安装”, 下载安装后,Web Platform Installer会自动检测哪 ...
- 奉上简单的.Net后端开发模板
假定一个场景,开始做开发的你,领导走到你的面前说道:"小伙子,看了简历和最近的工作表现,很不错,现在交给一个任务,开发一个简单的CMS后端接口吧,前端有人配合你",当时你内心读白: ...
- MDK中用C++开发STM32
作者:良知犹存 转载授权以及围观:欢迎添加微信:Allen-Iverson-me-LYN 前言 最近想开发一段单片机的代码,代码本身有很多的重复元素,这重复定义的一些结构体使用起来有些繁琐, ...
- 在Visual Studio 2015 中添加SharePoint 2016 开发模板
前言 SharePoint 2016已经发布很久了,然而,默认安装VS2015以后,却没有SharePoint 2016的开发模板.其实问题很简单,和VS2012开发SharePoint 2013一样 ...
随机推荐
- [Angular 2] Create Angular 2 Porject with Angular CLI
Install: npm i -g angular-cli Create a project: ng new hello-angular2 Run the project: cd hello-angu ...
- centos 5.4 安装nodejs + npm(转)
而在安装nodejs的时候,需要用到,所以需要手动安装bz2库. sudo yum install -y bzip2* cd Python-/Modules/zlib ./configure make ...
- java验证码(采用struts2实现)转
第一步:编写验证码的Action package com; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; ...
- oracle数据库导入导出的dmp(转)
window下: imp必须要dba用户,所以用sysdba用户登陆,然后给予chnlmgr用户dba权限 grant connect,resource,dba to chnlmgr; 全部导入 im ...
- JS问题Uncaught ReferenceError:XXXX is not defined
背景: html中一个table,table中进行分页.每行后面有一系列操作,如删除,修改.现在以删除为例说明问题. 实现方式: 使用button,在onclick中调用js函数,js函数中传递参数如 ...
- Flash学习初总结
话说尝试了一周多的Flash编程,有些理解为什么很多程序员都不喜欢用Flash编程了. 首先,就是没有编程的难度,想要编好Flash,也就是有良好的视觉效果,那么关键点不在你的程序逻辑或者代码条理上, ...
- maven搭建个人仓库
Maven环境搭建: 本地仓库+maven运行环境+构建项目 1.搭建nexus 本地仓库 1)拷贝jdk1.6和tomcat62)配置端口为8010 (端口自行定义,只要下面各处一致即可)3)复制n ...
- Java并发——Fork/Join框架
为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/ShiJiaqi. http://www.cnblogs.com/shijiaqi1066/p/4631466. ...
- js如何打印object对象
js调试中经常会碰到输出的内容是对象而无法打印的时候,光靠alert只能打印出object标示,却不能打印出来里面的内容,甚是不方便,于是各方面整理总结了如下一个函数,能够将数组或者对象这类的结果一一 ...
- effective c++(03)之const使用方法
char greeting[] = "hello"; char* p = greeting; //non-const pointer,non-const data const ch ...