# 隐于野个人博客

我曾一直因为没有一双漂亮的鞋子而苦恼，直到有一天在街上看到失去双腿的人。

您现在的位置：首页 > 博客 > 非技术区 > 正文
我是如何学习嵌入式的（转载）
http://www.yyye.org 2012/7/18 19:33:01 来源：隐于野个人博客 点击：

前言
这个题目很大，给人一种感觉我好像很成功，其实不然。实际上自己水平不高，甚至很低，但是做过了一些曲折的学习道

路，同时把自己真实的学习历程表达出来，希望对后来者有借鉴的意义，甚幸！
工作三年、几成废人！
我 2000年毕业于华中地区的一个理工科大学，专业是机械电子，我当时已经签了一家内陆某个省级机关工作，家里八辈

是农民，并且很偏远，能够进入这样的地方是祖坟有风水。但在毕业前夕有个进入it的机会，我本想进去的，家里人极力

反对，阻力可想而知。同时要交4000元的违约金，对我来说是天文数字。大学里的费用很多是借的，几乎将近一半的费用

是在大学勤工俭学挣的，为了省钱，高中一个学期回家一次，大学一年回去一次。并且我个人也有特殊的人生背景（悲景

更确切），这里不多说了，写十篇也写不完，同时偏离主题。这样我就参加了工作。一张报纸一杯茶的日子，几乎下班后

有种很空虚和恐慌的感觉。在工作中虽然是与自己专业有点关系，但是很少。专业几乎荒废。我自己也思考，如果再不出

去，自己将会成废人，只好让国家养了。两年后决定出去，但是几成废人，谁要呢，只好到学校去镀金。这是中国教育和

社会的悲哀！
至于专业就改为计算机方面，听说好找工作，我说实话不是很对计算机特别感兴趣，生存第一需要。不要笑我，哈哈！
考研成绩出来，超过了国家线几十分。那个方向要两个，我第三，但是那年非碘，不面试就按分数来排，自然我落选了。

其实给我面试机会也不一定要我，哈哈，自己几斤几两很清楚。
最后调剂到另外一个学校，交钱，咬咬牙，交吧！现在仍然债台高筑！
进入学校前夕
为什么要把这段列出，看后就知道了。
单位有网络，经常上网查些英语资料，在那里唯独英语没有丢很多。于是我就在网上查资料，学什么好呢，最后确定学嵌

入式把，听说跟硬件相对比较紧密！而我在大学里多少学习了数字电路，单片机等，所以多少也有所利用，不会真的一无

所知。当然在这之前也自学过数据结构，计算机组成原理等。C 语言在大学就学了。哈哈这就是我的家底。
我知道自己的基础差，于是我就拿操作系统，数据库、数据结构、c++来看，机关有这个好处，空余时间多，于是平常就

看书，很痛苦，没有人请教。
另外就上网到论坛上去，我就到各个专业的技术论坛，其实是电子论坛和嵌入式论坛。我几乎没有发帖，几乎把几个大型

的出名的论坛的帖子翻遍了，虽然有很多重复的，我才知道嵌入式是个什么东东。这些帖子对我以后的学习产生了极大的

影响。
最关键两点：1、嵌入式是什么？
2、嵌入式需要哪些知识？
知道了这两点，好办！我就开始规划学习路线。计算机的基本理论不能丢，于是重点看组成原理，数据机构，操作系统、

c++。同时论坛上了解到，实时操作系统 ucos是一个很好的嵌入式操作系统，对初学者很好。于是我就买了一本书，但是

代码在电脑里调不通，网上也有很多相同的问题，我就看书，分析代码，一遍不行就两遍，三遍，这样才看了入了门，才

知道什么是进程。原来看操作系统书时，根本就不知道进程是个什么东西。
在这段时间掌握的东西不多，但是，对我以后的影响很大，我想起了大学时一个同学跟我说过了一句话：大学里最重要的

不是学到了什么，最重要的是学会怎么学！大概是这个意思。
进入我的避难所
对我来讲，再次进入大学不再是大学，而是避难所。希望这次进入给我喘气和养精蓄锐的机会和时间。我是这样认为和实

践的。
在学校我有三件事：上课，上图书馆，上网。
对于上课，学校开了很多课程，非常好，很多是名人名师讲解，于是很多同学都想学，都去听。我也考虑过，最后放弃。

我是这样认为的，时间是有限的，什么都想学，什么都学不成。于是我把我自己学的课进行了分化，一般的课程通过就行

，重要的一定好好学。我希望不要什么争论学习课程多和少的问题，这仅仅是我的看法。所以我的成绩应该是很差的。分

数低。好在后来的单位没有要我的成绩单，否则就惨了。
我个人感觉是上图书馆的效率比在寝室里高多了，这是我的经验。
上网，我给自己定了规矩：不玩游戏，不灌水，少看电影！因为时间对我来说太少和宝贵了，我没有资格和资本来浪费这

些。上网我就在几个重要的专业技术网站上逛，下载技术资料。我一个朋友最近开了一个嵌入式网站，www.embeded.cn
里面的资料相当一部分是我在网上找的资料。那个网站很不错，资料丰富，找嵌入式方面，特别是嵌入式linux的资料，

异常丰富。
有人会问，您下了那么多资料，怎么看的完和消化的了呢？
我是这样对待这个问题的：
1、
网上资料比较零散，不系统，但是如果把差不多的东西收集起来看就相对完整了，（嵌入式的图书就是这两年特别多，特

别是2004年，简直是向外涌！2003年想买本嵌入式，特别是嵌入式linux的不多。）
2、 对于像我这种入门的来说，很多看不懂，没关系，反复看，我个人对学习方法的一个总结是：重复是最好的老师！
3、 即使有的用不上，也可以收集以后用的上时查阅。
但是我并非什么都要，目前我的技术路线是嵌入式linux，所以像wince之类基本上不收集。
总之，我在学校里我充分利用时间来学习，我看到一些同学整天的挂在网上打游戏，发些无关痛痒的帖子，浪费时间呀！

我真的很痛心！
学习嵌入式
在这里我把它单独列出，文章有点紊乱，但是内容希望有益。
1、学习linux
根据我在论坛的了解，我选择学习嵌入式linux，刚好我们学校也重视嵌入式linux，从实验室到课程安排都是关于嵌入式

linux方面，天时地利！这里我把学习linux的经验和教训说说。
可以这样说，在论坛里说道学习linux差不多就学习linux内核。于是我电脑里安装了linux就开始看linux内核方面的书了

。我记得来学校以前就买到一本陈莉君的讲linux内核的第一版，现在有第二版了。我就开始看那本说，大家说linux内核

情景分析不错，我就买了上下册，后来又买了《深入理解linux内核》，最后也买了毛德操的《嵌入式系统》也是分析

linux内核代码的，主要讲arm相关的。
看内核期间是个非常痛苦的过程，看情景分析有种在森林中找出路，其间我组织了一些同学学习内核，几乎没有几个能坚

持下来的。我认为我是坚持下来了。情景分析在看第一、第二遍是几乎没有摸到门道，我分析有三个方面的原因：1、自

己的基础差，这是最关键的。2、内核本身很难。3、没有交流和高人指点。到了第三遍时我才摸到门，才差不多知道个

linux的大概脉络，很多细节也是稀里糊涂。
学习linux总结，这里声明一下，我指的嵌入式主要是偏向软件的嵌入式。学习嵌入式的重点和难点关键在操作系统，如

果没有掌握操作系统，我认为很难把握一个嵌入式系统。即使在做嵌入式开发中，作应有层的开发几乎可以不知道操作系

统也可以开发，我认为那是浮在表面的。很难深入和提高自己的层次。声明：一孔之见！不可深究！
在学习linux内核过程中犯了一个极其严重路线错误：对 linux几乎不懂就开始学习内核。我个人推荐一个学习路线是：

使用linux―〉linxu系统编程开发---〉驱动开发和分析linux内核。而我差不多相反，实际上你不会使用linux也可以学

习内核，但是如果你懂了这些东西学习更有效率。
关于要不要学习内核的问题，我的回答如下：不一定。如果你是喜欢钻研的那你进入内核会满足你的欲望。同时对你以后

的嵌入式系统的开发有很好的影响。如果你想从事嵌入式linux系统开发，最好对内核有所了解。如果仅仅是做应用开发

没有必要。我打个比喻：c、c++、java等语言是武林中的某个武林派别的话，如什么拳法，什么刀法等，那么linux
内核应该是一个人的内功的反应。
怎么开始学linux内核：最好有三件宝物：《深入理解linux内核》《情景分析》和源代码。
先看《深》，那主要讲原理，好像市场上有本讲原理性并且更浅，《linux内核设计与实现》听说不错。如果没有学习操

作系统的，像我这样的，最好先看看操作系统原理的书。看了几遍后，就看情景分析，最好对着《深》看。两本交叉看，

《深》是纲，《情》是目。最后深入代码。
2、学习嵌入式linux
学习嵌入式，我认为两个重点，cpu和操作系统，目前市场是比较流行arm，所以推荐大家学习arm。操作系统很多，我个

人对开始学习的人，特别不是计算机专业的，推荐学习ucos。那是开源的，同时很小。学习很好。为什么选linux，我不

想讲太多，网上这方面的太多，但是我在工作中发现，做linux 的技术路线很难，在windows几乎不会有的问题，在linux

开发中几乎遍地陷阱。一掉进去划很长时间出来，一旦解决自己又长进了！相对来说开发周期长，难度大。现在资料也逐

渐丰富起来，难度也降低了些！
至于怎么学习，这是他的特色地方，必须有块开发板，我是同学里最早买学习板的，虽然化钱，我认为值。对我实习和工

作产生了很大的影响。
如果没有开发板，那是纸上谈兵。有人说，那要1000-2000亚，的确是，兄弟，看长远的，对您的职业和发展那点钱不算

什么！有的人说我站着说话不腰痛，好吧，钱这东西对我影响很大，我在大学里扫厕所，扫的不错，奖5元/月。兄弟你有

过吗？我认为教育投资是效益最有保障的！我实习拿3k，很多同学拿1 -2k，当然比我高的也有。虽然我现在没有毕业，

但一家公司就签了。从事目前流行的高档的消费电子的研发。对于我两年前一无所知的我，应该有质的变化，我感谢学校

收了我这个废品。当然我也非常的努力。说这么多并不是要炫耀我什么，实际上根本不值得炫耀，虽然现在工作环境和待

遇比较满意，但是，我发现我很差，特别是代码能力，我希望平常大家少玩游戏，多编程。编程才是硬道理！
3、 学习板和培训
你可以不接受培训，但是不能不买开发板。如果你想学习嵌入式一定要买块学习板，最好买块arm9的，贵些也值。可以跑

高级操作系统。这个不要什么品牌公司的，一般不会出什么问题，市场上的板子一般是三星的2410，基本上是抄的。如果

是做产品那要注意些。一般的公司一般要2000，加lcd要3000甚至更多。我接触到有的板只要1200，加lcd也就2000，差别

比较大，我认为学习都够啦。
对于培训，如果有条件最好参加，主要是嵌入式相对别的不同，自己摸索很费时，如果有高手指点非常的好，进步快。特

别是认识做这些的朋友。我接受过培训，认识个朋友。在以后的工作中帮我很多，在这里谢谢他！我记得哈佛的一个MBA

的学生这样说，大意是：在哈佛学到什么不重要，最重要的是这些未来各大公司的高级管理人员是我的同学！真是有远见

！
目前市场是培训比较贵，一个星期两三千，真正算起来也要，那些讲师待遇绝对不会低。但是有个致命的问题是连续上课

，一连几天，效果不佳。我希望社会上多出些1000元左右，并且时间长些，如一个月，一周一到两次课。如果没人做，我

来做，哈哈！
没有想到，一下写了这么多，其实还想写的，比如在中科院的一位老兄是怎样学习linux内核和看书的，真的很感动。他

的为人我很钦佩。也想介绍毛德操的《嵌入式系统》那本书，对学习arm
linux的很好，也想介绍实习和工作的东西，太长了，耽误大家时间。

Tags：嵌入式
分享到： 新浪微博 QQ空间 开心网 人人网
发表评论(0)

姓名 | *
评论内容 | *
验证码 | *