日期:2014-05-16  浏览次数:20541 次

准备明年跳槽加入Linux 嵌入式开发的大部队,先向前辈们请教一点问题
RT~本人毕业两年,这两年从事的是电子书,电视游戏机,口袋机的开发。现有打算明年跳槽加入Linux 嵌入式开发的大部队。特来向前辈们请教一下学习的流程,以免走弯路,诚心希望前辈们指点迷津。
我的大致情况:
C 语言 精通
汇编 熟悉
硬件基础 不是太好
操作系统 理论大致都知道,但是跟实际开发联想不起来,没有实际经验 @~@
ARM 未开始学习,之前公司用的都是台湾那边的一些简单的芯片

最近学习成果:基本熟悉了 linux 的应用,如一些常用的命令,软件的安装,可以在 VI 里面写程序,知道怎么编译运行,调试。

问题:下一步我要做什么?好彷徨!是先深入了解Linux 内核结构呢?还是先了解 ARM 体系结构?还是先补习一下硬件跟汇编方面的知识?还是去买块 ARM 的开发板,边学边做一些小东西?后续需要特别关注学习哪些方面?

希望前辈们提些建议,还有就是问一下,一般学到一个怎样的程度,就可以在这行业里面混?我的意思是可以找到一个这方面的工作,薪水不是问题,比我现在的薪水低很多都没关系,只要能让一个公司觉得这样的基础可以接受,招进去。

------解决方案--------------------
先了解ARM体系结构,再买开发板(不了解ARM买板子容易上当哦),做一些小东西。
LINUX内核就太大,一时半会不容易明白,有操作系统的理论就可以,在实际开发时关注特定的一部分
硬件和汇编知识不用太多,因为硬件太多,而汇编用的少
后续是驱动开发,系统设计,如果有时间,做做界面也行
个人觉得 :学到什么程度到是次要的,混,主要因素是口才和其他能力(如创新能力,协作等)。
等到了公司里面,可能才会要求某方面精。
个人意见,仅供参考
------解决方案--------------------
 1:应用程序的编写,各种GUI的移植,qt,minigui都被大量采用,两种思想都类似,熟悉一种就可以。

2: 系统移植, 驱动开发, 作为标准体系,Linux开源而且可以获得大量学习资料.操作系统是整个计算机科学的核心,
熟悉 kernel实属不易,kernel, 驱动开发的学习,没有什么捷径,只有多读代码,多写代码,熟悉系统API.. understanding linux kernel,
linux device driver 都是不可多得的好书,值得一看。

 3: bootloader的编写,修改, 通过这步熟悉ARM硬件结构,学习ARM汇编语言,阅读ARM的芯片手册,
  
既然你有 硬件基础, 又有不错的C 基础, 建议先熟悉一下应用程序开发, 然后往驱动方向发展.
写驱动并不需要太多的汇编基础,但需要一些硬件知识. 

学习驱动开发是 kernel 入门 的最佳方法. 深入了解Linux......这个..太强大.太复杂.借用
LDD3里常用的一句话, 它是一个怪兽.

我有一同事, 做硬件的, 连printf 都没敲清楚就上来看驱动,看内核,我替他可惜...
一个勤奋的孩子就是这么毁掉的. 路还得一步一步走,饭还得一口一口吃。