Keil(MDK-ARM)系列教程(一)_新建软件工程详细过程

Keil(MDK-ARM)系列教程(一)_新建软件工程详细过程推荐分享一个大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!http://www.captainbed.net/strongerhuang推荐在我的公众号「strongerHuang」或网站(www.strongerhuang.com)阅读以下教程:Keil系列教程01_Keil介绍、下载、安装与注册Keil系列教程02_新建基础…

大家好,又见面了,我是你们的朋友全栈君。

推荐

分享一个大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!http://www.captainbed.net/strongerhuang

 

推荐在我的公众号「strongerHuang」或网站(www.strongerhuang.com)阅读以下教程:
Keil系列教程01_Keil介绍、下载、安装与注册
Keil系列教程02_新建基础软件工程
Keil系列教程03_主窗口和工具栏详细说明
Keil系列教程04_菜单概述
Keil系列教程05_工程目标选项配置(一)
Keil系列教程06_工程目标选项配置(二)
Keil系列教程07_Configuration(一)
Keil系列教程08_Configuration(二)
Keil系列教程09_调试仿真
Keil系列教程10_文件类型及相关描述
Keil系列教程11_工程窗口图标说明
Keil系列教程12_map文件全面解析
Keil系列教程13_创建多目标工程
Keil系列教程14_创建多工程工作空间
Keil系列教程15_编辑窗口右键菜单选项说明
···

 

Ⅰ、写在前面

本文使用目前(2016年11月)最新版本Keil(MDK-ARM)V5.21a开发环境以STM32的处理器为例给大家讲述新建一个软件工程的详细过程。

 

Keil(MDK-ARM)V4和V5新建软件工程基本一样,本文也适合与V4版本的新建软件工程。

 

本文使用的处理器是ST公司的STM32F1系列芯片,ST公司其它系列(如:F4等)、其它公司(如:TI)新建软件工程的过程也是一样。

 

为方便广大STM32学习者,我将在下面把STM32F0 – F4各个系列芯片新建好的Demo软件工程、相关的工具和文档提供给大家下载

 

 

本文内容已经整理成PDF文件,提供给大家下载:

http://pan.baidu.com/s/1nuJ0RDR

 

作者:strongerHuang

 

版权所有,未经允许,禁止用于其它商业用途!!!

 

Ⅱ、本文要点

从本文标题可以看得出,重点是新建软件工程的过程。但是作为ARM开发的软件工程,一般都会包含部分源代码(如:库),意思就是说需要准备一些工程所包含的源代码文件。

 

本文基于STM32F1系列芯片为例来讲述(其他系列芯片类似),将简单描述一下准备STM32F1标准外设库、Demo源代码(LED闪烁例程)。

 

准备工作之后新建软件工程才是本文是要点,新建软件工程的过程主要针对初学者,大部分工程的配置就选择默认,如要查看更多关于软件工程的详细配置可以进入博客或关注微信公众号查看。

 

Ⅲ、准备工作

俗话说“磨刀不误砍柴工”,准备工作虽然与题目关系不是很大,但也是本文的重点,做好了准备工作,后面新建软件工程的工作就很容易实现了。

 

1.安装Keil(MDK-ARM)软件工具

本文必备工具,这里不多说,详情请看我的另一篇文章【Keil(MDK-ARM)介绍、下载、安装与注册】:

博客:http://blog.csdn.net/ybhuangfugui/article/details/51501781

PDF:http://pan.baidu.com/s/1nuJ0RDR

 

2.STM32标准外设库下载

官网下载链接(需要ST账号登陆):

http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software.html?querycriteria=productId=SC961

 

根据芯片型号下载对应的标准外设库(如芯片为STM32F103ZE,则下载对应的STM32F10x_StdPeriph_Lib),如下图:

Keil(MDK-ARM)系列教程(一)_新建软件工程详细过程

也可以到我百度网盘下载(和官网一样):

http://pan.baidu.com/s/1qYbBKMK

 

3.整理工程文件夹

这一小节的内容可根据自己习惯来整理,我整理的文件及文件夹结构是按照常规的整理方式。你如果觉得合理,可以引用;如果觉得不习惯这个结构方式,可以自己整理。

首先建立一个存放工程文件的文件夹:STM32F103ZE(Keil)_Demo

 

A.提取ST标准外设库文件

ST官网下载的标准外设库里面有很多源代码文件,但我们只需要使用部分文件。因此,需要提取使用的文件及文件夹到我们的工程中。

 

解压“STM32F10x_StdPeriph_Lib”,可以看到在主目录下面有四个文件夹:

