在上一节,完成了eclipse的安装,并建立了一个ecos应用程序工程。如果要在eclipse下编译链接ecos应用程序,还得对工程进行相关配置,否则编译会失败。
本节主要介绍eCos应用程序eclipse工程的配置。如果之前有使用过eclipse,那么这节介绍的内容不难理解。如果是初次接触eclipse,也无需着急,说白了,其实就是一个软件的使用。摸两下可能就熟悉了。
eCos eclipse工程配置
在编译之前,需要对eCos eclipse工程进行一些必要的配置,否则会编译失败或者运行不成功。
1. 添加ecos install include目录
在工程管理窗口(Project Explorer,上图左窗口)选择工程,并点击右键,选择Properties,弹出工程Properties设置对话框,在对话框左边导航树中选择:C/C++ General—>Paths and Symbols,如下图:
在这里,我们要添加ecos编译安装include路径。在Includes选项卡中,点Add…,勾选Add to all configuration,然后点:File system…,选择ecos install include目录,如下图所示。
2. 添加ecos静态库libtarget.a
然后在Paths and Symbols对话框中,点Library Paths,在这里添加libtarget.a的路径,如下图所示:
然后在Paths and Symbols对话框中,点Libraries,添加eCos静态库:libtarget.a,如下图所示:
点击Add…后,直接输入target,并勾选Add to all configuration即可。eclipse会自动添加前缘lib和后缀.a,也就是说,在eclipse中添加library时,libXXX.a为规定库文件名,添加时只填XXX即可。
3. Build Variables
在工程Properties设置对话框,在对话框左边导航树中选择:C/C++ Build—>Build Variables,添加一个eCos全局编译选项变量和一个eCos全局链接选项变量。如下图所示,点击Add…按钮添加。
eCos全局编译和链接选项的值(Value)可从eCos图形配置工具中复制过来,如下图所示,选中右边框框里面的值就可进行复制操作。
4. Build Setting
在工程Properties设置对话框,在对话框左边导航树中选择:C/C++ Build—>Setting,配置工程编译。
点Cross GCC Compiler—>Includes,在这里同样要添加ecos install include目录,如下图所示:
点Cross GCC Compiler—>Optimization,添加eCos全局编译选项。即在Other optimization flags中添加上面建立的编译变量:${ECOS_GLOBAL_CFLAGS},如下图所示:
点Cross GCC Linker—>General,勾选第一项,加上-nostartfiles链接标志,如下图所示:
点Cross GCC Linker—>Miscellaneous,添加链接标志,如下图所示。注意,记得添加-Ttarget.ld链接标志。
5. 设置输出
在工程Properties设置对话框,在对话框左边导航树中选择:C/C++ Build—>Setting界面中,点击Build Artifact选项卡,如下图所示:
- Artifact Type表示输出的类型,Executable表示生成一个可执行文件(elf格式);
- Artifact name表示输出的名称,${ProjName}表示输出文件名与工程名相同,你可根据需要进行指定;
- Artifact extension表示输出文件名的后缀,默认为空,这里我把它加上了elf后缀;
可能我们需要输出其它格式的文件,比如bin,我们可以通过设置编译后的行为来达到目的。
C/C++ Build—>Setting界面中,点击Build Steps选项卡,在Post-build step中添加elf转换为bin的命令,这样工程编译后,不仅输出elf格式文件,还输出bin格式的文件,如下图所示:
eCos eclipse工程编译
通过上面的设置后,就可以编译工程了。选中工程,快捷键Ctrl+B可执行工程编译,也可以选中工程,然后右键选择Build project。编译后,在工程目录下,会建立目标编译目录如Debug,里面就有编译输出文件。
eCos eclipse工程配置导出
也许上面的配置,初步给你的感觉比较复杂。实际上,你熟悉后,一点都不复杂。况且,eclipse还有工程配置导出功能,免去了创建新的工程时进行重复配置。
选中工程,右键,选Export…,然后按照下图,就可以导出工程配置了。当你新建工程时,可以import这个配置到你的工程中。
eCos eclipse使用总结
按照步骤做完了,也许你会问,有些编译链接标志你是怎么知道的?或者说要添加哪些编译链接标志?我想告诉你的是,我是从eCos源码包example目录下的Makefile中找到的。
按照上面的思路,我在想,是不是可以把eCos应用程序的开发环境扩展到MDK中。因为,我记得MDK是支持交叉编译的,有兴趣的朋友可以按照本节介绍的思路尝试下。
此时,大家可能还关心另外一个问题:如何调试呢?嘿,我也在关注这个问题,先摸索下再来分享给大家,敬请期待!