文档介绍:嵌入式工程师应该学什么?
最近有不少客户就嵌入式系统开发入门方面提出了一些问题,我们感觉很有代表 性,所以英创工程师把这些问题进行了汇总解答,希望能对想做嵌入式开发的工程师有一点帮助。
进行嵌入式开发必须弄懂 ARM 汇编指嵌入式工程师应该学什么?
最近有不少客户就嵌入式系统开发入门方面提出了一些问题,我们感觉很有代表 性,所以英创工程师把这些问题进行了汇总解答,希望能对想做嵌入式开发的工程师有一点帮助。
进行嵌入式开发必须弄懂 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 的开发环境中编译,所以,完全可以不考虑 ADS 的使用。当然,如果你想在 ARM 上“裸奔”,那是另外的说法了。
如何选择操作系统?
除了上面提到的 Linux 和 WinCE 外,还有几十种嵌入式操作系统,只不过Linux 和WinCE 是最常见和最通用的嵌入式操作系统,其它就比较侧重于专业领域。那么如何在这几十种操作系统中,选择适合自己的操作系统呢?
第一:如果自己所选的CPU 不支持 MMU,那么如果需要操作系统的话,一般选择
uC/OS-II 操作系统,注意 uC/OS-II 不是免费的操作系统,尽管它的源码是公开的。
第二:如果自己所选的 CPU 支持 MMU,最好选 Linux 或 WinCE。在 Linux 和 WinCE
之间的选择与很多因素有关,如最终产品的数量、产品开发周期、工程师的技术背景等等。一般来讲基于 Linux 的产品开发周期更长,对工程师的要求更高,表面上看上去没有 License 费用,因此比较适合批量较大、对成本敏感的产品。相反WinCE 由于工具完善,易于上手, 只要用过 VC 的工程师均能很快转入嵌