IAR for ARM系列教程(一)_新建软件工程详细过程

发布者:meilidaowl最新更新时间:2019-09-18 来源: eefocus关键字:IAR  ARM系  新建软件工程详 手机看文章 扫描二维码
随时随地手机看文章

Ⅱ、本文要点

网上很多人问:“我之前用IAR for ARM V5或V6建立好的工程,在IED升级到V7之后,打开以前的工程,编译出来一大堆错误?”。


IAR for ARM在版本升级之后,工具链存在略微的差异,下面新建工程过程将会说到这些问题。


按照Keil(MDK-ARM)新建软件工程的思路,将内容分为准备工作和新建工程两大步骤来讲述。


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


本文讲述的内容以简单为主,只讲述新建工程中常规的配置,其他大部分使用默认配置。更多详细配置和教程敬请等待我公众号或博客的更新。


Ⅲ、 准备工作

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


1.安装IAR for ARM软件工具

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


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


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


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),如下图:

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


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


3.整理工程文件夹

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


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


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


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


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


_htmresc:图片文件夹(不提取)


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


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


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


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


这里强调一点:Libraries里面的startup启动文件有些需要修改。我们使用之前的库(如F1、F2的库),这些库是使用老版本的IAR for ARM V5或V6版本编写的,在V7版本上使用这些库就不兼容,需要将text:CODE:REORDER改为text:CODE:NOROOT:REORDER。


B.新建文件和文件夹


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


App: 应用部分代码


Bsp: 底层部分代码


Doc: 说明文档


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


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

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


Ⅳ、新建软件工程

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


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


1.创建工程

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


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

B.创建一个空工程

C.选择路径,保存名称

D.空基础工程

至此,一个空的基础工程就创建好了,需要进一步添加文件到工程和配置工程。


2.添加文件

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


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


IAR和Keil组管理的区别:


IAR可以添加多级组,类似于文件夹下可以再建文件夹,一直下去。


Keil只能添加单级组,类似于文件夹下面只能添加文件,而不能在添加文件夹。


为了简单、遵循Keil组结构,我们在IAR中分组方式也按照Keil方式分组,先在工程中添加组,再在组中添加文件......一次循环下去直到完成。


A.工程中添加组

B.填写组的名称 -> OK

C.组中添加文件

D.按住Ctrl,鼠标选中要添加的文件

E.依次添加(按照上面步骤循环),直到添加完成


3.配置工程

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


A.进入配置选项

B.选择器件

C.库配置Library Configration


第一Library:如果需要使用某些标准的库函数接口(如我们使用的printf and scanf),就需要选择Full(见下图)。


第二CMSIS:是微控制器软件接口标准(Cortex Microcontroller Software Interface Standard)的意思。IAR for ARM在V5和 V6、V7版本之间存在差异,很多人用新版本IAR编译以前工程出现错误的原因就在于此(如STM32F1的库就使用较老版本的CMSIS,我们使用新版本IAR就需要勾选这里)。

D.预处理Preprocessor - 添加路径


添加的路径最好是相对路径,而不是绝对路径。使用绝对路径工程位置改变之后就找不到文件,就会出错。可以点击按钮选择路径,也可以通过复制文件路径进行配置。

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


E.预处理Preprocessor - 预定义


这里的预定义类似于在源代码中的#define xxx 这种宏定义。这里的STM32F10X_HD可以在stm32f10x.h中打开即可,USE_STDPERIPH_DRIVER这个宏定义我已经定义在在stm32f10x.h文件中。

F.输出Hex文件


很多初学的朋友都会问怎么输出 Hex( 可直接下载的程序文件),只需要按照下面配置即可输出Hex文件。


G.选择下载调试工具


根据自己情况选择的下载调试工具。使用ST-Link的朋友需要注意,有些时候ST-Link默认的接口是JTAG,需要改为SWD才能使用(见下图)。

Ⅴ、下载

为方便广大STM32学习者,我将常见的STM32“Demo软件工程”已经建好,里面包含Keil(MDK-ARM)新建的工程供大家下载。


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的使用教程,可以进入我微信公众号或博客查看。


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

关键字:IAR  ARM系  新建软件工程详 引用地址:IAR for ARM系列教程(一)_新建软件工程详细过程

上一篇:IAR for ARM介绍、下载、安装与注册
下一篇:IAR for ARM系列教程(二)_主窗口与工具栏的描述

推荐阅读最新更新时间:2024-10-30 10:47

