技术人生:我与嵌入式的不解之缘

时间:2022-10-28 01:05:05

技术人生:我与嵌入式的不解之缘

本文以嵌入式学习为中心,根据作者学习与工作的真实经历分享了嵌入式学习之路,嵌入式培训机构的选择,嵌入式Linux学习重要知识点和对工作和生活的理想。这些对嵌入式初学者和爱好者有一定的指导参考意义。

嵌入式学习之路

2003年我毕业于陕西理工学院的电子信息工程专业,当时对Linux操作系统一无所知,几乎不知道Linux系统如何安装。大学毕业前由于对计算机专业充满兴趣,所以毕业时考入北京大学软件学院,读了2年的软件工程硕士。从那以后,我对软件开发有了强烈的兴趣。2004年底,我还在上研究生期间找了份实习工作:在Motorola中国有限公司做手机测试。由于之前没有任何工作经验,所以即使测试工作也让我学到了很多知识,比如软件开发流程、软件测试流程等。在Motorola这种垒球性公司里,我不仅学到了专业技术知识,更学到了企业的一种文化和工作方式。实习了6个月,实习结束时我们部门经理有意让我留在Motorola工作,由于我对软件开发更感兴趣,所以还是谢绝了经理的好意,去了一家国内手机设计公司(德信无线),做嵌入式应用软件开发。当时开发的手机平台用的是TI的,使用的操作系统是Nucleus,开发工具主要是VC。值得一提的是,我的第一份正式工作的工资和我在Motorola实习的工资几乎差不多(4000元左右)。如果当时继续留在Motorola工作,工资至少在6000元以上,放弃较高的工资与福利往往是比较难的,但这个决定却使我转向了我喜欢的职业发展方向。假如我当时留在了Motorola,正常发展情况下现在应该会是一个测试组经理,工作应该比现在的安逸、舒适,但这并不是我想要的生活。

我是一个喜欢挑战自我的人,在德信无线工作时,虽说工作中很少使用Linux系统开发,但自己已经开始研究ARM+Linux了。记得当时花了1250元买了一块S3C2410开发板,用了1年多时间仔细分析U-boot、Kernel、常见驱动程序等,并且做了很多实验。不过这个自学过程的确非常痛苦,经常会遇到各种莫名的问题,一般是通过网络或者向有经验的朋友请教,最多的时候还是自己去思考。这段经历让我深有感触,所以萌生了写嵌入式Linux开发入门的书籍,其目的就是为想学习嵌入式Linux开发的朋友提供一些实用、简单的方法,让他们少走弯路。经过和清华出版社商讨之后,我的书稿很快就被确定了。2007年8月我的第一本书《ARM嵌入式Linux系统开发从入门到精通》在全国发行了,目前已被很多高校和培训机构指定为教材。该书的畅销给了我很大的鼓舞,让我结识了很多五湖四海的读者朋友,也让我更加坚定自己的职业规划。随后,我又先后在威盛电子、02Micro工作过,职位是高级软件开发工程师,此时的工资已经大于10000元,而3年前我的工资才只有4000元多点。这里,我要告诫还在入门阶段的师弟、师妹,千万不要为了眼前的利益而放弃了自己的理想。刚毕业时很多同学工资都比我高,可两三年之后,我的收入已经超越了大部分同学的收入。

总结一下我的职业经历,首先,第一份实习工作让我正式进入了嵌入式行业,虽然不是嵌入式开发,但也对我日后做嵌入式软件开发奠定了良好基础。其次,我的第一份正式工作让我懂得了软件开发与实际产品的紧密结合。另外,利用大部分业余时间来自学ARM+Linux知识,让我更加确定了自己的技术道路。最后,在威盛电子、O2Micro从事Linux设备驱动开发更加强化了我的技术背景。

必须要参加培训吗

通过我的个人经历来看,学习嵌入式不见得非要参加培训。那既然这样,我和几位好友为什么要创立北京顶嵌开源科技有限公司(),做嵌入式高端培训与项目开发呢?第一、市场广阔。嵌入式行业涉及消费类电子、智能手机、数字家电、多媒体、视频编码解码、图像处理、安防监控、工业应用等领域。嵌入式行业是目前发展前景广阔的朝阳产业,很多专家称为“后PC”时代,很多人不明白什么是后PC时代,其实就是说目前嵌入式行业的发展类似于之前的PC行业发展。既然是一个朝阳产业,那么选择这个行业发展是一个明智的选择。第二、嵌入式是一个综合性学科。包含了计算机、电子、通信、自动控制等学科,正如何立民教授所说“嵌入式系统是一个无限大的系统”。这对于一个初学者来说经常是不知如何下手,即使知道了要学什么,但是遇到问题就会一筹莫展,因为嵌入式系统出现问题通常软件,硬件都有可能,所以要排除是硬件问题还是软件问题,这对初学者来说是一个很困难的事情。自学能力强的人,也许能坚持下去,但很多人可能会半途而废,这也是嵌入式培训机构存在的必然。第三、我们有强有力的技术团队。顶嵌的核心成员来自Motorola、三星电子、成盛电子等知名公司,并且都有至少5年以上的嵌入式实际项目研发经验。第四、热爱技术分享。如果没有对技术传播的热爱,就不可能做好培训事业。顶嵌认为培训是一个伟大的事业,它能影响一批人的职业生涯,所以我们正为如此伟大的事业而努力。

