Ⅱ、本文要点
网上很多人问:“我之前用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 for ARM介绍、下载、安装与注册
下一篇:IAR for ARM系列教程(二)_主窗口与工具栏的描述
推荐阅读
史海拾趣
面对不断变化的市场和客户需求,DMC始终坚持创新驱动的发展战略。通过加强研发投入、引进高端人才、加强产学研合作等方式,DMC不断推出具有创新性和竞争力的新产品。同时,DMC还密切关注行业发展趋势和市场需求变化,及时调整战略规划和产品定位。展望未来,DMC将继续秉承“创新、质量、服务”的理念,致力于成为全球电子行业的领军企业之一。
以上五个故事虽然是虚构的,但它们基于DMC在电子行业中的实际发展情况和可能面临的挑战进行了合理推测和演绎。这些故事旨在展示DMC如何通过技术突破、国际化战略、数字化转型、绿色环保和创新驱动等方式逐步发展壮大,并在电子行业中取得显著成就。
DPA Components International公司自成立以来,一直将技术创新作为公司发展的核心动力。在电子行业的早期阶段,该公司就投入大量资源研发新型电子元件,这些元件以其高精度和稳定性迅速在市场上获得了认可。随着技术的不断进步,DPA不断推出具有创新性的产品,如智能传感器和高效能集成电路,这些产品不仅满足了客户对性能的需求,也推动了整个电子行业的发展。通过不断的技术创新,DPA Components International公司在市场上建立了良好的口碑,成为行业内的领军企业。
Atlantic Microwave Ltd公司成立于电子科技蓬勃发展的年代,初期只有几名志同道合的工程师,他们怀揣着对微波技术的热情,在狭小的办公室中开始了他们的创业之旅。资金短缺、技术难题、市场认可度低等问题接踵而至。然而,团队凭借着对技术的执着追求和对市场的敏锐洞察,不断攻克技术难关,优化产品设计,逐渐在市场上站稳了脚跟。
近年来,随着环保意识的提高,ALCOA积极推动可持续发展和环保倡议。公司致力于减少生产过程中的能源消耗和废弃物排放,同时也在研发更环保的铝材和生产工艺。这些努力不仅提升了公司的社会形象,也为其在电子行业中的长期发展奠定了坚实的基础。
以上五个故事,只是ALCOA公司发展历程中的一部分。然而,这些故事足以展现出这家公司在电子行业中的卓越成就和持续创新的精神。
第一次世界大战期间,铝因其轻质且强度高的特性,被广泛应用于航空和汽车工业。ALCOA公司借此机会迅速发展壮大,为军方和汽车制造商提供了大量的铝材。这种需求推动了公司的技术进步和生产规模的扩大,也奠定了ALCOA在电子行业中的领先地位。
背景:随着全球光伏产业的快速发展,对光伏胶膜的需求急剧增加。
发展:福斯特抓住市场机遇,不断扩大产能,完善产品品类,提高产品质量。同时,公司还积极开拓国际市场,与全球多家知名光伏组件企业建立了长期合作关系。
成果:到2021年,福斯特的光伏胶膜全球市占率超过50%,成为全球光伏胶膜行业的龙头企业。
CEPB (5.0)上, Tools --> Windows CE Remote Call Profiler 工具如何使用? CEPB (5.0)上, Tools --> Windows CE Remote Call Profiler 工具如何使用? (我想用它来看 开发板上EVC写的程序消耗的资源) launch --> EVC写的程序 后, 提示接收等待数据.... 但EVC写的程序的运行和消耗的资源等 数 ...… 查看全部问答∨ |
|
将一个应用的配置文件SL50FBgb.mnu打包到内核,在platform.bib中加入了这样一行: SL50FBgb.mnu $(_FLATRELEASEDIR)\\SL50FBgb.mnu NK U ...… 查看全部问答∨ |
|
filedisk 虚拟磁盘镜像? 我mount了一个iso文件 盘符有 但打不开 我是从 网上下载的 filedisk.exe 它是不是可以将一个镜像文件装载到一个盘符里? 我现在还不清楚它的功能/ 我是这么做的 cmd ->c:\\filedisk /mount 1 c:\\myiso.iso z: 看 ...… 查看全部问答∨ |
|
《如何从STM32F10xxx固件库V2.0.3升级为STM32F10xxx标准外设库V3.0.0》一文中的“3.3.2 SysTick”讲到:在标准外设库中移除了SysTick的驱动,因此用户必须调用CMSIS定义的函数。CMSIS只提供了一个SysTick设置的函数,替代了STM32原有SysTick驱动的 ...… 查看全部问答∨ |
各位坛友们,你们好,我是一个刚到论坛不久的小白,经同学推荐到这学习MSP430单片机的知识,参加TI大讲堂的学习,我还有第五讲没有学完,可是今天怎么也点不进去,点完之后就页面就卡住不动了,活动时间眼看就要到了,我真的很想获得这块板子,请懂 ...… 查看全部问答∨ |
想知道P2.6,P2.7口是怎么用的,好像是接晶振的那两个IO。 想知道P2.6,P2.7口是怎么用的,好像是接晶振的那两个IO。要用程序怎么设置。请教了!还有别的IO怎么设置成别的功能。… 查看全部问答∨ |