嵌入式之路(2014年7月之前)

2019-07-13 07:29发布

从大三到现在毕业将近一年,我断断续续地接触嵌入式LINUX学习已经2年多咯,原先是因为大三上学期时热衷于51单片机,后来才注意到嵌入式这个方向的。 到现在,我还是不清楚曾经的梦想是否还坚持~~~曾经的努力,曾经的彷徨,到现在的些许失落感~~ 有些梦想坚持则能成功,有些梦想坚持之后,面对这个现实的社会,有些显得力不从心... ... 插一个题外话,前一个梦想———上全国一本985工程重点大学的梦想!!! 07年高三参加人生第一次高考,仅过2本线几分,最终安徽一所普通师范学院录取,计算机专业(师范类)。但是父母死活不同意我去,执意要我补习再考,在身边的大多数落榜同学都参加复读的热潮中,在父母的日夜不停地苦口婆心劝说之后,我也加入了复读大军的行列。08年第二次高考,数学发挥失常,结果差几分到达省内1本分数线,当时准备报省内的桂林电子科技大学的,但内心不是很有把握,最终报了东北长春一所普通2本院校,录取专业为机械专业。但到达东北一个月后,发现自己并不喜欢机械专业,还有比较重要一点就是对第二次高考失败的不甘心,所以这次不顾父母的阻挠,毅然退学,参加补习班,再来一年。09年的第三次高考,出人预料,超出1本线60多分,如愿以偿地进入一所全国985重点大学,录取专业为电子专业。 第一个梦想算是实现了,但是随之而来的是本科松散的课程,慵懒的课余生活,不断地上课、考试。渐渐觉得,读本科,在哪个大学读都差不多,二本也好,三本也罢,就自己算身在重点本科又有多大区别呢!大一大二在慵懒的生活中度过,前两年只不过学习了一些通用的专业课,无非就是高数、线代、概率论等课程,关乎专业的就C语言和模电数电了!一踏入大三,我实在是受不了之前的生活了,除了学习了C之外,啥都不懂,大学两年已然过去,后面的那两年可咋办啊!应该寻求一种改变了,当时只隐约觉得,对于电子类专业,单片机很重要,所以在还没有开设单片机这门课时,我已经在淘宝网购一套51开发板,自己看视频教程来写代码了!!!跟着教材学习完51单片机,顿时不知道往下该干嘛了,因为没人带,没人指点,也没项目指导,所以就是跟着教程练习一遍而已。由于玩开发板,对电子行业也有些了解,第一次听到了ARM这个名词,觉得ARM就是单片机之王,接着就是第二个词—Linux,只知道它是一个操作系统。当时两者对于我而言,是深不可测的技术,是很难很高深的东西。 到了大三下学期,也就是2012年4月份,才开始在校园论坛上面发帖子求助,一位本校的研究生给我推荐说,学习嵌入式开发,最后我花了四百块钱从他手头上买了一块ARM9的开发板,当时他一个劲地说,你要好好学习这个,这个技术很先进,也很热门,所以就闷头闷脑地开始了我学习ARM+Linux的道路了!!!只是我对这个领域一片空白~~~~零基础学习!!也是在无人指导,无人带领的情况下,自己下课后整天在那里捣鼓着那块开发板,跟着教程和书籍学习了三四个月,发现除了懂一些简单的操作系统理论诸如多线程、多进程,学会简单的linux操作指令,学会搭建交叉编译环境的搭建和裁剪操作系统之外,什么都是一头雾水了。当时也只是把ARM当做一块高级的单片机来用而已咯。 到了大四,毕业季到来了,上学期就开始忙着参加各种校招,准备面试笔试之类的,学习也就中断了。参加校招时,向很多企业都投递了简历,甚至诸如华为、中兴之类的研发岗位,只是了无回音,珠三角很多企业也到我们学校招人,只是每场招聘会都会爆满,简历一摞摞的,自然而然的,我都没挤进去!最后家乡的一个大型机械制造类国企招人,我就被录用了,但是跟我的专业,我的兴趣也越来越远了! 大四,除了应聘之外,大四上学期开设了《嵌入式系统》这门专业课,但是觉得也就那样,上课考试而已,没多少实践的机会,收获不大,而全国软考—嵌入式系统设计师 我也考过了,全国计算机四级—网络工程师也通过了!!!但是发觉,这些证书对于我以后的求职是几乎毫无用处。当时总觉得单纯的理论知识学了不用,到头来还是一窍不通。我个人觉得,理论知识的学习是必须的,但是实际的项目经验,实际动手操作,非常的重要,有时候显得比理论知识更重要。因为很多疑惑很多问题是在你实际操作过程中才会遇到,你才能试图去解决、去思考、去推敲其中的缘由。 纵观在大学期间整个学习嵌入式过程:C语言、汇编语言、数据结构、计算机硬件及接口、基本的操作系统原理等这些知识我都通读了一遍,C语言是精读还有加深编程练习的。 大四下学期,又是沉浸在毕业设计和毕业论文当中,只是偶尔抽些时间出来,写写简单的底层驱动代码!其实到达最后,我没有真正达到开发项目的水平,比如经典的 远程实时监控系统、MP3项目等等,本来毕业之前是想达到这种水平的,只是最终都被各种各样的事占用了时间,没有去实现。 毕业后,进了家乡那家国企上班。发现,与我所学的专业以及在校时的兴趣好爱毫无关联,所以入职后总伴随着某种失落感,在公司的三个月中,下班的空余时间和周末都还在抱着嵌入式的书籍来看,甚至于在公司的图书馆、会议室、车间的休息室还在了解着嵌入式的行情。。。或许,这冥冥之中就注定了我要辞职吧,三个月后我真的就递交辞职书了。我的下一站在哪里呢?我要去大深圳——IT行业的前沿。2013年7月17号—10月10号,我职业生涯的第一份工作就此OVER了,也是第一次裸跳。 10月17号晨车到东莞,19号晚到深圳宝安区,暂时在一个高中哥们那里落脚。当时对于这个陌生的城市,北上广深之一。当时住在隔壁的,也是一个刚离职来深圳找工作的本科毕业生,他已然在深圳找了半个月的工作了,从他那里打听了一下行情,网投的网站、深圳的各大人才市场、坐车的方式、面试的情况等等等等。但是我从他那了解很多,总之,情况不容乐观。 深圳,这个围城外的人看似天堂,围城内的人却觉得是炼狱。 满大街的应届毕业生,公车上,地铁里,街道边。。。到处是手拿简历,背着背包、带着眼镜的求职者,大多数是刚毕业或者毕业不满一年的大学生。行情是什么呢?行情是本科生一般的薪酬是2500—3000、岗位多数是在车间产线的储备干部,简而言之,就是以后在一线搞生产管理。这边缺口的职位也大多数是打酱油的、对将来发展用处不大的品质保证类(QC)、体系认证类、测试类(TE)…与技术更加不沾边了,我所寻求的是研发岗、技术岗。。。在各大招聘网站上输入“嵌入式工程师”、“硬件工程师”。。。搜索到的结果大多数要求是:在IT行业有3到5年经验,有过多个独立开发的企业型项目,有视频DVR项目经验,熟悉A8、A9平台云云。。。有的公司更绝,在招聘要求中直接用显眼的字体表明:谢绝应届毕业生。我瞬间无语了。。。 网投嘛,所以广撒网。。。前前后后投了两百家公司的开发类职位,这包含了TP-LINK、富士康这样的名企,也包含了很多几十个人的小私企。大的企业就收到了龙华富士康鸿超准事业群的面试邀请,其他的都是一些小公司。当时收到富士康的电话通知时,我还在南山区的大南山上眺望深圳湾的海景,听那个HR说富士康正在准备推出自己品牌的智能手机,需要大量的技术储备人才,觉得挺吸引人的,所以我两天后就如约而去龙华新区,富士康龙华厂区拥有30万员工,几年前的10连跳事件使富士康蒙上了一层神秘的面纱,此行,我不仅是去面试,也是去解开心中谜底。但是最终,发现富士康需要的也仅仅是品保类、质检类,不招收没有经验的大学生作为技术开发,而且试用期+考察期要长达9个多月。最后我还是放弃了。 之后,断断续续收到一些面试的邀请,只是都是一些小型加工厂,而且都是与产线相关的定位很模糊的——储备干部。我想,我在万不得已的情况下,是不会去这类企业的这类职位的。因为这类职位就是呆在产线上的 产线维护。之后,收到了一个规模比较大的企业的录取通知,职位是电子工程师。这是我预想不到的,因为距离我面试这家企业已经有20多天了,而现在才给出通知,让我好不难受! 其实该公司是我来深圳后面试的第一家公司,实打实的研发部门的研发岗位,这是毋庸置疑的,因为我面试时就是在他们工作的地方,这与校招完全不一样,面试官就是该部门的主管以及工程师,而不是人力资源的那些HR,面试的过程也很实在,你在校时做过什么项目,或者参加过什么设计大赛;课程设计和毕业设计做的是什么,用的是什么芯片、什么平台、以及成果,是否会焊接、是否画过PCB。他们的工作的地方堆满了各类PCB板,排线,各种元器件… …桌上摆着示波器、万用表等仪器,这与学校研究生的实验室很相像,也很接近。 人事部的那位HR在电话中跟我聊了蛮久的,其实我有点犹豫,我的梦想是进入偏向于软件开发的嵌入式开发,只是现在的岗位更偏向于硬件电路的开发,与真正的嵌入式还是有区别的,硬件电路开发更多注重的是单片机开发以及电路的调试与搭建,没有涉及任何的操作系统。但是后来还是选择了来到这个公司,我太需要进入真正的研发部门历练历练了,就算偏离了原来的方向,但是这已经是我能接近嵌入式开发最近距离的岗位了。 我们现在做的就是测试手机屏幕的仪器,所用的平台就是友善之臂的S3C6410平台,用ARM11去驱动分辨率很高的手机屏幕,目前能驱动屏幕的分辨率已超过1920*1080,达到2560*1920使用主频超过1Ghz的高速信号驱动,对电路的性能以及对代码的稳定性很讲究,代码不稳定,电路设计不好,那之后就是一大推的问题,芯片极易烧坏,电容电阻易击穿,点亮的屏幕会出现抖动、瑕疵、波纹、变 {MOD},那就惨了。 有人或许说,其实现在我们的手机的屏幕看似很容易驱动,小米3或者魅族MX3那么高的分辨率不是都驱动起来了吗?其实,你应该想到,小米3之类的高端手机的核心芯片是什么架构的,ARM A15平台,动不动就四核、八核。。。况且里边集成了MIPI DSI接口,我们不可能大批量地用这种芯片去做测试仪器吧,我们用的是主频才533MHz的ARM11单核芯片,之前还用过S3C2440 ARM9做过。S3C6410里边集成的只有RGB接口,RGB的频率也才66.5MHz,所以得需要桥接芯片,把66.5 MHz的RGB信号转换为频率达1GHz的DSI高速信号。总之现在我们得研究这种纯英文的液晶屏资料,各种datasheet、再设计电路主板,转接板,调试电路,再设计程序,调试程序… … 只是现在,在这个企业呆了6个月了,觉得,我们几个去年刚毕业来到这里的员工,大多数时间是在焊接室里焊接板子,每天吸着带有重金属铅的烟雾,做着跑腿打杂的活儿,只是偶尔有一些机会画画PCB layout,设计一些板子和写一些简单的单片机程序、改写代码驱动其他一些LCD罢了,在这里几个月,我就驱动过lenovo手机LCM以及一些720P分辨率的手机LCM,只是完全是裸机程序,不涉及操作系统。这样的生活和工作还会延续很久,与自己当初的梦想还是差别很大的。最最重要的是这里规矩太过于严苛了,搜身、安检、监控、甚至于要查看你的手机相册,看是否你偷拍了公司的产品和信息。我们觉得这是否是在坐监狱呢~~~有时候也想少些抱怨,多些沉淀和积累,只是我们都被搜身很多次了,手机也被翻看了几次,人的基本的忍耐度也是有极限的吧。 不过,我还是没有放弃自己的爱好——嵌入式LINUX开发,我现在下班后,一直在研究单核ARM Cortex-A8的资料,发现内部的很多寄存器和原理s3c6410大同小异,只是在原有的基础上提高了和改进了些许性能,提高了主频,增加了一些多媒体处理功能等等。一直在捣鼓着A8的开发板,写代码,希望自己能更进一步加深对驱动代码的编写能力以及linux底层的一些机制吧!如果是两年前在大学时自己就能使用A8的板子,那简直是异想天开,痴人说梦!当时连ARM是什么都不知道呢。 第二个梦想坚持了,也会成真的~~