是否选择培训,这要和你的时间成本与经济成本之间去权衡。如果你有充裕的学习时间,并且有信心把它坚持下去,那么你完全可以采取自学。但作为没有嵌入式开发经验的你,准备好了吗?由于嵌入式开发学习不像桌面开发那么容易入门,其门槛较高(软、硬件知识都需要),所以很多人自然就选择了培训。目前嵌入式培训机构蜂拥而入(这也说明嵌入式行业发展潜力之大),面对众多培训机构该如何选择?这些机构是否都如广告中所描述的情形,这需要擦亮眼睛仔细辨别。我在此提供一些建议仅供参考:

1 不要相信“100%保证就业”,学习不全是靠老师教出来的,自学能力是长期发展的一项重要技能,再好的学校,如果不好好学习,学生也不可能胜任企业的工作要求。

2 分析课程体系,选择培训机构。首先要看课程体系的安排,如果讲述的内容不是你想学习的或者不是市场上目前需要的,那么还不如不学。

3 了解师资。代课老师是确保学习质量的重要条件之一,老师的授课技巧、项目经验、责任心都会直接影响培训的效果,这点需要多方打听。

4 了解课程项目。嵌入式培训是要完全动手才能掌握的,纯粹的理论是不能胜任系统开发要求的,所以课程中所涉及的项目是学习的重要目标。

5 培训的价格。这是培训很重要的一项考虑因素,进行多家比较,其中要了解学费、实验费、教材费、证书费等。

选择培训机构不只是基于以上这5点,还有很多因素要考虑。总之,选择合适的培训机构是你进入嵌入式行业发 展最重要的条件之一。

嵌入式linux知识要点

根据我学习的经验,下面列出了一些学习嵌入式Linux应该掌握的内容。

理论知识:

计算机基本理论;cPU体系结构,内存管理,文件系统,进程调度,Linux常用操作。

Linux驱动知识:

串口驱动;I2C/SPI驱动;IO驱动;DMA驱动。中断源,竞争,并发,阻塞,异步;usb驱动;flash驱动、文件系统;网卡驱动;LCD驱动;Linux内核调试。

Liuux编程知识:

输入/输出,文件操作;字符串,数据结构,堆栈,链表,(查找)算法,二叉树;线程,线程属性,线程同步(锁,信号量,条件变量);进程:守候进程,进程通信管道,信号,SystemV(消息。共享内存,信号灯),读写锁,套接字;网络:socket,ftp客户端,tftp客户端,httpserver,snmp命令;环境变量,库默认搜索路径,arm-linux-gcc库路径,设置搜索路径,编译流程,1ds文件,内联汇编;gcc.1d,ar,ranlib,objdump,readelf,objCopy工具;make makefilel shell,pefl;设备编程LCD,串口等;高级调试方法。

以上内容是笔者认为学习嵌入式Linux开发非常重要的知识点,这些知识点已经在顶嵌的课程中实际应用,希望对读者有所参考。

我的梦想

每个人从小都有梦想(这里指理想),但几乎80%以上的人小时候的梦想并没有成为现实。我小时候梦想过当警察、演员、歌星等,但这些职业和我目前的工作毫不相干,因为小时候毕竟年龄小,还不了解自己更不了解社会。

对于将要进入而立之年的我,现在的梦想应该更加接近实际。我有两个梦想,分别在事业上和生活上。

在事业上,我的梦想是凡是通过我们培养的学员能在短期内掌握嵌入式Linux开发的核心技能,那么这个短期内如何量化呢?根据我的个人经历,我大概花了近2年时间自学嵌入式Linux开发,自己买了开发板,做了很多实验,基本能独立开发项目。我的梦想就是学员能在4个月或者更短的时间内掌握这些技能。这是我的梦想,也是顶嵌公司的梦想。

在生活上,我的梦想是在退休之前能带着家人游遍祖国大好河山,退休之后能和家人环游世界。

这是我给大家分享的两个梦想。其实在现实中,我经常会给自己设定一些短期目标,并且会根据事情的发展不断提升我的目标。我是一个喜欢挑战自我的人,不是一个知足常乐的人。我给自己设定的目标90%都能实现,但还有10%不能实现,其实我要奋斗的就是这10%。

也许有人会觉得我的梦想只是梦想,就像共产主义理想,几乎不可能实现,但我会为此而努力。即使坚持不到终点,我会一直在前往梦想的路上奔跑。

结语

在此,我想告诉大家,一旦选择了嵌入式方向,就应该义无反顾地坚持下去,明天的好坏不是由明天决定而是取决于今天的努力,我想以汪峰的一首歌《怒放的生命》歌词来表达我在嵌入式领域的感受:“我想要怒放的生命,就像飞翔在辽阔天空,就像穿行在无边的旷野,拥有挣脱一切的力量”。

上一篇:产品汇总:测试测量工具 下一篇:基于ST7538和ATmega88V的电力线载波通信模块的...