文档章节

嵌入式linux入门学习规划

muliuhai
 muliuhai
发布于 2017/08/10 11:38
字数 1740
阅读 4
收藏 0

嵌入式系统是面向用户、面向产品、面向应用的,它必须与具体应用相结合才会具有生命力、才更具有优势。因此可以这样理解上述三个面向的含义,即嵌入式系统是与应用紧密结合的,它具有很强的专用性,必须结合实际系统需求进行合理的裁减利用。

◆嵌入式系统是将先进的计算机技术、半导体技术和电子技术和各个行业的具体应用相结合后的产物,这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。所以,介入嵌入式系统行业,必须有一个正确的定位。例如Palm 之所以在PDA领域占有70%以上的市场,就是因为其立足于个人电子消费品,着重发展图形界面和多任务管理;而风河的Vxworks之所以在火星车上得以 应用,则是因为其高实时性和高可靠性。

◆嵌入式系统必须根据应用需求对软硬件进行裁剪,满足应用系统的功能、可靠性、成本、体积等要 求。所以,如果能建立相对通用的软硬件基础,然后在其上开发出适应各种需要的系统,是一个比较好的发展模式。目前的嵌入式系统的核心往往是一个只有几K到 几十K微内核,需要根据实际的使用进行功能扩展或者裁减,但是由于微内核的存在,使得这种扩展能够非常顺利的进行。

实际上,嵌入式系统本身是一个外延极广的名词,凡是与产品结合在一起的具有嵌入式特点的控制系统都可以叫嵌入式系统,而且有时很难给它下一个准确的定义。现在人们讲嵌入式系统时,某种程度上指近些年比较热的具有操作系统的嵌入式系统,本文在进行 分析和展望时,也沿用这一观点。

一般而言,嵌入式系统的构架可以分成四个部分:处理器、存储器、输入输出(I/O)和软件(由于多数嵌入式设备的应用软件和操作系统都是紧密结合的,在这里我们对其不加区分,这也是嵌入式系统和Windows系统的最大区别)。

ARM+LINUX路线,主攻嵌入式Linux操作系统及其上应用软件开发目标: 

(1) 掌握主流嵌入式微处理器的结构与原理(初步定为arm9) 

(2) 必须掌握一个嵌入式操作系统 (初步定为uclinux或linux,版本待定) 

(3) 必须熟悉嵌入式软件开发流程并至少做一个嵌入式软件项目。 

 

从事嵌入式软件开发的好处是: 

(1)目前国内外这方面的人都很稀缺。这一领域入门门槛较高,所以非专业IT人员很难切入这一领域;另一方面,是因为这一领域较新,目前发展太快,大多数人无条件接触。 

(2)与企业计算等应用软件不同,嵌入式领域人才的工作强度通常低一些(但收入不低)。 

(3)哪天若想创业,搞自已的产品,嵌入式不像应用软件那样容易被盗版。硬件设计一般都是请其它公司给订做(这叫“贴牌”:OEM),都是通用的硬件,我们只管设计软件就变成自己的产品了。 

(4)兴趣所在,这是最主要的。 

 

兴趣的由来: 

1、成功观念不同,不虚度此生,就是我的成功。 

2、喜欢思考,挑战逻辑思维。 

3、喜欢C 

C是一种能发挥思维极限的语言。关于C的精神的一些方面可以被概述成短句如下: 

相信程序员。 

不要阻止程序员做那些需要去做的。 

保持语言短小精干。 

一种方法做一个操作。 

使得它运行的够快,尽管它并不能保证将是可移植的。 

4、喜欢底层开发,讨厌vb类开发工具(并不是说vb不好)。 

5、发展前景好,适合创业,不想自己要死了的时候还是一个工程师。 

方法步骤: 

1、 基础知识: 

目的:能看懂硬件工作原理,但重点在嵌入式软件,特别是操作系统级软件,那将是我的优势。 

科目:数字电路、计算机组成原理、嵌入式微处理器结构。 

汇编语言、C/C++、编译原理、离散数学。 

