做网站的软件m开头,网站建设公司问候语,微信营销策略,建筑公司发展规划IAR到环境配置到新建工程模板-以STM32为例 一、 简单介绍一下IAR软件1. IAR的安装#xff08;1#xff09; 下载IAR集成开发环境安装文件#xff08;2#xff09; 安装 2. 软件注册授权 二、IAR上手使用(基于STM32标准库新建工程)1、下载标准库文件2、在IAR新建工程#x… IAR到环境配置到新建工程模板-以STM32为例 一、 简单介绍一下IAR软件1. IAR的安装1 下载IAR集成开发环境安装文件2 安装 2. 软件注册授权 二、IAR上手使用(基于STM32标准库新建工程)1、下载标准库文件2、在IAR新建工程1新建工程文件目录2工程所需库文件准备3新建IAR工程4添加标准库文件到工程中 3. 配置当前新建工程的环境1选择单片机型号2添加库文件和路径以及宏定义 4、程序编译测试 三、结语 一、 简单介绍一下IAR软件
瑞典著名软件开发商IAR Systems公司2014年推出了最新版本IAR Embedded Workbench For ARM V7.1 (简称IAR EWARM V7.1它是一种增强型一体化开发平台其中完全集成了开发嵌入式系统所需要的文件编辑、项目管理、编译、链接和调试工具。IAR公司独具特色的CSPY调试器不仅可以在系统开发初期进行无目标硬件的纯软件仿真也可以结合JLink/JTrace硬件仿真器对用户系统进行实时在线仿真调试。
IAR的Embedded Workbench系列是一种增强型一体化嵌入式集成开发环境其中完全集成了开发嵌入式系统所需要的文件编辑、项目管理、编译、链接和调试工具。IAR公司独具特色的C-SPY调试器不仅可以在系统开发初期进行无目标硬件的纯软件仿真也可以结合IAR公司推出的J-Link硬件仿真器实现用户系统的实时在线仿真调试。如今软件本版已经更新到9.40。IAR的Embedded Workbench系列源自浏览器(Source Browser)功能利用符号数据库使用户可以快速浏览源文件可通过详细的符号信息来优化变量存储器。文件查找功能可在指定的若干种文件中进行全局文件搜索。还提供了对第三方工具软件的接口允许用户启动指定的应用程序。IAR的Embedded Workbench系列适用于开发基于8位、16位以及32位微处理器的嵌入式系统其集成开发环境具有统一界面为用户提供了一个易学易用的开发平台。IAR公司提出了所谓“不同架构惟一解决方案”的理念用户可以针对多种不同的目标处理器在相同的集成开发环境中进行基于不同CPU的嵌入式系统应用程序开发有效提高工作效率节省工作时间。IAR的Embedded Workbench系列还是一种可扩展的模块化环境允许用户采用自己喜欢的编辑器和源代码控制系统链接定位器(XLINK)可以输出多种格式的目标文件使用户可以采用第三方软件进行仿真调试和芯片编程。2022年3月16日嵌入式开发软件和服务的全球领导者IAR Systems日前宣布其专业开发工具链IAR Embedded Workbench® for RISC-V现已支持64位RISC-V内核。凭借此次在内核支持能力方面的扩展IAR Systems在为RISC-V提供专业开发解决方案方面继续走在前沿。 注以上资料来自网络 1. IAR的安装
我们所说的IAR for ARM其实是Embedded Workbench for ARM即嵌入式工作平台在有些地方也会看见IAR EWARM其实它们都是同一个集成开发工具软件只是叫法不一样而已。开发的一个集成开发环境(简称IAR EWARM也简称为IAR for ARM)。比较其他的ARM 开发环境IAR EWARM 具有入门容易、使用方便和代码紧凑等特点。AR for ARM现在2016年10月最新版本V7.80支持的器件包含Cortex-A、Cortex-R、and Cortex-M系列等多大几千种具体可以到IAR官方网站https://www.iar.com/查看。初次接触它的人可遇见不同的版本可能会误以为不是同一个软件其实是因为IAR更换logo比较频繁在笔者写本节教程前夕官方又更换了其logo如文章开头的配图中所示。
1 下载IAR集成开发环境安装文件
打开官网https://www.iar.com/iar-embedded-workbench下载新版试用14天或者购买许可也可以从网上寻找第三方资源下载旧版本。IAR的安装过程大同小异此处笔者以7.8作为教程演示。当然了因为某些特殊原因笔者此处描述可能略有不详还请结合网上的其他教程。
2 安装
IAR for ARM集成开发环境的安装比较简单基本上就是一路Next下去。还是按照常规安装教程讲述一下吧以上面下载的“EWARM-CD- 7702-11710.exe”软件为例讲述。
1、首先是找到所下载的软件安装包双击软件安装包程序运行等待计入如图页面选择第二个B并点击安装IAR。
2、在安装向导界面点击下一步后在新界面选择选择接收许可协议条款如图然后点击下一步。 3、在如下界面点击 Change 选择安装路径默认C盘如果你的C盘空间比较大可以默认不用改个人习惯此处笔者安装到D盘目录点击下一步 。
4、在如下界面勾选需要安装调试的驱动默认安装所有但你可以根据个人情况安装去掉不需要或用不到的驱动以节省安装时间和内存空间点击下一步 5、 如下图选择安装程序文件夹这里如果没有特殊需要默认即可若你安装多个版本的IAR可以更改文件夹名称并将不同版本的IAR安装到此目录下点击下一步在洗一个界面提示安装路径、驱动等是否装备好安装点击 Next 开始安装。
6、安装过程大概有几分钟需要等待然后在弹出的提示框中选择 是(Y)进入驱动安装过程。
7、等待驱动安装完成弹出软件安装完成的提示在此处有两个选项这里都不选择点击下方 Finish 。
8、如图在安装向导界面选择 Exit 退出安装管理界面。
2. 软件注册授权
完成了IAR的安装是不能够满足使用的你还需要注册关于注册IAR软件的注册是相对复杂一点的此处不做过多说明详细教程网上很多请自行参考也可以参考这个IAR软件安装图文教程。在官网软件下载网页有相应的软件授权许可提示信息没有授权的软件仅可试用两周的时间且对编写的程序大小也做了相应的限制。 IAR for ARM是一个收费的软件官方严厉打击盗版若你是商业用途建议购买正版授权软件DIY玩家无所谓了。
二、IAR上手使用(基于STM32标准库新建工程)
以下笔者将基于ST标准库新建STM32工程来介绍IAR如何配置工程环境。首先需要准备两样东西STM32标准库和IAR集成开发环境。
1、下载标准库文件
STM32的标准库可以直接去官网https://www.st.com/zh/embedded-software/stm32-standard-peripheral-libraries.html下载不一定需要使最新的版本选择适合的就可以。 值得注意的是虽然在国内ST设立了官方站点可以轻松打开访问如上页面但有些时候选择好了版本点击下载时在弹出的邮件确认信息反馈可能会有延迟或web页面收不到你确认邮件后的下载请求信息不过一些热心的网友下载玩完成后将其共享了出来大家可以直接在一些论坛搜索到并下载例如笔者在大学的时候经常去逛B站啊、技术论坛之类的还在CSDN上进行一些嵌入式学习笔记和技术心得等创作也得到过许多人的认可和点赞。
– - - - - - - - - - - - - 一点点废话 - - - - - - - - - - - - - - - - - - - - * 对于一个初学者而言兴趣是最好的老师而在诸多的技术论坛上有许许多多的有趣的开源项目当你看到他们通过自己编程设计做出来的东西或趣味十足或科技炫酷每当我看到诸如此类的东西内心都非常的激动很想自己动手制作一个比他们的还要高级的所以啊者就是我坚持学习的最初动力啊来源当然也不排除对技术的热爱或者对未来事业的一丁点长久考虑。言归正传接下来从新建工程开始了解主流嵌入式开发软件的基本使用流程。
我用的是F1系列如果你用的不是F1系列那么打开上面的链接后找到对应的标准库下载。下载解压完如下图这里可以看到版本是v3.5.0。
其中文件夹里面有IAR和MDK的示例工程也有其他编译器的示例工程以及相关外设的驱动例程程序。在这里选择我们所需要的一种开发工具即可不会用到所有的例子同时如果我们没有买官方的开发板它的例程摸板也不能直接使用。我们只需要将关键的库文件复制到自己新的项目文件目录下根据实际中自己所用开发板的资源进行开发修改或编写对应的应用即可。
2、在IAR新建工程
整个流程概括为复制库文件到项目工程磁盘目录 - IAR新建工作区新建工程 - 向IAR工程添加工程磁盘目录下的文件 - 新建并配置IAR工程-正常编译。为了让更多初学者能过够清楚和明白可以安装下面的详细教程操作。
1新建工程文件目录
选择一个合适的磁盘目录新建一个英文工程名作为新建工程的总目录切记这个工程目录文件夹不能包含中文同时尽量减少文件夹所在路径长度和路径中空格的出现。原因是如果中文路径和过长且复杂的路径会使得程序编译慢最重要的时一些跳转操作将不能正常使用。
可以看到笔者在新建目录时还建立了一个MDK的子目录这是因为为了方便后期工程模板的通用性和可移植性将IAR和MDK目录 提前建立好方便后期操作同样地在该文件目录下还添加了一个删除无编译过程产生的临时文件的。实际上IAR和MDK在ARM系开发尤其STM32等系列单片机上的开发使用大同小异只是工具的使用上和工具环境配置上有些差别但总体相差不大。笔者对基于标准库新建STM32 IAR工程做了一个简单的结构概括如图当然了这些文件夹分类可根据自己的喜好进行调整只要IAR里对应路径引用正确就可以。
当熟悉MDK的同学自然会更改好地理解当然了通过本教程的学习掌握IAR基于标准库文件新建工程的结构和方法后对MDK新建工程的文件结构也会有所帮助相对而言MDK甚至要更简单一些在此没有用到故不多赘述有兴趣的可以参考网上的优质教程上面的文件结构是笔者个人习惯的方式不一定就合理正确这个根据实际使用情况而定。
2工程所需库文件准备
将标准库STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template\EWARM文件夹里的 .icf 文件全部复制到IAR下的Config文件夹里。然后再将stm32标准库中STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Drivers里的两个文件复制到自建的STM32F1xLIB\Libraries下的Libraries文件夹里。
将标准库中STM32\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template 下的 .c和 .h文件分别复制到新建工程文件夹中的两个目录中也可以直接放到User目录。
最后就是将标准库CMSIS目录下两个问价夹里的文件分别复制到新建工程文件夹中对应将其中CM3\DeviceSupport\ST\STM32F10x里的startup文件复制到新建的STM32F1xLIB\CMSIS\startup中即可。
3新建IAR工程
打开IAR软件在上边菜单栏选择 找到并点击确认。
在弹出的工程模板选项界面选择第一个 也就是空的工程接着点击。
如上图当点击确定后让你选择保存工程的选择这里找到我们一开始咋磁盘目录新建的工程目录文件夹因为时IAR工程所以将其保存到对应的IAR目录下并输入文件名STM32F1xLIB并点击保存由于我已经保存过一次所以可以看到在文件夹中已经有了对应的文件下表面保存工作空间的也是一样。
确定保存后会返回到IAR界面此时继续在左上角的菜单栏选择找到 Save Workspace 点击进入保存工作空间操作。同上面保存工程一样我们将工作空间也保存到IAR目录下一般习惯是将工作空间命名与工程名称一致当然了IAR支持一个工作空间下建立多个工程通过打开不同工程让其处于活跃状态让你操作但一般情况一个工作空间我们用不着也就不做区分了。
4添加标准库文件到工程中
首先选择工程并右键点击根据工程结构大致添加到目录
需要注意的是这里是笔者建立的工程目录结构仅供参考因为这个不是一定要建立文件夹如果你觉得建立文件夹比较麻烦那也可以将所有用到的文件直接添加到工程中但是这样可能会因为文件比较多导致在写代码过程中一时间找不到想要的那个所以笔者还是建议建立几个文件夹和文件目录对应库文件和用户文件做一个简单的区分以便于修改操作时快速定位到目标文件。
保存完成后接下来就是相关的环境配置也许你会觉得自己只是新建一个工程为何如此复杂但其实者写都是为了后面的程序编写开发工作做一个减法新建一个好的工程模板并配置好相应的设置那么以后便可以直接使用模板建立相同类型的新工程只需要替换对应库文件和做一些很小的环境改变。
3. 配置当前新建工程的环境
1选择单片机型号
如图所示有三种方式可以进入工程配置界面还有一种是在空白处右击鼠标进入。
IAR新建空白工程不像MDK在一开始不会让你选择具体型号的单片机而是在工程建立完成后的配置环节进入配置界面后首先选择自己的开发板型号打开Project-OptionsGeneral Options-Target-Device选择使用的芯片型号General Options-Library Configuration勾上Use CMSIS具体操作见下图 如图 依次选择自己所使用的芯片型号 2添加库文件和路径以及宏定义
在C/CCompiler-Preprocessor 选项栏中一处是配置头文件目录为了在每个程序文件中使用#include时不加上路径另一处是定义全局宏如下图配置 可以看到通过点选文件夹添加的路径时绝对路径这样不利于后期工程的移植此时可以选中该条路径点击向下小箭头选择第二个相对路径其中第三个是编译器中所带库的头文件路径避免工程移植和修改库文件的便捷性一般选择第二个就可以了。依次将新建工程中所有包含头文件文件夹路径添加上然后添加一处宏定义。 USE_STDPERIPH_DRIVERSTM32初始文件中用于选择不同的初始程序。STM32F10X_HD 告诉stm32初始文件编译程序目标型号对应FLSH大小以便确定程序代码起止空间地址等。
接下来是编译器的相关设设置主要用作编译链接所以首先需要配饰链接编译文件的路径。这里注意选择的是我们下载的ST官方标准固件库中配套例程所提供的后缀为.icf的文件注意选择完成后同样将绝对路径修改为相对路径这里没有选项修改可以直接复制前面头文件相对路径的前缀在输入框中直接编辑即可。 最后确定好下载或调试器选择配置Debugger在选项中选择自己使用的调试器如下图再里把前面的勾打上点击就完成了所有工程配置。
4、程序编译测试
这里我们将复制过来的main.c文件中的内容删除或者删除不需要的内容仅仅保留一个头文件和主函数。或者编写一个简单的闪灯程序进行编译烧录测试。
#include stm32f10x.h
static void LED_GPIO_Init(void)
{GPIO_InitTypeDef GPIO_InitStruct {0}; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); //使能GPIOC所在时钟GPIO_InitStruct.GPIO_Pin GPIO_Pin_8|GPIO_Pin_13; //引脚选择8和13GPIO_InitStruct.GPIO_Mode GPIO_Mode_Out_PP; //设置推挽输出GPIO_InitStruct.GPIO_Speed GPIO_Speed_50MHz; //电平翻转速度GPIO_Init(GPIOC, GPIO_InitStruct);
} //毫秒级的延时
static void delay_ms(int ms) //写一个简单的软件延时函数
{ int i0; while(ms--){i12000; //自己定义while(i--) ; }
}int main(void) //主函数
{LED_GPIO_Init(); //调用上面定义的初始化函数对GPIO进行初始化while(1)
{GPIO_SetBits(GPIOA,GPIO_Pin_8); //PA8 输出高电平GPIO_SetBits(GPIOC,GPIO_Pin_13); //PC13 输出高电平delay_ms(300); // 延时GPIO_ReSetBits(GPIOA,GPIO_Pin_8); //PA8 输出低电平GPIO_ResetBits(GPIOC,GPIO_Pin_13);delay_ms(300);}
}如果你前面的步骤完全是和笔者一样那么恭喜你此处一定会有一大堆报错仔细一看上百个。怎么办呢是不是想要放弃了 这才刚刚开始怎么能轻言放弃听我仔细道来。
因为ST官方推出HAL库后近年来主推图形化快速配置通过STM32cubeMX和STM32cubeIDE停止标准库的更新虽然从官方下在的库是3.5.0版本但由于缺少对其的维护个别文件版本一九很老所以再次不适配其中的一些函数啊模块的兼容。所以不能够直接使用而像IAR或者Arm MDK在更新自家工具版本的同时也会对其所支持的芯片固件库进行一个更新如果不使用官方下载的固件库新建工程而直接基于集成开发环境新建工程使用集成开发环境自带新版库则不太会出现这种问题。 言归正传解决办法其实是非常的简单粗暴的。主要基于是从IAR或者MDK自带库中复制一个直接替换新建工程中所使用的文件即可。这里因为“core_cm3.h”这个文件的版本较低导致不兼容所以直接替换找到安装IAR目录下的core_cm3.h复制到新建的ST32工程目录中替换对应文件 如果这里你觉的找个文件比较麻烦那还有一个办法就是直接把它在你的新建工程中删除或重命名其其他名称总之就是让编译器在你的工程文件夹目录下找不到即可。这样一来编译器则会自动从编译器自己的固件库中找到它。值得注意的是编译后还有如下报错
解决办法按照报错提示将C/C Compiler中的 Language conformance 从第二个修改为第一个保存并再次编译。 如图编译完成看到 “errors:0 ” 和 “ warnings:0 ” 的时候是不是顿时感觉自信心又回来了呢其实遇见错误并不可怕可怕的是没有一个鉴定信心去解决问题。笔者以前大多数用的基本都是MDK但只用MDK是不够的在工程师的眼里没有哪个工具是可以一直用到底的工具只多不少当你掌握的工具越多在处理一些问题时就有更多的选择而且这个解决问题的能力和方法乃至效率是会随着经验的积累不断的提升的。
三、结语
这片文章写于2023年4月份但由于个人比较忙没时间整理故才发布其中提到的新建工程的模板修改好了已经放至STM32 IAR-MDK通用工程模板。也可以从CSDNSTM32-IAR和MDK通用模板下载。笔者也是如有问题还请大佬指出。