SlickEdit把针对一钟编译器的配置叫做Package,一个非标准的术语。它自带VC++/Java/Borland C++的多个版本的配置,<br />还有Verilog/VHDL,以及一些不常见的语言的编译器配置,但没有ARM/KeilC/DSP等嵌入式处理器的编译配置,不过由于这些编译器跟<br />标准C/C++编译器差别不是很大,可以仿照一个建立自己的配置。最简单的办法是把别人建好的配置拿来用就是了,可以跳过本节^_^。自已建的方法:<br /><br />1.File/New...选Project,下面列出一堆Project类型,是不是很多眼熟的?SlickEdit的确是想一网打尽啊。漏网的不要紧,下面还有<br /><br />个"Customize..."按钮。<br /><br />2.点"Customize..."按钮打开"Customized Packages"页面,可以对已有的Package进行修改,也可以新建一个。我们要新建,点New...<br /><br />3.我们先搞定ARM的,名字取个"RVCT 2.2",copy Setting from 选Generic C/C++,即标准C/C++,不要选下面的GNU C/C++ Wizard,这个<br /><br />对混合了汇编代码的Project支持得不好。(ARM系统谁不用个汇编的Starup/boot?)<br /><br />4.点确认进入Project Package for "RVCT 2.2"页面:<br />a)Seting for下拉框里有Debug/Release/All Configuration三项,表明可以设置两个版本的编译参数。一般在ARM项目中,Debug作为用仿<br /><br />真器加载到RAM中运行的配置,Release为烧写到Flash中运行的版本,配置自然不一样。<br /><br />技巧:实际使用中发现改个参数进页面设置比较麻烦,恰好RVCT可以用via文件保存过长的编译链接选项,用scatter文件保存存贮分配,因<br /><br />此我们可以将有区别的选项放到via和scatter文件里,然后用点小技巧,将Debug和Realse里的设置设成一样的。<br /><br />b)Directories:空着就行了。要设的一般也只需要设Include目录,但RVCT 2.2和Keil C8.x的编译器都知道自己的inc目录在哪,就不用设<br /><br />了。如果有用户自定义的库,把相应的include目录加进来就行,也可以加在via文件里。<br /><br />Bug: SlickEdit有个搞笑的Bug,添加目录的地方有一行"<double click here to add another entry>",有时会出现多行这样的提示,以<br /><br />前老版本的还删不掉,现在2007版改进了些好,你把它关了重打开就消失了。<br /><br />c)Tools:这里是设置的重点!<br />设置举例:点Compiler,默认Debug/Release的参数设置是不一样,所以提示Select a Configuration to View the command,先选一个就<br /><br />是了,如Debug。<br /><br />将以下一行替换掉Command Line的内容:<br />%(RVCT22BIN)armcc.exe -c %i -o "%bd%n.o" "%f" --via viacc_%b.via<br />其含义后面再一起介绍。<br /><br />再选Release,复制同样的命令。<br />以上设置的是C/C++编译器,在Compiler下面有个"*.s"的子项,用来编译汇编代码的(汇编代码的扩展名在这里只能用*.s了,包括后面的<br /><br />Keil C的设置)。命令行用:<br />%(RVCT22BIN)armasm.exe -c -o "%bd%n.o" "%f" --via viaasm.via<br /><br />Link的命令行用:<br />%(RVCT22BIN)armlink.exe -o %RN_%b.axf %f %libs --via vialink_%b.via<br /><br />Build和Rebuil不用改动,里面用的vsbuild是SlickEdit的程序,相当于其它编译器中的make,但make文件是自动维护的。Build的功能<br /><br />是检测哪个源程序有改动,将其以及引用(include)了它的代码重新编译,然后调用link生成目标文件。Rebuil是将项目中的所有代码重新<br /><br />编译一遍,然后link成目标代码。(这个功能比ARM套件里自带的CodeWarror强,经常修改了.h文件但build时没把所有引用了这个.h的代码重新编译)<br /><br />Debug/excute在这里没啥用,不过可以设置成调用仿真软件。比如用AXD的时候设成<br /><路径>axd.exe %f (好是这样的,后来换成Rvdeug,命令行太复杂,就没用这个功能了)<br /><br />d)Build页面:<br />Build System选Without a make file(dependencies automaticly checked)<br />Post Build Command也很有用,因为经常要把编译完后要把axf文件转成bin用于烧写,Keil里也要把目标文件转成hex<br />可以只设Release版,axf转bin的命令为:<br />%(RVCT22BIN)fromelf.exe --bin --output %RN_%b.bin %RN_%b.axf<br /><br />后面三个页面暂时可以不用管,这里只提一下<br />e) Compiler/Link页面:<br />Compiler将在目标2中介绍如何设置,对编译没有影响,对编写代码有帮助。<br />Define: 暂时无视它,要用也在via file里设就行了<br />Libraies/Object: 编译器自带的库不用加进来,编译器自己会找。可以把自己做的库放在这或者放在via文件里。如何做库后文介绍。<br /><br />f)Dependency:后文专门介绍<br /><br />g)Open页面:讲Keil时介绍<br /><br />解释:SlickEdit在很多地方可以使用变量,都是以%打头,其中用%()括起来的是Windows系统的环境变量,比如RVCT22BIN是ARM RealView安装时建的环境变量,指示了编译器的安装目录。其它以%打头的变量是SlickEdit项目相关的变量。在Command Line编译框的右边有个右三角的按钮,点击会列出一堆变量的定义。比如%i是在Directories页面设置的Inculde目录,%b是当前配置的名称Debug或Release,%bd是在当前项目目录建的"Debug"或"Release"目录,%n指文件名如编译main.c代表的"main"等等。<br /><br />via/scatter文件的使用技术。在上面的例子里我用到了5个via文件和两个scatter文件<br />via文件放在via子目录:<br />viaasm.via<br />viacc_debug.via<br />viacc_release.via<br />vialink_debug.via<br />vialink_realese.via<br />看名知义,在命令行中用%d使得debug/release版的命令行相同,命令行只含输入输出文件以及必要的参数,其它编译/链接选项都放到via文件里。<br /><br />scatter文件放在Scatter子目录:<br />Scatterdebug.sct<br />Scatter
elease.sct<br /><br />术语:Pagckage这个语似乎SlickEdit的员工对它也不满意,本意是:"Package" is the terminology used to describe a type of <br /><br />project. 对于"Customize packages" 更好的说法应该是"Customize project types".<br /><br /><待续> |
|