|
今天弄了一下使用SlickEdit调用IAR工程编译的使用方法,成功分享给大家。
刚刚适应了一段时间使用IAR环境开发M16C单片机程序,已经相对比较习惯了,因为之前用ARM的时候接触过IAR,配置使用也比较容易,使用的版本是IAR for M16C/R8C V3.5版本,安装文件为CD-EWM16C-3501.ZIP,本想找个V3.6的,实在找不到,希望好心人提供个啊。
之前开发M16C使用的是TM Tools,也接触过一段时间的HEW,其中TM Tools太古老,好像还是东芝的东西,HEW新倒是新,但是过期后有64K程序的限制,而且感觉也不大好,然后知道IAR支持M16C芯片,就转而向IAR了,而且IAR支持的芯片较多,掌握了一种单片机的编译使用,其他的就容易多了。
IAR作为一个编译器确实不错,支持各类单片机的程序编译,同时对地址配置等也通过XCL文件,比较灵活,但是其编辑器确实不敢恭维,实在不怎么样啊,虽然也一直在改进,但毕竟不如人家专业的程序编辑器好用,对于编辑器,身边很多人喜欢用Source Insign,但是我怎么都不习惯那忽大忽小的字体,以前一直是使用VC+VCA插件下进行的,感觉还不错,不过后来发现了一个更强大专业的跨平台编辑器SlickEdit,毅然投入使用,功能确实强大,代码格式化,自动补全,程序跳转,书签等等功能都有,还跨Windows/MAC/Linux平台(虽然目前只在Windows上用),更强大是有各种如VIM/VC环境的模拟,到现在还是在摸索当中。当然这个软件也有个不好的地方,单这编辑器安装包就100多MB,实在是有些大,启动也稍慢,不过功能实在强大,忍了。
有了好用的编译器IAR,又有强大的编辑器SlickEdit,但是还是头疼:每次修改程序的时候,都是在这个窗口修改,然后切换到那个窗口去编译,发现错误之后,再跑回编辑器窗口修改,还得找在哪个文件的哪一行错了,实在辛苦。
因此想,以前听说UltraEdit就能通过调用命令行把自己变身成一个编译器,SlickEdit这么强大,怎么可能不行?于是网上搜索,果然有人去做过相关的尝试啊,前人栽树,后人就来乘凉了,对我帮助较大的文章来源这里:
http://blog.csdn.net/xuzhenglim/article/details/6938132
好,废话说太多了已经,直接开将怎么弄:
1. 自然是得先安装好IAR和SlickEdit。
2. 设置一个IAR的bin文件夹路径的环境变量,如IAR_PATH_M16C(后面要用到,如果不想设可以跳过这步,后面直接用程序路径即可)。
额,环境变量怎么设置? 好吧,默认肯定都会,不会的参考以下操作(Window7系统):
说明一下,这里的值为IAR的common内的bin文件夹路径,因为我们要用到该路径下的一个程序文件IarBuild.exe通过命令行来执行IAR项目的编译操作。
如我的设置如下:
变量名:IAR_PATH_M16C
变量值:d:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\common\bin
3. 打开SlickEdit,建立项目模板,这样配置完模板一次后,以后直接使用模板建项目即可自动实现编译IAR的功能,具体操作如下:
此处说明一下,我将工作目录选在..\是因为习惯将SlickEdit的工程相关的文件(一共4个:.vpj,.vpw,.vpwhist,.vtg)单独放在一个名为SlickEdit的目录下,而该SlickEdit目录则放在IAR的工程文件夹下面,因此这里设为..\是为了设置工作目录为IAR的工程文件夹目录,这里的工作目录设置,在之后将被%rw(项目工作目录)调用。
之后的includes路径,我设置的如下:
d:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\m16c\inc
d:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\m16c\inc\clib
d:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\m16c\src\lib\clib
IarBuild.exe命令行参数参见IAR的帮助文档,在安装文件夹的doc内,直接截图过来如下:
用以上9~13步骤建立几个工具,我的Tool有以下:
Debug配置下:
Build:
"%(IAR_PATH_M16C)\IarBuild" %rn.ewp -build Debug -log warnings
Make:
"%(IAR_PATH_M16C)\IarBuild" %rn.ewp -make Debug -log warnings
Clean:
"%(IAR_PATH_M16C)\IarBuild" %rn.ewp -clean Debug -log warnings
Release配置下:
Build:
"%(IAR_PATH_M16C)\IarBuild" %rn.ewp -build Release -log warnings
Make:
"%(IAR_PATH_M16C)\IarBuild" %rn.ewp -make Release -log warnings
Clean:
"%(IAR_PATH_M16C)\IarBuild" %rn.ewp -clean Release -log warnings
PS:截图里还有一个Down,本来想做自动下载的,不过使用的FDT串口下载工具好像没有命令行操作方式,其他芯片如ARM使用Jlink的话应该可以再增加一个下载工具,参考以上及Jlink工具的命令行帮助实现。
这个步骤属于个人喜好,可有可无了,它默认会自己有一个分类,不需要的跳过这段,我的设置如下:
Source Files - 用来编译的源码,如C等
*.c;*.C;*.cc;*.cpp;*.cp;*.cxx;*.c++;*.s;*.asm;*.a30;
Header Files - 包含的头文件,配置等
*.h;*.H;*.hh;*.hpp;*.hxx;*.inc;
XCL Files - IAR的Link配置文件,单独放
*.xcl;
Prj files - IAR项目相关的一些文件类型
*.dep;*.ewd;*.ewp;*.ewt;*.eww;*.dep;*.dbgdt;*.dni;*.bat;*.wsdt;*.wspos;*.mtm;*.mak;
Obj Files - 编译源码后生成的中间目标文件
*.pbi;*.r34;*.lst;*.cout;*.pbd;*.browse;*.r30;
Slick Files - SlickEdit自己的项目文件
*.vpj;*.vpw;*.vpwhist;*.vtg;
Out Files - 最终输出的可执行文件
*.map;*.mot;*.x30;*.bin;*.hex;*.s19;*.a34;
Oth Files - 其他文件
*.*
4. 建立一个完全的IAR项目,并进行相应的配置,就跟只用IAR开发一样的了,就是最后要生成一个xxx.ewp的IAR项目文件。
一句话说,这个IAR项目要在没有SlickEdit干预下,自己是完整的,能够编译链接的,要是这个都没调明白,还是先弄好IAR再说。
5. 使用之前建立的项目模板“IAR for M16C Projects”建立一个SlickEdit的项目,建立项目跟之前建立项目模板类似,通过Project->New..
打开SlickEdit的工程目录,查看其工程按之前设置的后缀进行分类管理:
点击Build,将自动调用IarBuild进行编译,并在下发的Build窗口中输出编译信息:
故意弄个错误出来,去掉一个分号:
双击错误提示行,直接跳转到错误产生文件的错误行281内:
修改后直接Ctrl+M再次编译,无错误。
再试Make及Clean的功能,同样有效,直接在SlickEdit的窗口里修改程序,然后编译,跳到错误行改错,方便许多。
注:细心的同学会发现,为什么Build会有个Ctrl+M的快捷方式呢?这个也不是太清楚,可能因为他叫Build比较特殊,因为查看快捷键绑定,发现Ctrl+M绑定的操作是Project-build:
依此类推,再查看其它project-...的操作项,还有好多,可能叫不同的名字再绑定快捷方式就可以了,有兴趣同学可以试试,我只要这个Ctrl+M的Build就够了:
(快捷方式查看及修改:Tools -> Options -> Keyboard and Mouse -> Key Bindings -> 查看/设置)
PS:这些project-...的操作除了可以通过绑定快捷键方式实现快速调用外,还能做成一个个的工具按钮放在界面上的工具栏的哦,SlickEdit这个软件的定制性确实是太强太强了,再次感慨下...
6. 总结:
这里其实跟M16C啥芯片的每太大关系,主要是IAR编译器,因此理论上所有IAR支持的芯片都可以参考使用这个方法用SlickEdit作为编辑器+编译操作工具来开发,其他相现在如火如荼的ARM,老8051,AVR等都可以试试。这里主要值得称道的是SlickEdit的命令行调用和错误信息捕抓功能,IAR周到的IarBuild.exe命令行项目编译功能,从这里就看到程序支持命令行操作的重要性啊,好多程序都忽略了这个功能,殊不知有许多场合需要这种原始的命令行调用来实现方便的功能,像我用的下载软件就没这功能,还的点啊点,郁闷~
这个方法有个不算缺点的缺点吧,就是提前是必须要先用IAR建立一个正确配置的工程,然后再以这个工程为基础进行编程编译(建立完工程后,IAR就可以关掉了,只使用SlickEdit即可,除非要修改编译选项之类的还是得进IAR),一句话概况就是只是简化了软件调试过程中来回切换,最大化的使用了有效编辑器SlickEdit的功能,提高效率。
最后,SlickEdit还是很强大的,还在摸索中,但是现在来看比较推崇有以下功能:
a.超强的自动代码补全,支持各种复杂的数据结构,什么包含结构体的共同体的都没有问题;
b. 代码格式化Format功能,一键操作保证所有代码的格式一致,既美观又方便;
c. 文件模板Template功能,支持自定义程序文件模板,新建程序只需从模板建立,方便,而且能保证一致;
d. 自定义代码插入功能Alias,能定义一些自己的操作,可以实现快速建立函数等;
e. 各类编辑器的环境模拟,目前正在习惯其VIM的操作环境;
f. 有一个ReName的功能,可以一次性搞定变量/函数/宏/...的修改,而不用担心会影响到其他区域,即能自动识别该标号的作用域,并只修改有效作用域内的名称,非常棒;
g. 支持注释文档,如JavaDoc式的/** */,并且会自动在鼠标放在函数上时进行文档格式化提示;
h. 支持预编译的查看摸索,对于由一堆#define宏来裁剪的程序,可以隐藏掉被该宏裁剪掉的代码,只看编译器能看到的有效代码(有点不够完美的就是好像每次只能处理一个宏?)
i. 还有就是今天试的功能,能够通过命令行调用编译器进行程序编译,更完美的是能自动扑抓编译输出信息,并定位错误代码位置。
j. 其他还有许多好用的小功能了,如强大的快捷键、漂亮的配色、支持n多的语言、还跨平台啊等等,听说还有自己的一个Slick-C语言的解析处理,还没研究。
完全手打啊,累够呛,部分是参考网上资料而来,分享给大家,希望对大家有帮助,应该完全可以用到其他IAR支持的芯片上,SlickEdit这个编辑器着实不错(除了大了点),也希望大家能多交流交流。
最后,做成PDF,有需要的可以下载下来看。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!
|