Wednesday, October 20, 2010

嵌入式Linux学习思路及参考资料(ARM+LINUX路线)

嵌入式Linux学习思路及参考资料(ARM+LINUX路线)(转)

嵌入式人才需求
(1)嵌入式应用工程师:主要面向计算机,软件工程相关专业。其基于某个平台,例如嵌入式Linux 、Vxworks、Symbian、WinCE的上层应用软件开发,开发语言主要采用嵌入式C/C++,主要领域网络、图形、数据库、音频、视频处理等。
(2)嵌入式系统工程师:主要面向电子信息相关专业,基于某个处理器内核,例如ARM、MIPS、PPC等,主要开发语言为汇编语言及嵌入式C语言编程, 主要从事BootLoader,操作系统及中间件移植等工作。
(3)嵌入式驱动工程师:主要面向电子信息、计算机相关专业。基于某个处理器,例如2410、2440、6410等平台,开发语言主要为嵌入式C语言,主 要从事接口驱动,例如

嵌入式相关课程的学生都具备以下基本能力:
(1)至少一种嵌入式处理器(ARM)。
(2)至少一种嵌入式操作系统(Linux)。
(3)一套嵌入式开发工具(ADS, GCC、嵌入式交叉编译调试环境)。
(4)一类开发语言(ARM汇编、C、C++)。
另外,必须熟悉嵌入式软件开发流程并至少做一个嵌入式软件项目。

从事嵌入式软件开发的好处是: 
(1)目前国内外这方面的人都很稀缺。
(2)与企业计算等应用软件不同,嵌入式领域人才的工作强度通常低一些(但收入不低)。 
(3)嵌入式不像应用软件那样容易被盗版。

从事嵌入式软件开发的缺点是: 
(1)入门起点较高,所用到的技术往往都有一定难度,若软硬件基础不好,特别是操作系统级软件功底不深,则可能不适于此行。 
(2)这方面的企业数量要远少于企业计算类企业。 
(3)有少数公司经常要硕士以上的人搞嵌入式,主要是基于嵌入式的难度。但大多数公司也并无此要求,只要有经验即可。 
(4)平台依托强,换平台比较辛苦。

方法步骤: 
1、基础知识:数字电路、计算机组成原理、C/C++、数据结构和算法、操作系统、网络、数据库。 特别是嵌入式C。
C参考
   1. the c++ programming language
   2. Pointers on C 《C和指针》 
   3. C traps and pitfalls 《C陷阱与缺陷》 
   4. Expert C Lanuage 《专家C编程》 

2. Linux学习:使用linux—〉linxu应用编程开发—〉驱动开发和分析linux内核,先别急着研究内核源代码,那东西没有几个人弄得完全懂。
   Linux基础 
   1、《Linux与Unix Shell 编程指南》
           2、《Red Hat Linux 9系统管理与服务器配置》人民邮电出社
          linxu应用编程开发
   1、《UNIX Network Programming(第3版本)》机械工业出版社(UNP) 网络编程用 
   2、《UNIX环境高级编程(第2版本)》    清华大学出版社 系统调用及编程工具书
          3、《Linux高级程序设计(第2版本)》 人民邮电 杨宗德著 系统调用及编程 有很多示例,初学者很不错
        驱动开发和分析linux内核    1、《Linux内核设计与实现》 陈莉君  机械工业出版社
   2、《Linux设备驱动开发》(LDD)中国电力出版社

3.ARM+linux嵌入式系统开发
        ARM基础学习
   1、《嵌入式ARM系统原理与实例开发(第2版本)》 北京大学出社
           2、《ARM体系结构与编程》杜春雷 
   3、S3C2410 Datasheet 
  嵌入Linux开发
        买块板子,调试程序。
其实很多人有误区,觉得学嵌入式要有板子,在后期确实如此,但如果基础达不到,也就把例子拿来跑跑,只有以上基础,基本功达到才能够真正开发。


深入学习(到这个时候,不用上网看帖子,你也知道你应该学习什么了): 
   A、数字图像压缩技术:主要是应掌握MPEG、mp3等编解码算法和技术。 
   B、通信协议及编程技术:TCP/IP协议、802.11,Bluetooth,GPRS、GSM、CDMA等。 
   C、网络与信息安全技术:如加密技术,数字证书CA等。 
   D、DSP技术:Digital Signal Process,DSP处理器通过硬件实现数字信号处理算法。

No comments:

Post a Comment