嵌入开发工具

简介:
我们公司进行嵌入开发的硬件系统是ARM9200,开发工具是ADS1.2,说实话,这个开发工具实在是不太好用,尤其是codeWarrior这个IDE,一点IDE的风范也没有,什么代码自动提示、自动排版等等全部没有,这让使惯了Eclipse的我实在是很难适应。

没有办法,还是用Eclipse吧,好在Eclipse有CDT,支持C的开发,不过我对于使用Eclipse进行C语言的编程环境的配置属于菜鸟级别,而且工作要紧,没有时间研究如何配置Eclipse进行嵌入式C语言开发,而是简单的把Eclipse当作IDE来使用。

于是我简单的配置了一下,使用MinGW+Eclipse+CDT配置了一套简单的C语言开发环境,这个很简单,网上有很多资料,随便一搜就是一大把,这里就不说了。但是这样配置下来的问题在于这套环境编译出来的是Windows环境下运行的程序,只能用来做高层业务逻辑的测试用。

于是我的工作环境就是Eclipse作为IDE进行代码编辑,codeWarrior用作编译目标板上的调试程序和bin文件,AXD作为调试工具。呵呵,写个小破程序还要打开三个工具不停的切换,实在是比较郁闷呀。

最近工作告一小段落,总算有些时间研究工具了,这不,有了一点小成果,就是可以在Eclipse下完成目标板调试程序和bin文件的编译,这样以后工作时至少可以不用打开codeWarrior了。

其实这个工作很简单,因为codeWarrior只是一个IDE开发环境,真正的编译工具还是需要使用ARM公司提供的
   armcc   : C/C++ 源程序编译工具(ARM/THUMB)
   armmsm  : 汇编语言编译工具(ARM/THUMB)
   armlink : 链接工具
   armar   : 打包工具,可以将多个.o文件打包为一个.a库文件
   fromelf : 可执行文件生成工具,可以将编译后的axf调试文件生成为ELF格式的ROM烧写文件

这样我们就有一个思路,写一个makefile,然后在Eclipse中调用make命令,通过该makefile实现命令行编译不就不需要codeWarrior了吗。

CodeWarrior for ARM ADS 1.2的IDE开发工具本身不提供直接生成makefile文件的功能,但结合一个小工具mcp2make就可以实现生成makefile文件。

首先你要从www.arm.com上下载mcp2make工具,先进行安装,一般默认安装路径是ADS的安装路径,你可以从ADS路径下找到一个mcp2make目录,进入该目录就可以看到mcp2make工具的可执行文件mcp2make.exe。

然后你用CodeWarrior打开工程,把当前工程的设置输出为xml文件,生成这个文件很重要,它是mcp2make进行转换的重要文件。

最后执行mcp2make.exe,先填入xml文件名,然后填入编译选项,最后生成makefile文件。

详细生成makefile文件的步骤,可以参考mcp2Make目录下的readme.txt,里面写得很详细。生成的makefile文件,可以直接用VC下的nmake /f ********.mk all就可以对工程进行构建了。

使用nmake对makefile文件验证通过后,在Eclipse的Run->External Tools菜单下增加一个新的外部命令,参数为/f *****.mk rebuild即可。

这样平时可以使用Eclipse自己的Clean命令编译Windows下的程序,可以运行测试程序验证上层逻辑,然后调用外部工具编译目标程序,再用AXD进行加载调试就可以了。

后记:网上还有很多据说直接用Eclipse调试嵌入式系统的方法,可是我都没有试验通过,也许是我们使用的环境不一样吧,算了,使用Eclipse+AXD进行开发和调试也没什么不方便,等以后有时间和兴致再研究这个问题吧。





本文转自 tywali 51CTO博客,原文链接:http://blog.51cto.com/lancelot/184575,如需转载请自行联系原作者
目录
相关文章
|
C# 图形学
C# winform嵌入unity3D
  最近做项目需要winform嵌入unity的功能,由于完全没接触过这类嵌入的于是在网上搜,有一种方法是UnityWebPlayer插件,也开始琢磨了一段时间,不过一会发现在5.4版本以后这个东西就被淘汰了,所以果断放弃。
4328 0
|
1天前
|
开发框架 自然语言处理 Linux
Qt:构建强大跨平台应用程序的框架
Qt:构建强大跨平台应用程序的框架
|
4月前
|
存储 自然语言处理 监控
【Unity 实用工具篇】| 游戏多语言解决方案,官方插件Localization 实现本地化及多种语言切换
Unity的多语言本地化是一个很实用的功能,它可以帮助游戏支持多种语言,让不同语言的玩家都能够更好地体验游戏。 而实现本地化的方案也有很多种,各个方案之间也各有优劣,后面也会对多个方案进行介绍学习。 本文就来介绍一个专门作用于多语言本地化的Unity官方插件:Localization 。 这个插件方便进行游戏的多语言本地化,让游戏支持多种语言,下面就来看看该插件的使用方法吧!
|
2月前
|
存储 人工智能 自然语言处理
选择最适合数据的嵌入模型:OpenAI 和开源多语言嵌入的对比测试
OpenAI最近发布了他们的新一代嵌入模型*embedding v3*,他们将其描述为性能最好的嵌入模型,具有更高的多语言性能。这些模型分为两类:较小的称为text- embeddings -3-small,较大且功能更强大的称为text- embeddings -3-large。
94 0
|
9月前
|
JavaScript 前端开发 API
如何将c#在线编辑器嵌入自己项目
如何将c#在线编辑器嵌入自己项目
59 0
|
11月前
|
人工智能 自然语言处理 测试技术
支持80+编程语言、集成VSCode,HuggingFace代码大模型来了
支持80+编程语言、集成VSCode,HuggingFace代码大模型来了
377 0
|
SQL JSON 前端开发
|
网络协议 Ubuntu Linux
基于C++(QT框架)设计的网络摄像头项目(支持跨平台运行)
基于C++(QT框架)设计的网络摄像头项目(支持跨平台运行)
867 0
基于C++(QT框架)设计的网络摄像头项目(支持跨平台运行)
|
JSON 算法 iOS开发
使用Python编写iOS原生应用的框架设计思考(首篇二)
使用Python编写iOS原生应用的框架设计思考(首篇)
159 0
使用Python编写iOS原生应用的框架设计思考(首篇二)
|
JavaScript 前端开发 iOS开发
使用Python编写iOS原生应用的框架设计思考(首篇一)
使用Python编写iOS原生应用的框架设计思考(首篇)
213 0
使用Python编写iOS原生应用的框架设计思考(首篇一)