应用编码标准和自动化工具,提高代码质量
嵌入式系统在我们的日常生活中广泛存在,从消费类电子、医疗设备,到汽车,工业控制,航空航天等,它们的存在已经成为我们生活中不可分割的一部分。随着技术的不断进步和客户需求的增加,嵌入式系统和软件变得越来越复杂,同时产品的开发周期变得越来越短。如何在短时间内开发出高质量的软件对产品的成功起着决定性的作用。 本文将介绍如何应用编码标准和自动化工具,提高代码质量。 关于代码质量 代码质量总体上是指为软件编写的代码的整体优良水平,一般可以通过下面一些指标来评价代码质量:  可读性:代码应该易于阅读和理解,即使是不熟悉项目的人也是如此。  可维护性:代码应该有条理和模块化,可以方便地修改和更新。  可移植性:代
[嵌入式]
应用编码标准和自动化工具,提高代码质量
IAR For STM8工程改名
将一个IAR For STM8的老工程改名,用于新工程的编辑修改。 1.在EWSTM8的路径中,有如下4个文件。 2.将这4个文件重命名 3.用记事本打开重新命名的Templates.eww文件,修改如下地方。 4.修改后如下: 5.清理工程并重新编译 6.修改如下位置 7.最终工程如下:
[单片机]
<font color='red'>IAR</font> For STM8工程改名
IAR STM32 函数和变量的绝对地址定位
昨天我突然冒出个想法,能否利用函数和变量的绝对定位,实现程序的模块化更新。 也就是说,如果我要改变某个函数,只需要更新flash里面一个局部,也许只需要更新几百个字节,而无须重新下载整个上百K的程序。 经过查找资料和反复实验,终于实现了,现总结如下: 1) 把函数定位在FLASH高端的指定位置,以后更新,只更新那小块地方就可以了。 方法一: IAR里面进行函数定位, 必须要在.icf里面,进行定义。 void sendstr(unsigned *buf,unsigned short len) @ .sendstr { .... } .icf文件,加入这样一句: place at add
[单片机]
IAR使用STLINK下载出现Fatal error的解决方法
问题描述:在使用IAR时,使用ST-Link进行代码下载,出现了如下问题 解决方法如下: 1.在工程处右键进入选项 2.进入ST-Link选项卡 3.将Interface选项更改为SWD 4.修改后即可成功下载 K60可以说是一个比较娇气的控制器,出现fatal error的原因不只这一种,如果改过之后还不行,那么试试解锁之后还会不会出现这种情况。
[单片机]
<font color='red'>IAR</font>使用STLINK下载出现Fatal error的解决方法
IAR软件中直接查看编译后代码大小
  在使用IAR软件编译代码时,编译后往往看不到编译后代码的大小情况。在调试程序的时候还是比较麻烦的。下面就总结两种最简单的方法在IAR编译器中查看代码大小。   通过输出的编译信息查看   IAR默认的编译信息输出很少,基本就只能查看一下错误和警告的数量。   如果想要输出更多的编译信息,在这个Messages信息框中,单击鼠标右键选择All。   这时再重新编译一次代码。   此时就可以看到编译信息输出了很多,其中就包括了代码占用空间情况。这样通过一个简单的设置就可直接在编译器输出信息中查看代码的大小了。   通过输出map文件查看   如果想要查看更详细的代码内存占用情况,可以通过输出map来查看
[单片机]
<font color='red'>IAR</font>软件中直接查看编译后代码大小
IAR for AVR 报array is too large错误 【已解决】
解决办法: 工程右键,options - General Options - Memory Model 改为 small
[单片机]
<font color='red'>IAR</font> for AVR 报array is too large错误 【已解决】
STM32通过命令行编译和下载keil和IAR工程的方法
可能很多人都不习惯使用Keil、IAR自带的编辑器,可能代码补全、错误提示、高亮等编辑功能相对来说支持的不是很好。 虽然Keil MDK 从 V5.25版本开始对编辑功能改善了很多,但是很多人还是青睐于第三方的编辑器。 使用第三方的编辑器,如果需要编译和下载,就需要借助通过额外的方式实现,比如本文即将描述的通过命令行编译和下载的方式,可以让我们在使用第三方编辑器编辑的时候,进行代码编译和下载。 下面我们来描述以下内容: 常用代码编辑器 Keil 命令行编译下载 IAR 命令行编译下载 编译下载使用方法 1、常用的代码编辑器 下面介绍几款常用的代码编辑器: 1.VS Code VS Code 是绝大部分软件工程师都在使用
[单片机]
STM32通过命令行编译和下载keil和<font color='red'>IAR</font>工程的方法
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved