﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Java-fly-文章分类-嵌入式Arm</title><link>http://www.blogjava.net/yusiwei/category/44890.html</link><description>Where there is a will,there is a way!</description><language>zh-cn</language><lastBuildDate>Sat, 01 May 2010 05:04:40 GMT</lastBuildDate><pubDate>Sat, 01 May 2010 05:04:40 GMT</pubDate><ttl>60</ttl><item><title>初学嵌入式开发ARM的学习方法</title><link>http://www.blogjava.net/yusiwei/articles/319850.html</link><dc:creator>鹏凌</dc:creator><author>鹏凌</author><pubDate>Sat, 01 May 2010 04:07:00 GMT</pubDate><guid>http://www.blogjava.net/yusiwei/articles/319850.html</guid><wfw:comment>http://www.blogjava.net/yusiwei/comments/319850.html</wfw:comment><comments>http://www.blogjava.net/yusiwei/articles/319850.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yusiwei/comments/commentRss/319850.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yusiwei/services/trackbacks/319850.html</trackback:ping><description><![CDATA[<span  style="border-collapse: collapse; color: #444444; font-family: Verdana, Helvetica, Arial, sans-serif; font-size: 14px; line-height: 22px; ">这个题目很大，给人一种感觉我好像很成功，其实不然。实际上自己水平不高，甚至很低，但是做过了一些曲折的学习道路，同时把自己真实的学习历程表达出来，希望对后来者有借鉴的意义，甚幸！<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
工作三年、几成废人！<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
我2000年毕业于华中地区的一个理工科大学，专业是机械电子，我当时已经签了一家内陆某个省级机关工作，家里八辈是农民，并且很偏远，能够进入这样的 地方是祖坟有风水。但在毕业前夕有个进入it的机会，我本想进去的，家里人极力反对，阻力可想而知。同时要交4000元的违约金，对我来说是天文数字。大 学里的费用很多是借的，几乎将近一半的费用是在大学勤工俭学挣的，为了省钱，高中一个学期回家一次，大学一年回去一次。并且我个人也有特殊的人生背景（悲 景更确切），这里不多说了，写十篇也写不完，同时偏离主题。这样我就参加了工作。一张报纸一杯茶的日子，几乎下班后有种很空虚和恐慌的感觉。在工作中虽然 是与自己专业有点关系，但是很少。专业几乎荒废。我自己也思考，如果再不出去，自己将会成废人，只好让国家养了。两年后决定出去，但是几成废人，谁要呢， 只好到学校去镀金。这是中国教育和社会的悲哀！<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
至于专业就改为计算机方面，听说好找工作，我说实话不是很对计算机特别感兴趣，生存第一需要。不要笑我，哈哈！<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
考研成绩出来，超过了国家线几十分。那个方向要两个，我第三，但是那年非碘，不面试就按分数来排，自然我落选了。其实给我面试机会也不一定要我，哈哈，自己几斤几两很清楚。<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
最后调剂到另外一个学校，交钱，咬咬牙，交吧！现在仍然债台高筑！<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
进入学校前夕为什么要把这段列出，看后就知道了。<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
单位有网络，经常上网查些英语资料，在那里唯独英语没有丢很多。于是我就在网上查资料，学什么好呢，最后确定学嵌入式把，听说跟硬件相对比较紧密！而我 在大学里多少学习了数字电路，单片机等，所以多少也有所利用，不会真的一无所知。当然在这之前也自学过数据结构，计算机组成原理等。C 语言在大学就学了。哈哈这就是我的家底。<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
我知道自己的基础差，于是我就拿操作<span href="tag.php?name=%CF%B5%CD%B3" onclick="tagshow(event)" class="t_tag" style="word-wrap: break-word; line-height: normal; cursor: pointer; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #ff0000; white-space: nowrap; ">系统</span>，<span href="tag.php?name=%CA%FD%BE%DD%BF%E2" onclick="tagshow(event)" class="t_tag" style="word-wrap: break-word; line-height: normal; cursor: pointer; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #ff0000; white-space: nowrap; ">数据库</span>、数据结构、c++来看，机关有这个好处，空余时间多，于是平常就看书，很痛苦，没有人请教。<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
另外就上网到论坛上去，我就到各个专业的技术论坛，其实是电子论坛和嵌入式论坛。我几乎没有发帖，几乎把几个大型的出名的论坛的帖子翻遍了，虽然有很多重复的，我才知道嵌入式是个什么东东。这些帖子对我以后的学习产生了极大的影响。<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
最关键两点：1、嵌入式是什么？<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
2、嵌入式需要哪些知识？<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
知道了这两点，好办！我就开始规划学习路线。计算机的基本理论不能丢，于是重点看组成原理，数据机构，操作系统、c++.同时论坛上了解到，实时操作系 统ucos是一个很好的嵌入式操作系统，对初学者很好。于是我就买了一本书，但是代码在电脑里调不通，网上也有很多相同的问题，我就看书，分析代码，一遍 不行就两遍，三遍，这样才看了入了门，才知道什么是进程。原来看操作系统书时，根本就不知道进程是个什么东西。在这段时间掌握的东西不多，但是，对我以后 的影响很大，我想起了大学时一个同学跟我说过了一句话：大学里最重要的不是学到了什么，最重要的是学会怎么学！大概是这个意思。<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
进入我的避难所对我来讲，再次进入大学不再是大学，而是避难所。希望这次进入给我喘气和养精蓄锐的机会和时间。我是这样认为和实践的。<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
在学校我有三件事：上课，上图书馆，上网。<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
对于上课，学校开了很多课程，非常好，很多是名人名师讲解，于是很多同学都想学，都去听。我也考虑过，最后放弃。我是这样认为的，时间是有限的，什么都 想学，什么都学不成。于是我把我自己学的课进行了分化，一般的课程通过就行，重要的一定好好学。我希望不要什么争论学习课程多和少的问题，这仅仅是我的看 法。所以我的成绩应该是很差的。分数低。好在后来的单位没有要我的成绩单，否则就惨。<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
我个人感觉是上图书馆的效率比在寝室里高多了，这是我的经验。<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
上网，我给自己定了规矩：不玩游戏，不灌水，少看电影！因为时间对我来说太少和宝贵了，我没有资格和资本来浪费这些。上网我就在几个重要的专业技术网站上逛，下载技术资料。　<br style="word-wrap: break-word; line-height: normal; " />
有人会问，您下了那么多资料，怎么看的完和消化的了呢？<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
我是这样对待这个问题的：1、　网上资料比较零散，不系统，但是如果把差不多的东西收集起来看就相对完整了，（嵌入式的图书就是这两年特别多，特别是2004年，简直是向外涌！2003年想买本嵌入式，特别是嵌入式linux的不多。）<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
2、　对于像我这种入门的来说，很多看不懂，没关系，反复看，我个人对学习方法的一个总结是：重复是最好的<span href="tag.php?name=%C0%CF%CA%A6" onclick="tagshow(event)" class="t_tag" style="word-wrap: break-word; line-height: normal; cursor: pointer; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #ff0000; white-space: nowrap; ">老师</span>！<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
3、　即使有的用不上，也可以收集以后用的上时查阅。<br style="word-wrap: break-word; line-height: normal; " />
但是我并非什么都要，目前我的技术路线是嵌入式linux，所以像wince之类基本上不收集。<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
总之，我在学校里我充分利用时间来学习，我看到一些同学整天的挂在网上打游戏，发些无关痛痒的帖子，浪费时间呀！我真的很痛心！<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
学习嵌入式在这里我把它单独列出，文章有点紊乱，但是内容希望有益。<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
1、学习linux根据我在论坛的了解，我选择学习嵌入式linux，刚好我们学校也重视嵌入式linux，从实验室到课程安排都是关于嵌入式linux方面，天时地利！这里我把学习linux的经验和教训说说。<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
可以这样说，在论坛里说道学习linux差不多就学习linux内核。于是我电脑里安装了linux就开始看linux内核方面的书了。我记得来学校以 前就买到一本陈莉君的讲linux内核的第一版，现在有第二版了。我就开始看那本说，大家说linux内核情景分析不错，我就买了上下册，后来又买了 《深入理解linux内核》，最后猜蛄嗣虏俚摹肚度胧较低场芬彩欠治鰈inux内核代码的，主要讲arm相关的。<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
看内核期间是个 非常痛苦的过程，看情景分析有种在森林中找出路，其间我组织了一些同学学习内核，几乎没有几个能坚持下来的。我认为我是坚持下来了。情景分析在看第一、第 二遍是几乎没有摸到门道，我分析有三个方面的原因：1、自己的基础差，这是最关键的。2、内核本身很难。3、没有交流和高人指点。到了第三遍时我才摸到 门，才差不多知道个linux的大概脉络，很多细节也是稀里糊涂。<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
学习linux总结，这里声明一下，我指的嵌入式主要是偏向软件的嵌入式。学习嵌入式的重点和难点关键在操作系统，如果没有掌握操作系统，我认为很难把握一个嵌入式系统。即使在做嵌入式开发中，作应有层的开发几乎可以不知道操作系统也可以开发，我认为那是浮在表面的。很难深入和提高自己的层次。声明：一孔之见！不可深究！<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
在学习linux内核过程中犯了一个极其严重路线错误：对linux几乎不懂就开始学习内核。我个人推荐一个学习路线是：使用linux—〉linux系统编程开发——〉驱动开发和分析linux内核。而我差不多相反，实际上你不会使用linux也可以学习内核，但是如果你懂了这些东西学习更有效率。<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
关于要不要学习内核的问题，我的回答如下：不一定。如果你是喜欢钻研的那你进入内核会满足你的欲望。同时对你以后的嵌入式系统的开发有很好的影响。如果 你想从事嵌入式linux系统开发，最好对内核有所了解。如果仅仅是做应用开发没有必要。我打个比喻：c、c++、java等语言是武林中的某个武林派别 的话，如什么拳法，什么刀法等，那么linux 内核应该是一个人的内功的反应。<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
怎么开始学linux内核：最好有三件宝物：《深入理解linux内核》《情景分析》和源代码。<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
先看《深》，那主要讲原理，好像市场上有本讲原理性并且更浅，《linux内核<span href="tag.php?name=%C9%E8%BC%C6" onclick="tagshow(event)" class="t_tag" style="word-wrap: break-word; line-height: normal; cursor: pointer; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #ff0000; white-space: nowrap; ">设计</span>与实现》听说不错。如果没有学习操作系统的，像我这样的，最好先看看 操作系统原理的书。看了几遍后，就看情景分析，最好对着《深》看。两本交*看，《深》是纲，《情》是目。最后深入代码。<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
2、学习嵌 入式linux学习嵌入式，我认为两个重点，cpu和操作系统，目前市场是比较流行arm，所以推荐大家学习arm.操作系统很多，我个人对开始学习的人，特别不是计算机专业的，推荐学习ucos.那是开源的，同时很小。学习很好。为什么选linux，我不想讲太多，网上这方面的太多，但是我在工作中发 现，做linux的技术路线很难，在windows几乎不会有的问题，在linux开发中几乎遍地陷阱。一掉进去划很长时间出来，一旦解决自己又长进了！ 相对来说开发周期长，难度大。现在资料也逐渐丰富起来，难度也降低了些！<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
至于怎么学习，这是他的特色地方，必须有块开发板，我是同学里最早买学习板的，虽然化钱，我认为值。对我实习和工作产生了很大的影响。<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
如果没有开发板，那是纸上谈兵。有人说，那要1000-2000亚，的确是，兄弟，看长远的，对您的职业和发展那点钱不算什么！有的人说我站着说话不腰 痛，好吧，钱这东西对我影响很大，我在大学里扫厕所，扫的不错，奖5元/月。兄弟你有过吗？我认为教育投资是效益最有保障的！我实习拿3k，很多同学拿 1-2k，当然比我高的也有。虽然我现在没有毕业，但一家公司就签了。从事目前流行的高档的消费电子的研发。对于我两年前一无所知的我，应该有质的变化， 我感谢学校收了我这个废品。当然我也非常的努力。说这么多并不是要炫耀我什么，实际上根本不值得炫耀，虽然现在工作环境和待遇比较满意，但是，我发现我很 差，特别是代码能力，我希望平常大家少玩游戏，多编程。编程才是硬道理！3、　学习板和培训你可以不接受培训，但是不能不买开发板。如果你想学习嵌入式一定要买块学习板，最好买块arm9的，贵些也值。可以跑高级操作系统。这 个不要什么品牌公司的，一般不会出什么问题，市场上的板子一般是三星的2410，基本上是抄的。如果是做产品那要注意些。一般的公司一般要2000，加 lcd要3000甚至更多。我接触到有的板只要1200，加lcd也就2000，差别比较大，我认为学习都够啦。<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
对于培训，如果有&nbsp;<span href="tag.php?name=%CC%F5%BC%FE" onclick="tagshow(event)" class="t_tag" style="word-wrap: break-word; line-height: normal; cursor: pointer; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #ff0000; white-space: nowrap; ">条件</span>最好参加，主要是嵌入式相对别的不同，自己摸索很费时，如果有高手指点非常的好，进步快。特别是认识做这些的朋友。我接受过培训，认识个朋友。在以后 的工作中帮我很多，在这里谢谢他！我记得哈佛的一个MBA的学生这样说，大意是：在哈佛学到什么不重要，最重要的是这些未来各大公司的高级管理人员是我的同学！真是有远见！<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
目前市场是培训比较贵，一个星期两三千，真正算起来也要，那些讲师待遇绝对不会低。但是有个致命的问题是连续上课，一连几天，效果不佳。我希望社会上多出些1000元左右，并且时间长些，如一个月，一周一到两次课。如果没人做，我来做，哈哈！<br style="word-wrap: break-word; line-height: normal; " />
<br style="word-wrap: break-word; line-height: normal; " />
没有想到，一下写了这么多，其实还想写的，比如在中科院的一位老兄是怎样学习linux内核和看书的，真的很感动。他的为人我很钦佩。也想介绍毛德操的 《嵌入式系统》那本书，对学习arm linux的很好，也想介绍实习和工作的东西，太长了，耽误大家时间。我也不想检查里面的错别字了，很多！就写到这里吧。<br style="word-wrap: break-word; line-height: normal; " />
本文章来自中国IT实验室<a href="http://embed.chinaitlab.com/" target="_blank" style="word-wrap: break-word; text-decoration: none; color: #009999; line-height: normal; ">http://embed.chinaitlab.com/</a></span>
<img src ="http://www.blogjava.net/yusiwei/aggbug/319850.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yusiwei/" target="_blank">鹏凌</a> 2010-05-01 12:07 <a href="http://www.blogjava.net/yusiwei/articles/319850.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>嵌入式</title><link>http://www.blogjava.net/yusiwei/articles/317315.html</link><dc:creator>鹏凌</dc:creator><author>鹏凌</author><pubDate>Fri, 02 Apr 2010 07:33:00 GMT</pubDate><guid>http://www.blogjava.net/yusiwei/articles/317315.html</guid><wfw:comment>http://www.blogjava.net/yusiwei/comments/317315.html</wfw:comment><comments>http://www.blogjava.net/yusiwei/articles/317315.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yusiwei/comments/commentRss/317315.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yusiwei/services/trackbacks/317315.html</trackback:ping><description><![CDATA[<a href="http://download.farsight.com.cn/download/index.htm">嵌入式： http://download.farsight.com.cn/download/index.htm</a>
<img src ="http://www.blogjava.net/yusiwei/aggbug/317315.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yusiwei/" target="_blank">鹏凌</a> 2010-04-02 15:33 <a href="http://www.blogjava.net/yusiwei/articles/317315.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>