一个机械专业小混混(gooogleman)学习嵌入式ARM的真实经历

时间:2021-12-14 08:04:43

        我记得在我毕业一周年的时候,写过一篇文章,大概是讲我学习嵌入式wince驱动的经历 (http://topic.csdn.net/u/20090704/01/43492b64-f7bf-4953-a31f-dbe74d9b4a5d.html?33940),里面讲我貌似一点基础都没有一样,只是一年的时间,貌似就掌握了蛮多wince开发细节似的,现在我要来纠正一下,其实我大学的时候就接触过ARM,只是被打击的一点信心都没有,后来就放弃了。
          先吃排骨汤先,待续~~~~
         2010.05.25 23:00 接上
         2004 年高中复习一年后上了gliet,莫名奇妙的到了机电学院的微电子制造工程专业,表面上写着电子,其实就是机械的一个分支,上了这个专业,不知道是祸是福,因为貌似我也学了蛮多东西,我曾经想过,如果我上了电子专业,那会怎么的结果?无法预知,这就是人生,充满了坎坷,充满了磨难。
        当年的机械制图和材料力学真是折磨死我了,我通常平时上课要么不去听,要么就带一些单片机的书籍进去看,常常闹笑话,就是老师看我很不尊重他,就专门整我,叫我回答问题。我脸皮也狗厚的,总是说麻烦老师再说一遍,我听不清楚。O(∩_∩)O哈哈哈~甚至因为忘记交机械作业被老师挂过,嘿嘿。以前真的一根筋,往死了学电子,高中的失败(我曾经被家里人安排去学医,最终实在受不了返回高中复习的。)让我对自己有很清楚的认识——就是我不喜欢的我不做,我不会听别人的主意,别人是别人,我是我。所以大学四年我都我行我素,别人做什么我不管,我只做我自己。
      在后来通过毛笔字特长进入了gliet 的一系科协的宣传部做助理,从此展开了大学学习电子的漫长旅程。早期是一边做好宣传部本职,出海报,平时电子部有啥活动我也主动去参与,嘿嘿,甚至比电子部的人还要积极,就是因为这样,我后来经过yinbin的推荐,换成了电子部,接下来就是天天跟着当时科协的小牛人H和Z混,总之大伙看我比较积极,就经常照顾我了。
      现在想起来,我当时真的很蠢,学什么都学不会,H和Z经常一周就学会了很多东西,而我一个月甚至三个月都学不会,我有时候经常怀疑自己的能力,真的,因为我明显感觉到自己和队友H和Z的差距太大了,我很害怕成为他们的负累,可惜我真的拖累了他们大学四年——要不是因为我太菜,我们不可能参加两次全国电子设计大赛都和全国一等奖失之交臂。当时的H和Z已经表现出了惊人的技术潜力,很多老师都很看好他们,而我心理很明白,我的最大能耐就是英语比他们好点,所以我的工作就是写文档,跑腿买器件,有时候连器件都买的不合格,真是相当纠结,我也很着急,不知道为什么,很简单的东西我就是学不会——我至今都不明白,为什么那时候我会这么笨!
      大学我就这么一直纠结着,想进步,也很努力,可惜很悲剧,我连一个单片机的程序都写不好,有时候一个简单的单片机程序,别人写200行,我写出2K行出来,真是典型的弱智的一代挫男。嘿嘿!大学期间的几个重大比赛都是H和Z一手包办,我就是跑腿+写文档,也许我写博客的能力就是从那时候锻炼出来的(O(∩_∩)O哈哈哈~)!
       大学就这么过了三年(我们大一就开始自学单片机了),到了大四,我找工作屡屡受挫,我才知道我大学有多么失败,每次笔试我都过不了,总是一些基础题目似曾相识,虽然当时已经是老油条,表面不动声色,可是内心的刺痛让我觉得世界都是灰色的。当时H和Z这些实力强悍的基本都是一次性签署了工作,有些人还更拽,做起来面霸,到处面试,到处要他,他到处都不签协议。而我一直是个悲剧,结果每个人签约了,就我一个人在那里纠结,郁闷!后来大家一起喝酒,他们总是安慰我,心里很不是滋味。
      经历了这么多风雨,老油条一样的我开始反思,我为什么会有这样的结局,我明明大学四年很努力,可是我却什么也得不到,难道真的是我能力有问题?开始我不停地给我找借口,我本来就是个文科生类型,英语,语文,历史,政治成绩很好,数理化怎么恶补还是最差的,只是当时喜欢电子,所以就读了理科,我只能给安慰我自己,这是我给我自己制造的一个悲剧,我倒行逆施,不考虑自己的天赋就学这个,是自找死路!
       2007年的最后一两个月,我一直很纠结,痛苦,一直整天游戏麻痹自己,我不想这样,但是我真的找不到方向,我大学四年把所有时间花在了电子上,可是我却是个找工作不及格大学士,无颜面对江东父老啊。
       不懂为什么,有一天我突然醒悟了,我发现我之所以学不好,那是因为我没有学好基础,尤其是C语言基础,我清楚的记得当时我强迫自己跟上H和Z的节奏,结果我错过打好基础的机会,我错过了gliet非常牛的L老师的C语言学习机会;还有就是我一直处于H和Z的光环下,我一直没有获得自信,很多时候不是我不行,而是我自己吓自己认为我不行。不记得哪一天我突然恍然大悟,我于是找了谭老师的C语言回来看,并且做了很让人惊讶的事情,自己动手做后面的习题,做完了觉得自己还靠谱,然后又找了一些网络上推荐的老外的C语言经典书籍来看,越看越来劲。那段日子,我把C的基础掌握了一下,信心上来了,后来到www.51job.com投递简历,很多人叫我去实习,真的爽呆了,从那天起我的所以阴霾都过去了,给我学习wince驱动打下了基础。
       嘿嘿,说了很长一段自己一段不为人知的悲惨经历,嘿嘿,大家看了是不是对学ARM很有信心啊,我这么挫,都能学,何况是你们呢?!话说回来,其实我不是毕业后才学ARM的,我、H和Z大二下学期就凑钱2K多大洋买了友善当时的2410板子,记得是七寸套餐呢,买回来相当激动,看着像个电脑一样强悍,不知道如何下手,我们连看手册都看不懂,资料又不多,连讲如何使用都没有,尤其是我买到后我连系统都没有烧写过,悲剧!H的基础较好,还在上面弄了几个驱动,没有想到他也是搞的没有信心了——后来他得出结论,我们的能力不适合做软件,不适合做Linux,只适合做单片机底层的(评论@2011年05月06日:其实现在看来就是太急于求成,想把ARM当单片机一样学,完全就是错误的,对自己要求太高,确切的说是对ARM的难度以及学习流程没有把握好,想速成,结果被打击是必然的)。我是个墙头草,连C语言基础都不过关的人,压根没有资格学嵌入式,就这样我们的板子躺了一年,然后最终1200的价格卖掉,真是个悲剧,我们没有通过这个2410学到什么,反而被打击的一塌糊涂,悲剧啊,悲剧啊!。
       我和ARM的经历还没有结束,当时找到工作后信心膨胀,想找个ARM的毕业设计挑战一下,刚开始的时候老师的题目是基于atmel的9260的can总线楼宇控制器,我压根不懂Linux,也不懂ARM是什么,但是我当时真是疯了,想两个月就做出这个来。后来到公司实习一个月,公司只用wince,后来我就跟导师说我要用wince做。于是我又自己掏1100 大洋出来在淘宝买了个QQ2440,我大学勤工俭学+助学贷款完成的,这时候我拿出这么多钱做这个舍友都惊呆了,嘿嘿,我经常做这种败家行为,FPGA和USB实验板都是自己买的,并且自己什么都没有学懂那种。这次QQ2440 的毕业设计我倒是做的很成功,只用了半个月不到就完成了硬件,再用一个星期写了个can 转232 控制应用程序,虽然现在觉得那个东西超级简单,可是当时我真是对我能力的提高的速度惊呆了,要知道,以前我一个人干活总是找不到入口的,不仅如此,做完自己的毕业设计我还帮别人做了四五个,并且不知道怎么回事我那时候FPGA这些玩意居然也会了,真是神了,以前我压根不会写VHDL的语句的,后来和H配合做毕业设计,我居然能和他讨论上了,我清楚的记得,以前他和Z讲什么我都不懂。哎,要是我早一年能够这样,那么我们的全国电子设计大赛一定能获得一等奖,我这个挫人造就了我们三个人的悲剧!
       大学毕业的时候,我做了一次成功的销售——我把毕业设计800 块钱(QQ2440)卖给师弟去了,那些FPGA送给师弟了,USB 实验板子也卖给师弟了,嘿嘿,算下来没有亏多少,自己学了一堆东西,值了!ARM这玩意一次性投资,并且可以当二手卖掉的,不会亏太多的,所以大家压根不会损失什么,只会将来赚的更多。
       至于毕业后,其实我也算个ARM盲,因为毕业设计我压根没有写驱动,连wince内核都没有烧写过,我胆小,我怕烧坏(O(∩_∩)O哈哈哈~)。毕业后我就吸取大学的悲惨教训了:我不会再要求自己很快学会wince,我会一步步来,我先通过bootloader源码来学习,了解ARM的体系架构,在bootloader的学习阶段,我花了接近三个月的时间,并且后期我花了一个月的时间来学习MMU,真是庆幸,当时公司采用类似优龙、飞凌的2440 的开源bootloader (当时第一次买2410 的确没有意识到bootloader对工程师培养的重要性,也许这是我们被打击的最大原因)。这样合理的学习计划,让我对自己越来越有信心,嘿嘿,后来才进入wince的学习,总之是来到CSDN的wince版块是我的幸运,不多说了,在这个帖子写的很详细了http://topic.csdn.net/u/20090704/01/43492b64-f7bf-4953-a31f-dbe74d9b4a5d.html?33940
  很晚了,再说点吧。我觉得很多初学者都有如下疑问:
一、学嵌入式需要具备什么知识?
这个太复杂,对于wince我发过一个帖子,明天找个连接过来,讲的比较好的了。
http://blog.csdn.net/gooogleman/archive/2010/02/25/5325489.aspx#1473445
二、到底是学Linux好还是wince好?
       我觉得都好,我觉得最好专一学一个,学好一个再学别的,不要两个一起学,走火入魔的可能性较大。嘿嘿,很多人认为wince不是开源的,就不靠谱,这是大学生的普遍想法,当年我们都有过,我们都被媒体忽悠了,大家疯狂支持开源,要知道那些媒体是不懂技术的,我们反而被他们忽悠,真是个悲剧。可是出来后发现wince未必不靠谱,他占据了很大的市场,存在即是道理嘛。wince的优点是开发环境友好,兼容性高,入门容易。不过不要高兴,wince入门容易,提高很难,我看过Linux驱动是C语言,但是wince很多是C++,难度比较大,所以千万别鄙视wince了,其实他也大部分开源了。嘿嘿,做了一年多的wince还有很多不懂,要不是想转型做个技术性销售,我还真没有学习Linux的打算呢。总之自己工作干啥的,最好专攻这个,以后想玩别的再说,我大学的最大失败点就是什么都学,结果什么都学不好,什FPGA,USB都去乱搞一通,差点酿成重大悲剧。现在觉得一个有潜力的人,就是基础好,包括理论和实践,还有就是他的方法和信心了。
     很晚了,以前说十一点必须睡觉的,今晚太激动了,写就不停了,嘿嘿。最后建议大家养成良好的作息习惯,身体是革命的本钱哦,我这个月一直生病,深有体会。大伙有问题就博客留言吧。直接在CSDN敲打,没有来得及纠错,见谅。睡觉,This is it!
                                                                                      作者:gooogleman 2010.05.26 凌晨 最后修改2011.05.06

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/gooogleman/archive/2010/05/23/5617981.aspx