_htmresc:图片文件夹(不提取

Libraries:库文件夹(提取大部分

Project:  示例工程(提取少部分

Utilities: 公共代码、评估板代码(不提取)

 

我们使用标准外设库主要提取的文件是Libraries下面的文件,但有些文件及文件夹也是多余的。因此,我将多余的文件及文件夹去掉,保留需要的文件和文件夹。

 

B.新建文件和文件夹

除了标准外设库文件之外,我们需要建立存放自己代码的文件和文件夹。我这里主要需要新建三个文件夹:

App: 应用部分代码

Bsp: 底层部分代码

Doc: 说明文档

 

在自己新建的文件夹下面还需要新建自己的文件,文件里面添加源代码,我们提供的Demo工程,实现的功能比较简单,就是一个LED闪烁。这里不描述,具体可以在最后下载查看。

 

上面两个步骤完成之后,我们就可以看到在“STM32F103ZE(Keil)_Demo”下面整理的文件夹:

Keil(MDK-ARM)系列教程(一)_新建软件工程详细过程

 

至此,准备工作算完成了,上面提取的文件、新建的文件里面具体的内容请下载Demo工程查看

 

Ⅳ、新建软件工程

新建一个简单、基础的软件工程大概需要有三个步骤:建立工程添加文件配置工程

上面的准备工作做好之后,就可新建自己的软件工程了,下面将一步一步讲述从零开始新建一个软件工程的详细过程。

 

1.建立工程

建立工程的步骤是基础,也比较简单。

 

A.打开软件,新建立工程(Project -> New uVision Project)

Keil(MDK-ARM)系列教程(一)_新建软件工程详细过程

 

B.选择路径,保存名称

Keil(MDK-ARM)系列教程(一)_新建软件工程详细过程

 

C.选择芯片型号

Keil(MDK-ARM)系列教程(一)_新建软件工程详细过程

Keil(MDK-ARM)系列教程(一)_新建软件工程详细过程

 

D.基础工程

Keil(MDK-ARM)系列教程(一)_新建软件工程详细过程

一个基础的工程就完成了,但需要使用还不够,还需要下面的步骤。

 

2.添加文件

准确的来说,应该是添加组(文件夹)和添加文件。直接的说,就是将你自己的源代码(前面提取的库、新建的文件等)添加到工程中。

这里的工程项目管理可根据自己的想法来定义(类似于自己分类、命名文件夹和文件),我这里按照常规的方式进行管理项目。

Keil(MDK-ARM)系列教程(一)_新建软件工程详细过程

 Keil(MDK-ARM)系列教程(一)_新建软件工程详细过程

 

Keil(MDK-ARM)系列教程(一)_新建软件工程详细过程

·

·

一步一步添加,直到最后完成

·

·

Keil(MDK-ARM)系列教程(一)_新建软件工程详细过程

 

3.配置工程

配置工程对于初学者来说,大部分内容只需要默认即可,这里只讲述几个常见的配置,能满足基本的功能。更多配置可进入我微信公众号或博客查看。

 

A.点击“工程目标选项”进入配置(或Project -> Options for Target)

Keil(MDK-ARM)系列教程(一)_新建软件工程详细过程

 

B.输出Hex文件

很多朋友初学的朋友都会问怎么输出Hex(可直接下载的文件),只需要勾选上【Project -> Options for Target -> Output】“Create HEX File”即可。

Keil(MDK-ARM)系列教程(一)_新建软件工程详细过程

 

C.C/C++配置

这个选项的配置参数比较多,对于大型项目来说比较重要,但对于初学者来说,只需要简单配置两项就行。

 

第一处配置—预定义

【这里只针对于STM32F103大容量芯片,其他芯片视情况而定】

Keil(MDK-ARM)系列教程(一)_新建软件工程详细过程

预定义STM32F10X_HD,有些工程还预定义USE_STDPERIPH_DRIVER。由于都是使用“标准外设库”,我个人习惯把USE_STDPERIPH_DRIVER,定义在stm32f10x.h文件里面,所以在这里就看不到我定义的这一项了。

 

第二处配置—包含路径

由于我们前面工程中有很多文件夹,因此需要添加对应的路径,这样编译器才能找得到。

Keil(MDK-ARM)系列教程(一)_新建软件工程详细过程

Keil(MDK-ARM)系列教程(一)_新建软件工程详细过程

Keil(MDK-ARM)系列教程(一)_新建软件工程详细过程

·

·

一步一步添加,直到最后完成

·

·

Keil(MDK-ARM)系列教程(一)_新建软件工程详细过程

 

D.选择下载调试工具

这个选项根据自己的下载调试器来选择(比如:ST-Link)

Keil(MDK-ARM)系列教程(一)_新建软件工程详细过程

E.下载复位并运行设置

有些初学的朋友说“为什么我下载程序之后,需要按一下复位键才能运行?”,只需要在工程中勾选上“Reset and Run”就可实现,下载完程序马上运行了。

Keil(MDK-ARM)系列教程(一)_新建软件工程详细过程

Keil(MDK-ARM)系列教程(一)_新建软件工程详细过程

 

至此,一个新建立的工程就算完成了(当然,我新建的文件是添加了正确的源代码),只需要编译,接上下载器就可以下载运行了。

 

Ⅴ、下载

为方便广大STM32学习者,我将常见的STM32“Demo软件工程”已经建好,,里面包含IAR for ARM新建的工程供大家下载。【如果没有你对应的芯片型号,你又想得到,可以给我留言“STM32FXXXxxDemo 工程”。我会做一个统计,如果某一型号芯片Demo工程有多人需要,我会考虑给你们写的。】

 

STM32F0工程模板:

http://pan.baidu.com/s/1pKSkSxt

 

STM32F1工程模板:

http://pan.baidu.com/s/1c1AWupM

 

STM32F2工程模板:

http://pan.baidu.com/s/1o8yGWg6

 

STM32F3工程模板:

http://pan.baidu.com/s/1boVXh2f

 

STM32F4工程模板:

http://pan.baidu.com/s/1qYzYMuS

 

注意:由于许多网盘近年来受到影响都相继停止服务或关闭了,如果网盘链接失效,请到官网下载,也可以关注微信公众号查看更新链接,或微信联系作者。

 

Ⅵ、说明

上面新建软件工程主要是针对初学者,写的比较基础的。若要了解更多关于Keil的使用教程,可以进入我微信公众号或博客查看。

 

上面内容有两处是动画,PDF不支持动画,可以进入微信公众号或博客查看,或者有什么问题可以给我公众号留言。

 

以上内容仅供参考,若有不对之处,敬请谅解。

 

Ⅶ、最后

我的网站:https://www.strongerhuang.com

我的微信公众号(ID:strongerHuang)还在分享STM8、STM32、Keil、IAR、FreeRTOS、UCOS、RT-Thread、CANOpen、Modbus…等更多精彩内容,如果想查看更多内容,可以关注我的微信公众号。

 

Keil(MDK-ARM)系列教程(一)_新建软件工程详细过程
微信公众号

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/142273.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • idea2021 激活码【中文破解版】

    (idea2021 激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~S32P…

  • vue.js与jquery的区别_说出两者之间的区别

    vue.js与jquery的区别_说出两者之间的区别jQuery:曾经是前端最流行的js库。Vue:是一个兴起的js库,是一个精简的MVVM。从技术角度讲。Vue.js专注于MVVM模型的ViewModel层,它通过双向数据绑定把view和Model层连接起来,通过对数据的操作完成对页面视图的渲染。二者的区别是:一、Vue和jQuery对比jquery是使用选择器()选取DOM对象,对其进行赋值、取值、事件绑定等操作,和原生的HTML的区别只在于可以更方便的选取和操作DOM对象,而数据和界面是在一起的。二、Vue则是通过Vue对.

    2022年10月16日
  • 银行家算法程序c语言,银行家算法代码c语言编写[通俗易懂]

    银行家算法程序c语言,银行家算法代码c语言编写[通俗易懂]《银行家算法代码c语言编写》由会员分享,可在线阅读,更多相关《银行家算法代码c语言编写(4页珍藏版)》请在人人文库网上搜索。1、defineM100#includeintmaxMM,allocationMM,needMM,availableM;inti,j,n,m,r;voidtestout()/算法安全性的检测intk,flag,v=0;intworkM,aM;charfi…

  • lombok插件介绍「建议收藏」

    lombok插件介绍「建议收藏」Lombok项目是一个java库,它可以自动插入到编辑器和构建工具中,增强java的性能。不要再写另一个getter或equals方法,只要有一个注释,你的类就有一个功能齐全的构建器,自动记录变量等等。lombok插件大大减少了java开发的工作量,让程序员更加关注业务逻辑的实现。实现的方法举例:get/set/toString/equals/hashCode/无参构造函数/全参构造函数等。lombok插件注解@Data//data是lombok使用最多的注解,自动生成get/set/

  • python zipfile.zipfile_Python file

    python zipfile.zipfile_Python filezip文件格式是通用的文档压缩标准,在ziplib模块中,使用ZipFile类来操作zip文件,下面具体介绍一下:classzipfile.ZipFile(file[,mode[,compression[,allowZip64]]])创建一个ZipFile对象,表示一个zip文件。参数file表示文件的路径或类文件对象(file-likeobject);参数mode指示打开zip文件的模…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号