数据结构和算法、操作系统、软件工程、网络、数据库。 

方法:虽科目众多,但都是较简单的基础,且大部分已掌握。不一定全学,可根据需要选修。 

主攻书籍:the c++ programming language(一直没时间读)、数据结构-C2。 

2、 学习linux: 

目的:深入掌握linux系统。 

方法:使用linux—〉linxu系统编程开发—〉驱动开发和分析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内核,学习编程,读一些优秀代码也是有必要的。 

© 著作权归作者所有

共有 人打赏支持
muliuhai
粉丝 3
博文 79
码字总数 155337
作品 0
郑州
私信 提问
OSC 第 68 期高手问答 — 嵌入式 Linux 软件开发

OSCHINA 本期高手问答( 4 月 13 日- 4 月 19 日)我们请来了 @吕雪峰 (吕雪峰)为大家解答关于嵌入式 Linux 软件开发方面的问题。 吕雪峰,华中科技大学控制工程与控制理论专业硕士,一线资深...

叶秀兰
2015/04/13
4.3K
37
嵌入式课程技术,学嵌入式要多长时间?

嵌入式可以说已经渗入到我们生活的方方面面,无论是在通讯,还是网络,甚至工控、医疗、电子等领域,嵌入式技术发挥着越来越重要的作用。有参加培训机构学习嵌入式技术的想法,培训嵌入式要多...

长沙千锋
05/31
0
0
指导未来“钱”途规划。Linux C/C++

小弟现在大四。找的一份电信运营商的工作。但是不是很满意。为以后跳槽做准备。 而且我对linux C/C++比较感兴趣。正打算学习这方面的知识。求指导学习的方向。和未来的职业规划。 我现在在看...

挣钱取老婆
2012/05/24
1K
4
嵌入式学习进行整理有源码。容易入门

一、嵌入式开发学习路线(按照当前主流的企业岗位需求,基本都是linux,和android系统)直白点说你学的技术最好跟企业相吻合。这样你才有价值嘛。   具体可参考:http://emb.hqyj.com/luxia...

雪黑
06/26
0
0
嵌入式软件学习方法 嵌入式软件知识

目前嵌入式软件的学习主要主要面向的几个操作系统是,Linux,WINCE、VxWorks等等。其中Linux是开源免费的,而且其源代码是开放的,更加适合我们学习嵌入式软件。下面我们介绍一下嵌入式软件学...

创客学院
04/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

新手也能看懂,消息队列其实很简单

该文已加入开源项目:JavaGuide(一份涵盖大部分Java程序员所需要掌握的核心知识的文档类项目,Star 数接近 16k)。地址:https://github.com/Snailclimb/JavaGuide. 本文内容思维导图: 消息...

阿里云官方博客
45分钟前
5
0
如何在Chrome浏览器中启动deviceready事件(尝试调试phonegap项目)?

我正在开发PhoneGap应用程序,我希望能够在Chrome中调试它,而不是在电话上调试。但是,我在onGetReady()函数中初始化我的代码,该函数在PhoneGap触发“deviceready”事件时触发。由于Chr...

kisshua
今天
10
0
nginx中部署vue打包后的静态文件

如何在nginx中部署静态资源就不描述了, 请看我的这篇博客 将vue脚手架项目打包后的静态文件放到nginx上, 发现有个问题, 即url上有#, 怎么去掉这个#呢. 1 项目中router的mode 路由的mode要为h...

克虏伯
今天
13
0
JS容易理解错误的地方

在这端代码执行的末尾,你会不会hi变量回事函数中的hi了?你会不会认为这不是按引用传递了? 对值传递和引用传递产生质疑了? 1 var hi = {};2 function sayHello(hi) { ...

器石_
今天
11
0
Java开发学习--MongoDB

之前只学过sql,第一次使用非关系型数据库。以前对于关系型数据库与非关系型数据库的概念很模糊,通过这次的学习对这两者有了一个清晰的概念。 主键 在MongoDB中,主键名叫"_id",如果在生成...

微笑向暖wx
今天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部