background image

大的。嵌入式的应用主要是几个方向:

一是系统开发:侧重开发环境搭建、内核原理、交叉编译等;
二是嵌入式

Linux 应用开发:侧重 Linux 应用编程、内核编译、系统调用;

三是底层驱动开发:侧重嵌入式

Linux 系统下的驱动开发、内核的深入分析。

不过初进门者主要往系统开发和应用开发发展,有了相关工作经验再进一步向底层驱

动靠。

嵌入式课程的目标,想自学完课程,要掌握以下知识点:

Linux 命令、工具和 C 编程基础

嵌入式

Linux C 语言强化

嵌入式

Linux 上的 C 编程训练

Linux 高级编程及编程训练

嵌入式

ARM 处理器体系结构及编程训练

嵌入式

Linux 内核环境搭建和编程训练

嵌入式

Linux 驱动理论及驱动程序开发训练

Android 应用研究和系统开发

Android 体系结构和系统移植

嵌入式

ARM Linux 项目实践和训练

嵌入式软件方面最重要的课程包括:

 

1) 嵌入式微处理器结构与应用

这是一门嵌入式硬件基础课程,我院用这门课取代了传统的

“微机原理与接口”课程

(目前国内已有少部分高校

IT 专业这样做了,因为讲 x86 微机原理与接口很难找到实际用

处,只为教学而已)。我们说过,嵌入式是软硬件结合的技术,搞嵌入式软件的人应对
ARM 处理器工作原理和接口技术有充分了解,包括 ARM 的汇编指令系统。若不了解处理
器原理,怎么能控制硬件工作,怎么能写出节省内存又运行高速的最优代码(嵌入式软件
设计特别讲究时空效率),怎么能写出驱动程序(驱动程序都是与硬件打交道的)?很多
公司招聘嵌入式软件人员时都要求熟悉

ARM 处理器,将来若同学到公司中从事嵌入式软

件开发,公司都会给你一本该设备的硬件规格说明书

 (xxx Specification),您必须能看懂其

中的内存分布和端口使用等最基本的说明(就像

x86 汇编一样),否则怎么设计软件。有些

同学觉得嵌入式处理器课程较枯燥,这主要是硬件课程都较抽象的原因,等我们的嵌入式
实验室

10 月份建好后,您做了一些实验后就会觉得看得见摸得着。还有同学对 ARM 汇编

不感兴趣,以为嵌入式开发用

C 语言就足够了。其实不应仅是将汇编语言当成一个程序设

计语言,学汇编主要是为了掌握处理器工作原理的。一个不熟悉汇编语言的人,怎么能在该
处理器写出最优的

C 语言代码。在嵌入式开发的一些关键部分,有时还必须写汇编,如

Bootloader 等(可能还包括 BSP)。特别是在对速度有极高要求的场合(如 DSP 处理器的高
速图像采集和图像解压缩),目前主要还要靠汇编写程序(我看到过很多公司是这样做
的)。当您在一个嵌入式公司工作时,在查看描述原理的手册时,可能很多都是用汇编描述
的(我就遇到过),这是因为很多硬件设计人员只会写或者喜欢用汇编描述,此时您就必
须看懂汇编程序,否则软硬件人员可能就无法交流。很多嵌入式职位招聘时都要求熟悉汇编。

(2) 嵌入式操作系统类课程
除了

WinCE 的实时性稍差外,大多数嵌入式操作系统的实时性都很强,所以也可称为实

时操作系统

Real Time Operating  System.从事嵌入式的人至少须掌握一个嵌入式操作系统

(当然掌握两个更好),这在嵌入式的所有技术中是最为关键的了。目前最重要的 RTOS 主要包