大学生从事嵌入式工作的问题?

我是大二的学生,软件工程专业,以后想从事嵌入式方面的工作,不知道该从哪方面入手,对电路方面的知识要求高不高?(以前只开过电路原理,数字逻辑,学的还不是很好- -),是不是应该从单片机学起?

嵌入式学习是一个循序渐进的过程,如果是希望向嵌入式软件方向发展的话,目前最常见的是嵌入式Linux方向,关注这个方向,我认为大概分3个阶段:
1、嵌入式linux上层应用,包括QT的GUI开发
2、嵌入式linux系统开发
3、嵌入式linux驱动开发

嵌入式目前主要面向的几个操作系统是,LINUX,WINCE、VxWorks等等
Linux是开源免费的,而且其源代码是开放的,更加适合我们学习嵌入式。
所以你可以尝试以下路线:
(1) C语言是所有编程语言中的强者,单片机、DSP、类似ARM的种种芯片的编程都可以用C语言搞定),因此必须非常熟练的掌握。
推荐书籍:《The C Programming Language》 这本经典的教材是老外写的,也有中译版本。
(2) 操作系统原理,是必需的,如果你是计算机专业毕业那也就无所谓了,如果是非计算机专业的就必须找一本比较浅显的计算机原理书籍看一看,把啥叫“进程”“线程”“系统调度”等等基本问题搞清楚。
(3) (3)Linux操作系统就是用C语言编写的,所以你也应该先学习下Linux方面的编程,只有你会应用了,才能近一步去了解其内核的精髓。
推荐书籍:《UNIX环境高级编程》(第2版)
(4) 了解ARM的架构,原理,以及其汇编指令,我们在嵌入式开发中,一般很少去写汇编,但是最起码的要求是能够看懂arm汇编。
(5) 系统移植的时候,就需要你从最下层的bootloader开始,然后内核移植,文件系统移植等。而移植这部分对硬件的依赖是非常大的,其配置步骤也相对复杂,也没有太多详细资料。
(6) 驱动开发
linux驱动程序设计既是个极富有挑战性的领域,又是一个博大精深的内容。
linux驱动程序设计本质是属于linux内核编程范畴的,因而是对linux内核和内核编程是有要求的。在学习前你要想了解linux内核的组成,因为每一部分要详细研究的话足够可以扩展成一本厚书。

以上只不过是大概的框架,在实际的开发中还会涉及很多东西,比如:交叉编译、makefile、shell脚本等等,所以说学习嵌入式的周期较长,门槛较高,自学的话更是需要较强的学习能力和专业功底。只要能坚持下来一定会取得成功!

你可以到华清远见网站上了解更多嵌入式的相关资料 。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-04-27
我一同学去了个叫东方赛富的参加嵌入式培训开发,下面是他曾给我的一些资料,相信应该对你有所帮助的。。。

嵌入式的应用主要是几个方向,
一是系统开发:侧重开发环境搭建、内核原理、交叉编译等;
二是嵌入式Linux应用开发:侧重Linux应用编程、内核编译、系统调用;
三是底层驱动开发:侧重嵌入式Linux系统下的驱动开发、内核的深入分析。
不过初进门者主要往系统开发和应用开发发展,有了相关工作经验再进一步向底层驱动靠。嵌入式课程的目标,想自学完课程,要掌握以下知识点:
◆ Linux命令,工具和C编程基础
◆ 嵌入式Linux C语言强化
◆ 嵌入式Linux上的C编程训练
◆ Linux高级编程及编程训练
◆ 嵌入式ARM处理器体系结构及编程训练
◆ 嵌入式Linux内核环境搭建和编程训练
◆ 嵌入式Linux驱动理论及驱动程序开发训练
◆ Android应用研究和系统开发
◆ Android体系结构和系统移植
◆ 嵌入式ARM Linux项目实践和训练
上面这个嵌入式课程信息是从东方赛富3G嵌入式学院网站COPY下来的,仅供参考;呵呵,若感兴趣想进一步了解的话,只有去网上咨询或实地考察了。
相似回答