Eclipse+IAR使用经验总结(持续更新)

由于工作需要吧,最近开始接触基于Eclipse环境下的嵌入式开发,因为以前一直都在用Keil,所以对新环境很不熟悉的我,一开始就碰到了很多乱七八糟的问题。这里做一次学习总结,一是为了总结一下经验,二是希望能够给初学者一点点可以借鉴的建议······
(本文依赖的环境是eclipse-win64-2020 + IAR8.3)

安装问题

虽然做嵌入式开发一般都是用C/C++,但是在安装Eclipse之前还是要先配置好Java开发环境,即先安装JDK并添加好环境变量(具体操作不再赘述,网上有很多教程);

然后安装开源软件Eclipse,具体过程没什么好讲的。

第三步,安装IAR,这款软件不开源,所以安装好之后还需要jihuo,具体的网上也有教程,这里不再赘述,jh工具应该也有,如果找不到就私信笔者吧。

第四步,配置Eclipse+IAR环境,教程点这儿,需要注意的是,上面的安装过程顺序最好不要搞反,否则在这一步可能会出错。最后一步配置的时候时间有点久,大家耐心等待。

第五步,如果要烧录程序,还要安装Jlink驱动。

到这儿,Eclipse+IAR环境算是搭建好了,下面就可以新建Project或打开已经存在的Project了。

新建Project

以stm32的库开发为例:
第一步:File ——> New ——> Project…——> 弹出下面的窗口:
在这里插入图片描述

选择C Project,点击下一步,得到下面的界面:
在这里插入图片描述
然后进入下一个界面(版本的原因,可能会出现界面不完全一样的现象),选择芯片类型,点击右侧的Browse选择相应厂商的芯片,比如本文要用到ST的stm32f1系列的芯片,具体的型号自己选择。
在这里插入图片描述

然后一路Next直到Finish即可。新建完项目后还不算结束,因为我们要用stm32的库函数开发,所以还需要把项目的结构搭建一下,首先是把库文件复制到我们刚才新建的项目文件夹下面。然后就是配置该项目了:主要包括两部分,定义符号(Define symbols)和设置文件夹的路径,如下图:

在这里插入图片描述
在这里插入图片描述
最后,再新建两个文件夹,一个用来存放主文件main.c,另一个存放用户的外设驱动文件,并把路径添加进去。然后在main.c里面写点内容编译测试一下,如果还报错见本文下一章节,如果没有就说明搭建成功了。注意在Define symbols的时候,xxx_HD是根据选用的芯片决定的,HD的意思是大容量(High Density)。

打开已有的Project

由于,接手的是半完成的project,所以我先走的是这一步。好像用Eclipse打开project的时候,不像Keil那样,后者会提供一个project入口文件,找到之后双击即可。但是前者就没这么友好了,它需要你自己导入project,教程如下:
第一步,点击File>import…,弹出下面的窗口:按箭头方式选好之后,点击Next。
在这里插入图片描述
第二步,会进入下面的界面:先选择好已经建好的project所在的路径,进入第一级就可以了,然后它会自动检索出可以打开的project,然后勾选项目名,然后自行决定是否要copy,因为启动Eclipse之前它会让你选一个文件夹,如果原有project和该文件路径不一样,最好勾一下,然后点击Finish就可以了。
在这里插入图片描述
第三步,检查原有project是否可以编译:点击左上角的锤子,就可以在下面的Console里面看到编译信息了。如果编译有错误,参考下一节。
在这里插入图片描述

常见编译错误以及解决方法

本节内容持续更新······
第一个可能的错误:

IAR–Fatal Error[Lc002]: could not open file “···\build\config files\xxx.icf” ,即找不到IAR config文件,一般是路径问题,在原project的文件(夹)里找报错的同名xxx.icf文件,然后复制其路径,最后按下图寻找相关设置:
在这里插入图片描述
第一步,单击工程右键,选最后一项Properties,然后按照上图找到settings这儿,然后就会看到倒数第二个箭头所指的位置,就是路径了,填充刚才复制的内容,最后点击Apply and Close,再编译就可以了。

第二个错误:
Error[Li005]: no definition for “__disable_interrupt” [referenced from xxx,
误原因是版本问题,我打开的project是基于IAR7.x的,而安装的是IAR8.x的,这还是有一点点去别的,解决办法,找到报错信息所在位置,然后用“__disable_irq();”代替即可,如果还有enable之类的,也用相应的“__enable_irq();”处理。然后再编译就可以了。

第三个警告:Type Symbol ‘xxx’ could not be resolved
此警告不会影响编译,但会影响函数跳转,一般即使添加了所有项目需要的依赖的头文件,include path也完整时,依然会存在该问题,重启eclipse项目也不行。解决办法:

Project -> C/C++ index -> Freshen all files,即可解决~

配置Jlink/Jtag调试环境

Jlink/JTag是嵌入式开发工程师常用的调试器之一。Eclipse+IAR环境支持代码调试,不过在调试或烧程序之前需要配置一些环境。下面是步骤:
第一步:新建基于目标project的debug选项,如下图:
在这里插入图片描述
在弹出的新窗口里面,按下图配置:
在这里插入图片描述
注意上图箭头的顺序,上图先在main选项卡里面配置,然后选中Setup选项卡,把调试环境改为Jlink/Jtag,如下图:
在这里插入图片描述

这样配置好以后,如果在左上角还出现“Sdk is not enabled for debugging”这样的字样,一般是IAR的问题。比如IAR的版本选择是否和安装的版本相照应?查看方法:选中Project单击右键,然后选择Properties,如下图:
在这里插入图片描述

使用小技巧

前面讲了几种编译错误的解决方法:
下面总结一些受用的小技巧:

  1. 快速注释,对于C语言,快捷键ctrl+/ 用“//”快速注释掉选中的部分;shift+ctrl+/ 用“/**/”快速注释选中的代码。

  2. 快速定位编译报错的地方,有两种方法:第一种是“ctrl+. ”;第二种是间接查找,即ctrl+f,会弹出查找字符串的窗口,该窗口也支持批量修改重复的代码。

  3. 代码自动补全,Alt+/ 。

  4. 生成.hex文件。此操作主要是为了方便在Proteus里仿真,设置方法为:
    在这里插入图片描述
    然后编译一下,就会生成“xxx.hex”, xxx 为project的名字。

  5. 持续更新。。。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值