0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 2020-03-20 14:54 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Ⅰ、写在前面

本文使用目前(2016年11月25日)最新版本的IAR for ARMV7开发环境、以STM32处理器为例给大家讲述新建一个软件工程的详细过程。

其它版本IAR,其它处理器新建软件工程的过程类似,或许存在略微的差异,但也可以参考本文内容。

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

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

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

Ⅱ、本文要点

网上很多人问:“我之前用IAR for ARMV5或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版本上使用这些库就不兼容,需要将textREORDER改为textNOROOT:REORDER。

B.新建文件和文件夹

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

App: 应用部分代码

Bsp: 底层部分代码

Doc: 说明文档

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

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

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

Ⅳ、新建软件工程

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

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

1.创建工程

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

A.打开软件,创建新工程(Project ->CreateNew 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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM
    ARM
    +关注

    关注

    135

    文章

    9499

    浏览量

    388721
  • STM32
    +关注

    关注

    2305

    文章

    11121

    浏览量

    371163
  • IAR
    IAR
    +关注

    关注

    5

    文章

    400

    浏览量

    38344
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    开源鸿蒙技术大会2025丨AI软件工程分论坛:智能创新,赋能开源鸿蒙软件工程

    师生深度参与技术交流联动。论坛由华为终端软件工程与IT装备部孙为国与开源鸿蒙AI软件工程SIG副组长王意明联合出品。此次论坛的成功举办标志着开源鸿蒙AI软件工程从技术探索步入规模落地阶段,预计2025年底将赋能10万+开发者。
    的头像 发表于 11-20 17:32 600次阅读
    开源鸿蒙技术大会2025丨AI<b class='flag-5'>软件工程</b>分论坛:智能创新,赋能开源鸿蒙<b class='flag-5'>软件工程</b>

    工程师变身AI“指挥者”,吉利与阿里云的软件开发变革实验

    1975年,IBM工程师Fred Brooks在《人月神话》中提出软件工程的核心难题:随着系统规模和团队规模增长,复杂度会呈指数级上升。他的结论是, 软件工程“没有银弹”,没有单技术
    的头像 发表于 11-13 10:43 201次阅读
    <b class='flag-5'>工程</b>师变身AI“指挥者”,吉利与阿里云的<b class='flag-5'>软件</b>开发变革实验

    rt thread 导入 iar 工程失败的原因?

    rt thread 导入 iar 工程失败的原因?
    发表于 09-29 08:36

    【RA4M2-SENSOR】1、开箱+新建模板工程

    新建模板工程 3.1 新建工程 之前也有评测过瑞萨开发板,E2S的下载安装教程可参考我之前的文章 。 这里直接新建个模板
    发表于 08-31 20:50

    大彩讲堂:VisualHMI软件如何自定义键盘

    、适合范围适合全系列大彩协议串口屏产品。二、教程实现2.1准备UI素材准备好相应的美工UI,如图2-1所示。.图2-1美工UI图2.2建立工程根据串口屏的实际型号,在VisualHMI软件工
    的头像 发表于 07-23 15:43 3524次阅读
    大彩讲堂:VisualHMI<b class='flag-5'>软件</b>如何自定义键盘

    IAR平台现已提供对Zephyr RTOS的量产级支持

    IAR宣布,其嵌入式开发平台正式推出对Zephyr RTOS的量产级支持。该支持自IARArm开发工具链v9.70起全面提供。
    的头像 发表于 07-09 15:43 349次阅读

    IAR Arm开发工具链中--function_sections编译选项的使用

    本文主要介绍在IAR Arm开发工具链中不修改源代码的情况下使用‑‑function_sections编译选项把函数放到单独的section。
    的头像 发表于 06-13 13:53 1514次阅读
    在<b class='flag-5'>IAR</b> <b class='flag-5'>Arm</b>开发工具链中--function_sections编译选项的使用

    基于 IAR Embedded Workbench 的自研 MCU 芯片软件函数与变量内存布局优化精控方法

    在嵌入式软件开发领域,MCU芯片软件的架构设计与内存布局的精细规划对系统性能和稳定性起着关键作用。本文档聚焦于IAR Embedded Workbench环境下,为自研MCU芯片软件
    的头像 发表于 04-30 16:38 589次阅读
    基于 <b class='flag-5'>IAR</b> Embedded Workbench 的自研 MCU 芯片<b class='flag-5'>软件</b>函数与变量内存布局优化精控方法

    IAR全面支持芯驰科技车规MCU芯片E3650

    2025年4月22日,全场景智能车芯引领者芯驰科技与全球嵌入式软件开发解决方案领导者IAR正式宣布,IAR Embedded Workbench for Arm已全面支持芯驰E3650
    的头像 发表于 04-23 15:45 1208次阅读

    如何成为名嵌入式软件工程师?

    如何成为名嵌入式软件工程师? 01明确岗位的角色与定位 嵌入式软件工程师主要负责开发运行在特定硬件平台上的软件,这些软件通常与硬件紧密集
    发表于 04-15 14:37

    Keil uVision 5安装包下载,详细安装教程~

    、点击Close关闭授权窗口。 15、软件安装与激活全部完成。 Keil5使用说明 确保已安装proteus及对应开发环境(Keil for ARMIAR)。 安装对应驱动:Keil
    发表于 03-15 12:10

    嵌入式软件工程师就业好不好?

    嵌入式软件工程师就业好不好?会不会越老越吃香?今天起来看看。 首先看下市场需求。 随着物联网、人工智能、5G等前沿技术的快速发展,嵌入式系统的应用领域不断扩大,从智能家居、汽车电子到工业自动化
    发表于 02-20 10:19

    Testin云测获智能化软件工程工作组优秀单位荣誉

    随着人工智能技术的深度应用,大模型等AI技术在推动软件行业智能化进程中的重要性日益凸显。软件工程,作为大模型、智能体等AI技术落地应用的前沿领域,正加速推进智能化转型。在这场变革中,企业、科研机构以及众多行业专家纷纷投身其中,共同探索智能化
    的头像 发表于 01-21 10:46 631次阅读

    IAR与紫光同芯合作,全面支持THA6系列汽车芯片

    近日,全球领先的嵌入式系统开发软件解决方案提供商IAR与业内知名的芯片及解决方案提供商紫光同芯携手宣布,最新版本的IAR Embedded Workbench for Arm开发工具链
    的头像 发表于 12-27 11:46 1599次阅读

    【RA-Eco-RA4E2-64PIN-V1.0开发板试用】MDK新建工程

    安装。 2.RASC 软件安装完成之后,还需要将 RASC 软件集成到 Keil 软件上面 3.新建工程 使用 RASC 自动生成
    发表于 12-14 18:23