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

2019-07-12 18:54发布

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

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


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


从事嵌入式软件开发的好处是:
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、《LinuxUnix 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体系结构与编程》杜春雷
   3S3C2410 Datasheet
  嵌入Linux开发
        买块板子,调试程序。
其实很多人有误区,觉得学嵌入式要有板子,在后期确实如此,但如果基础达不到,也就把例子拿来跑跑,只有以上基础,基本功达到才能够真正开发。




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