ARM+LINUX道路,主攻嵌入式Linux操作体系及其上运用软件开发方针: (1) 把握干流嵌入式微处理器的结构与原理(开始定为arm9) (2) 有必要把握一个嵌入式操作体系 (开始定为uclinux或linux,版别待定) (3) 有必要了解嵌入式软件开发流程并至少做一个嵌入式软件项目。 从事嵌入式软件开发的优点是: (1)现在国内外这方面的人都很稀缺。这一范畴入门门槛较高,所以非专业IT人员很难切入这一范畴;另一方面,是因为这一范畴较新,现在开展太快,大多数人无条件触摸。 (2)与企业核算等运用软件不同,嵌入式范畴人才的作业强度一般低一些(但收入不低)。 (3)哪天若想创业,搞自已的产品,嵌入式不像运用软件那样简略被盗版。硬件规划一般都是请其它公司给订做(这叫“贴牌”:OEM),都是通用的硬件,咱们只管规划软件就变成自己的产品了。 (4)喜好地点,这是最主要的。 从事嵌入式软件开发的缺陷是: (1) 入门起点较高,所用到的技能往往都有必定难度,若软硬件根底欠好,特别是操作体系级软件功底不深,则可能不适于此行。 (2)这方面的企业数量要远少于企业核算类企业。 (3)有少量公司常常要硕士以上的人搞嵌入式,主要是根据嵌入式的难度。但大多数公司也并无此要求,只需有经历即可。 (4)渠道依托强,换渠道比较辛苦。 喜好的由来: 1、成功观念不同,不虚度此生,便是我的成功。 2、喜爱考虑,应战逻辑思想。 3、喜爱C C是一种能发挥思想极限的言语。关于C的精力的一些方面能够被概述成短句如下: 信任程序员。 不要阻挠程序员做那些需求去做的。 坚持言语短小精干。 一种办法做一个操作。 使得它运转的够快,尽管它并不能确保将是可移植的。 4、喜爱底层开发,厌烦vb类开发东西(并不是说vb欠好)。 5、开展前景好,合适创业,不想自己要死了的时分仍是一个工程师。 办法过程: 1、根底知识: 意图:能看懂硬件作业原理,但要点在嵌入式软件,特别是操作体系级软件,那将是我的优势。 科目:数字电路、核算机组成原理、嵌入式微处理器结构。 汇编言语、C/C++、编译原理、离散数学。 数据结构和算法、操作体系、软件工程、网络、数据库。 办法:虽科目许多,但都是较简略的根底,且大部分已把握。不用定全学,可根据需求选修。 主攻书本:the c++ programming language(一向没时刻读)、数据结构-C2。 2、学习linux: 意图:深化把握linux体系。 办法:运用linux—〉linux体系编程开发—〉驱动开发和剖析linux内核。先看深,那主讲原理。看几遍后,看情形剖析,对照深看,两本穿插,深是纲,情是目。剖析则是0.11版,合适学习。最终深化代码。 主攻书本:linux内核彻底剖析、unix环境高档编程、深化了解linux内核、情形剖析和源代。 3、学习嵌入式linux: 意图:把握嵌入式处理器其及体系。 办法: (1)嵌入式微处理器结构与运用:直接arm原理及汇编即可,不要重复x86。 (2)嵌入式操作体系类:ucOS/II简略,开源,可供入门。然后深化研究uClinux。 (3)有必要有块开发板(arm9以上),有条件可参与训练(前进快,能知道些朋友)。 主攻书本:毛德操的《嵌入式体系》及其他arm9手册与arm汇编指令等。 4、深化学习: A、数字图像紧缩技能:主要是应把握MPEG、mp3等编解码算法和技能。 B、通讯协议及编程技能:TCP/IP协议、802.11,Bluetooth,GPRS、GSM、CDMA等。 C、网络与信息安全技能:如加密技能,数字证书CA等。 D、DSP技能:Digital Signal Process,DSP处理器经过硬件完成数字信号处理算法。 阐明:太多细节未阐明,可根据实际情况调整。要点在于1、3,不用彻底依照次序作。关于学习c++,理由是c++不只是一种言语,一种东西,她仍是一种艺术,一种文明,一种哲学理念、但不是拿来夸耀得东西。关于linux内核,学习编程,读一些优异代码也是有必要的。 留意: 要学会举一反多,有强壮的根底,许多东西简略看看就能会。想成为合格的程序员,条件是有必要娴熟至少一种编程言语,并具有杰出的逻辑思想。必定要理论结合实践。 不要一味研究技能,尽管挤出时刻是很难做到的,但仍是要留点地步去完善其他的喜好,比方世界,素描、机械、办理,心理学、游戏、科幻电影。还有一些不愿意做但有必要要做的! 技能是经过编程编程在编程编出来的。永久不要愿望一步登天,不要做浮躁的人,不要觉得路程漫上。而是要编程编程在编程,完了在编程,在编程!等时机来了在创业(不要信任有奇观产生,盲目创业很难成功,即使成功了开展空间也不用定很大)。 嵌入式书本引荐 |
ARM学习规划(经典)
ARM+LINUX道路,主攻嵌入式Linux操作体系及其上运用软件开发方针:
(1) 把握干流嵌入式微处理器的结构与原理(开始定为arm9)
(2) 有必要把握一个嵌入式操作体系 (开始定为uclinux或linux,版别待定)
(3) 有必要了解嵌入式软件开发流程并至少做一个嵌入式软件项目。
从事嵌入式软件开发的优点是:
(1)现在国内外这方面的人都很稀缺。这一范畴入门门槛较高,所以非专业IT人员很难切入这一范畴;另一方面,是因为这一范畴较新,现在开展太快,大多数人无条件触摸。
(2)与企业核算等运用软件不同,嵌入式范畴人才的作业强度一般低一些(但收入不低)。
(3)哪天若想创业,搞自已的产品,嵌入式不像运用软件那样简略被盗版。硬件规划一般都是请其它公司给订做(这叫“贴牌”:OEM),都是通用的硬件,咱们只管规划软件就变成自己的产品了。
(4)喜好地点,这是最主要的。
从事嵌入式软件开发的缺陷是:
(1) 入门起点较高,所用到的技能往往都有必定难度,若软硬件根底欠好,特别是操作体系级软件功底不深,则可能不适于此行。
(2)这方面的企业数量要远少于企业核算类企业。
(3)有少量公司常常要硕士以上的人搞嵌入式,主要是根据嵌入式的难度。但大多数公司也并无此要求,只需有经历即可。
(4)渠道依托强,换渠道比较辛苦。
喜好的由来:
1、成功观念不同,不虚度此生,便是我的成功。
2、喜爱考虑,应战逻辑思想。
3、喜爱C
C是一种能发挥思想极限的言语。关于C的精力的一些方面能够被概述成短句如下:
信任程序员。
不要阻挠程序员做那些需求去做的。
坚持言语短小精干。
一种办法做一个操作。
使得它运转的够快,尽管它并不能确保将是可移植的。
4、喜爱底层开发,厌烦vb类开发东西(并不是说vb欠好)。
5、开展前景好,合适创业,不想自己要死了的时分仍是一个工程师。
办法过程:
1、根底知识:
意图:能看懂硬件作业原理,但要点在嵌入式软件,特别是操作体系级软件,那将是我的优势。
科目:数字电路、核算机组成原理、嵌入式微处理器结构。
汇编言语、C/C++、编译原理、离散数学。
数据结构和算法、操作体系、软件工程、网络、数据库。
办法:虽科目许多,但都是较简略的根底,且大部分已把握。不用定全学,可根据需求选修。
主攻书本:the c++ programming language(一向没时刻读)、数据结构-C2。
2、学习linux:
意图:深化把握linux体系。
办法:运用linux—〉linux体系编程开发—〉驱动开发和剖析linux内核。先看深,那主讲原理。看几遍后,看情形剖析,对照深看,两本穿插,深是纲,情是目。剖析则是0.11版,合适学习。最终深化代码。
主攻书本:linux内核彻底剖析、unix环境高档编程、深化了解linux内核、情形剖析和源代。
3、学习嵌入式linux:
意图:把握嵌入式处理器其及体系。
办法:
(1)嵌入式微处理器结构与运用:直接arm原理及汇编即可,不要重复x86。
(2)嵌入式操作体系类:ucOS/II简略,开源,可供入门。然后深化研究uClinux。
(3)有必要有块开发板(arm9以上),有条件可参与训练(前进快,能知道些朋友)。
主攻书本:毛德操的《嵌入式体系》及其他arm9手册与arm汇编指令等。
4、深化学习:
A、数字图像紧缩技能:主要是应把握MPEG、mp3等编解码算法和技能。
B、通讯协议及编程技能:TCP/IP协议、802.11,Bluetooth,GPRS、GSM、CDMA等。
C、网络与信息安全技能:如加密技能,数字证书CA等。
D、DSP技能:Digital Signal Process,DSP处理器经过硬件完成数字信号处理算法。
阐明:太多细节未阐明,可根据实际情况调整。要点在于1、3,不用彻底依照次序作。关于学习c++,理由是c++不只是一种言语,一种东西,她仍是一种艺术,一种文明,一种哲学理念、但不是拿来夸耀得东西。关于linux内核,学习编程,读一些优异代码也是有必要的。
留意: 要学会举一反多,有强壮的根底,许多东西简略看看就能会。想成为合格的程序员,条件是有必要娴熟至少一种编程言语,并具有杰出的逻辑思想。必定要理论结合实践。
不要一味研究技能,尽管挤出时刻是很难做到的,但仍是要留点地步去完善其他的喜好,比方世界,素描、机械、办理,心理学、游戏、科幻电影。还有一些不愿意做但有必要要做的!
技能是经过编程编程在编程编出来的。永久不要愿望一步登天,不要做浮躁的人,不要觉得路程漫上。而是要编程编程在编程,完了在编程,在编程!等时机来了在创业(不要信任有奇观产生,盲目创业很难成功,即使成功了开展空间也不用定很大)。
嵌入式书本引荐
Linux根底
1、《Linux与Unix Shell 编程攻略》
C言语根底
1、《C Primer Plus,5th Edition》Stephen Prata着
2、《The C Programming Language, 2nd Edition》Brian W. Kernighan David M. Rithie(K & R)着
3、《Advanced Programming in the UNIX Environment,2nd Edition》(APUE)
4、《嵌入式Linux运用程序开发详解》
Linux内核
1、《深化了解Linux内核》(第三版)
2、《Linux内核源代码情形剖析》毛德操 胡希明着
研制方向
1、《UNIX Network Programming》(UNP)
2、《TCP/IP详解》
3、《Linux内核编程》
4、《Linux设备驱动开发》(LDD)
硬件根底
1、《ARM体系结构与编程》杜春雷着
2、S3C2410 Datasheet
英语根底
1、《核算机与通讯专业英语》
体系教程
1、《嵌入式体系――体系结构、编程与规划》
2、《嵌入式体系――选用揭露源代码和StrongARM/Xscale处理器》毛德操 胡希明着
3、《Building Embedded Linux Systems》
理论根底
1、《算法导论》
2、《数据结构(C语