background image

进行嵌入式软件开发必须弄懂

ARM

 

汇编指令集吗?

书店里有很多入门级的书,第一章不是介绍

ARM 指令集,就是介绍 ARM 的 CPU 资源,这给很多初学者一个很不好

的直观感觉,就是学习

ARM 一定要把汇编语言和 CPU

 

资源搞明白。 其实,选

ARM 很大的目的就是为了跑嵌入式

操作系统,最常见的当然是

Linux 和 WinCE 操作系统。嵌入式操作系统为开发人员提供了几乎完整的基于 C 语言

的工作环境,所以基于这两个操作系统进行的开发,在大多数情况下都没有必要先去搞懂

ARM 的汇编指令集和全

部的

CPU 资源。当然,有了一定的技术基础后,CPU 资源也有必要去了解,但是,我们建议是在实践中去了解这

 

些问题,而不是在开始的时候通过看所谓的入门书进行似是而非的学习。

必须使用

ADS

 

吗?

好多入门书,为了说明

ARM 指令集中指令的使用方法便使用了 ADS 或者 IAR 开发环境,这样,就使得初入门的用

户错误地理解为开发

ARM 就是用 ADS 开发环境(笔者初学时,就是这么认为的,幸亏及时有人指路,才没有在这

个环境上花太多的时间),然而,根据不同的

CPU,ADS 设置是十分麻烦的,因为 CPU 是很复杂的,经常有用户

 

就卡在这里,无法超越,时间长了,也就放弃了嵌入式开发了。

其实,

ADS 只是调试启动代码的一种环境,而这样的代码,CPU 厂家已经写好了,这些代码也可以在 Linux 或者

WinCE

 

的开发环境中编译。

 

如何选择操作系统?

除了上面提到的

Linux 和 WinCE 外,还有几十种嵌入式操作系统,只不过 Linux 和 WinCE 是最常见和最通用

的嵌入式操作系统,其它就比较侧重于专业领域。那么如何在这几十种操作系统中,选择适合自己的操作系统呢?
 

第一:如果自己所选的

CPU 不支持 MMU,那么如果需要操作系统的话,一般选择 uC/OS-II 操作系统,注意

uC/OS-II

 

不是免费的操作系统,尽管它的源码是公开的。

第二:如果自己所选的

CPU 支持 MMU,最好选 Linux 或 WinCE。在 Linux 和 WinCE 之间的选择与很多因素有关,

如最终产品的数量、产品开发周期、工程师的技术背景等等。一般来讲基于

Linux 的产品开发周期更长,对工程

师的要求更高,表面上看上去没有

License 费用,因此比较适合批量较大、对成本敏感的产品。相反 WinCE 由

于工具完善,易于上手,只要用过

VC

 

的工程师均能很快转入嵌入式系统应用程序的开发。

 

怎么选择开发语言?

在嵌入式开发领域,首选是

C 语言,因为 C 是中级语言,即可以用来写应用程序,也能用来写驱动程序。根据显

示使用

C 语言的嵌入式程序员占 70%。其次是 C++,应用程序可以用 C++编写,更方便些。其它语言只占了 1%  

Linux

 

应用程序的开发环境是什么?

Linux 是以公共社区的形式发展起来的,基于此,很多商业级的 Linux 开发工具,由于价格、可用性等原因,并
没有得到普遍应用。目前大多数的

Linux 应用开发还是停留在命令行的方式,对开发者的门槛要求较高。用户编

写好的程序,首先在装有

Linux 的 PC 机上测试好后,再用交叉编译环境把代码编译成能在 ARM Linux 下运行

 

的程序。

WinCE

 

应用程序的开发环境是什么?

eVC 是微软提供的 WinCE 应用程序开发工具之一,其界面和 VC 非常相似,很容易入门,其还有一个优点,就是
是免费的,不存在版权问题。从性能上看,

eVC 比任何 Linux 的开发工具的性能都强很多了。另外,WinCE 还可

以使用微软的

Visual Stdio.Net 集成开发工具进行应用开发(可以选择使用的语言包括 C++/C#/VB 等),这

 

给应用开发工程师带来了极大的便利。更多请参阅工业自动化软件的开发工具

 

嵌入式开发怎么实现在线调试呢?