首页 嵌入式工程师的感悟

嵌入式工程师的感悟

举报
开通vip

嵌入式工程师的感悟我9月份刚找完工作,现在是在搞飞思卡尔的单片机,主要是我喜欢这个方向。 嵌入式一般有两个方向,应用和底层系统。写应用的一般是写网络编程也就是TCP/IP和linux 高级编程,写图形介面的也有,去面试过几家,有安防公司,游戏公司之类的。 写底层的一般就是写单片机,FPGA,linux内核定制,驱动之类的。这类的工作要求有点小高。有些公司还会要求你会PCB,起码要看得懂电路原理图,可以跟据原理图来写程序,一般一些工业控制公司会招这样的人,不过招的不多,而且都是要求有几年的工作经验,起码要写过几个嵌入式的项目,而...

嵌入式工程师的感悟
我9月份刚找完工作,现在是在搞飞思卡尔的单片机,主要是我喜欢这个方向。 嵌入式一般有两个方向,应用和底层系统。写应用的一般是写网络编程也就是TCP/IP和linux 高级编程,写图形介面的也有,去面试过几家,有安防公司,游戏公司之类的。 写底层的一般就是写单片机,FPGA,linux内核定制,驱动之类的。这类的工作要求有点小高。有些公司还会要求你会PCB,起码要看得懂电路原理图,可以跟据原理图来写程序,一般一些工业控制公司会招这样的人,不过招的不多,而且都是要求有几年的工作经验,起码要写过几个嵌入式的项目,而且不同的公司要求也大不相同(主要是各个公司用的芯片不同)。 面对如此火热的行业,如何才能成为嵌入式Linux开发工程师?成为一名合格的嵌入式Linux开发工程师需要学习哪些知识? 一:C语言嵌入式Linux工程师的学习需要具备一定的C语言基础,C语言是嵌入式领域最重要也是最主要的编程语言,通过大量编程实例重点理解C语言的基础编程以及高级编程知识。包括:基本数据类型、数组、指针、结构体、链表、文件操作、队列、栈等。 二:Linux基础Linux操作系统的概念、安装方法,详细了解Linux下的目录结构、基本命令、编辑器VI ,编译器GCC,调试器GDB和Make 项目管理 工程项目管理制度介绍工程项目管理课程设计政府投资项目管理意见建设工程项目管理合同工程项目管理培训总结 工具, Shell Makefile脚本编写等知识,嵌入式开发环境的搭建。 三:Linux系统编程重点学习标准I/O库,Linux多任务编程中的多进程和多线程,以及进程间通信(pipe、FIFO、消息队列、共享内存、signal、信号量等),同步与互斥对共享资源访问控制等重要知识,主要提升对Linux应用开发的理解和代码调试的能力。 四:Linux网络编程计算机网络在嵌入式Linux系统应用开发过程中使用非常广泛,通过Linux 网络发展、TCP/IP 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 、socket编程、TCP网络编程、UDP网络编程、Web编程开发等方面入手,全面了解Linux网络应用程序开发。重点学习网络编程相关API,熟练掌握TCP协议服务器的编程方法和并发服务器的实现,了解HTTP协议及其实现方法,熟悉UDP广播、多播的原理及编程方法,掌握混合C/S架构网络通信系统的设计,熟悉HTML,Javascript等Web编程技术及实现方法。 五:数据结构与算法数据结构及算法在嵌入式底层驱动、通信协议、及各种引擎开发中会得到大量应用,对其掌握的好坏直接影响程序的效率、简洁及健壮性。此阶段的学习要重点理解数据结构与算法的基础内容,包括顺序表、链表、队列、栈、树、图、哈希表、各种查找排序算法等应用及其C语言实现过程。 六:C++ 、QT C++是Linux应用开发主要语言之一,本阶段重点掌握面向对象编程的基本思想以及C++的重要内容。图形界面编程是嵌入式开发中非常重要的一个环节。由于QT具有跨平台、面向对象、丰富API、支持2D/3D渲染、支持XML、多国语等强大功能,在嵌入式领域的GUI 开发中得到了广范的应用,在本阶段通过基于QT图形库的学习使学员可以熟练编写GUI程序,并移植QT应用程序到Cortex-A8平台。包括IDE使用、QT部件及布局管理器、信息与槽机制的应用、鼠标、键盘及绘图事件处理及文件处理的应用。 七:Cortex A8 、Linux 平台开发通过基于ARM Cortex-A8处理s5pv210了解芯片手册的基本阅读技巧,掌握s5pv210系统资源、时钟控制器、电源管理、异常中断控制器、nand flash 控制器等模块,为底层平台搭建做好准备。Linux平台包括内核裁减、内核移植、交叉编译、GNU 工具使用、内核调试、Bootloader介绍、制作与原理 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 、根文件系统制作以及向内核中添加自己的模块,并在s5pv210实验平台上运行自己制作的Linux系统,集成部署Linux系统整个流程。同时了解Android操作系统开发流程。Android系统是基于Linux平台的开源操作系统,该平台由操作系统、中间件、用户界面和应用软件组成,是首个为移动终端打造的真正开放和完整的移动软件,目前它的应用不再局限于移动终端,还包括数据电视、机顶盒、PDA等消费类电子产品。 八:驱动开发驱动程序设计是嵌入式Linux开发工作中重要的一部分,也是比较困难的一部分。本阶段的学习要熟悉Linux的内核机制、驱动程序与用户级应用程序的接口,掌握系统对设备的并发操作。熟悉所开发硬件的工作原理,具备ARM硬件接口的基础知识,熟悉ARM Cortex-A8处理器s5pv210各资源、掌握Linux设备驱动原理框架,熟悉工程中常见Linux高级字符设备、块设备、网络设备、USB设备等驱动开发,在工作中能独立胜任底层驱动开发。 以上就是列出的关于一名合格嵌入式Linux开发工程师所必学的理论知识,其实,作为一个嵌入式开发人员,专业知识和项目经验同样重要,所以在我们的理论学习中也要有一定的项目实践,锻炼自己的项目开发能力。 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 。我做嵌入式近10年了,我来帮你回答。 1:不知道嵌入式这个行业是否真如那些咨询师们所说的是低门槛,好就业,而且高薪资。 嵌入式绝对不是什么低门槛的事情。没有哪个行业是低门槛而又好就业又高薪水。如果有,那也绝对是暂时的。中国不缺的就是聪明人,如果有这样的行业,我想早就被挤破门了。轮不到我们这些后知后觉的人。而嵌入式绝对是一个相对来说,门槛比较高的行业。因为嵌入式的要学东西比较多,你要做嵌入式,你必须会精通一门编程语言,比如C,你必须懂操作系统比如linux,你还必须懂处理器比如arm,而如果你做纯粹的软件开发,那你也许只需要懂一门编程语言就可以了。嵌入式之所以工资相对高,主要是因为它要学的东西比较多,现在需求量也比较大。但是如果你想精通的话,没有三年五年那是不可能的。 2:更不知道花费万把块钱和半年时间上这个培训班是否真的值得。 至于培训是否值得,我想每个人的实际情况不一样。如果让我选择,我会选择自己学习,因为培训班的作用无非就是提供给你一个大家一起学习的环境,而如果你真正想学,你完全可以找资料来自学。如果楼主还有时间,不妨自己学下。实在觉得困难的话再去培训吧。当然,楼主如果家里经济不错的话,也可以去培训吧。但是如果真的下决心要学的话,其实可以去找找自学的方法。 3:不知道在上培训班的时候能否通过个人努力来弥补基础差的缺陷 其实这不是你最大的缺陷,你最大的缺陷在于你的信心。你自己没有完全的信心来学好它。我也是这样过来的,从零基础到现在也是部门经理。每个人都有一个菜鸟的过程,但是你不要问你可不可以学好。你能不能学好那在于你自己肯不肯花时间来学习。你肯不肯坚持来学习。 也许看到这里你会说我是夸夸其谈,但是我想我说的是真心话,我自己就是这样过来的。那也许你会说你该怎么自学。我可以转一篇一个专科生写他怎么学习嵌入式的步骤,学习的课程给你看看,希望对你有所帮助。 专科生学嵌入式到找到工作的前前后后--学习的榜样 先做个自我介绍,我07年考上一所很烂专科民办的学校,学的是生物专业,具体的学校名称我就不说出来献丑了。09年我就辍学了,我在那样的学校,一年学费要1万多,但是根本没有人学习,我实在看不到希望,我就退学了。 退学后我也迷茫,大专都没有毕业,我真的不知道我能干什么,我在纠结着我能做什么。所以辍学后我一段时间,我想去找工作,因为我比较沉默寡言,不是很会说话,我不适合去应聘做业务。我想应聘做技术的,可是处处碰壁。 一次偶然的机会,我才听到嵌入式这个行业。那天我去新华书店,在计算机分类那边想找本书学习。后来有个女孩子走过来,问我是不是读计算机的,有没有兴趣学习嵌入式,然后给我介绍了一下嵌入式现在的火热情况,告诉我学嵌入式多么的有前景,给我了一份传单,嵌入式培训的广告。听了她的介绍,我心里痒痒的,确实我很想去学会一门自己的技术,靠自己的双手吃饭。 回家后,我就上网查了下嵌入式,确实是当今比较热门的行业,也是比较好找工作的,工资也是相对比较高。我就下决心想学嵌入式了。于是我去找嵌入式培训的相关信息,说真的,我也很迷茫,我不知道培训是否真的能像他们宣传的那样好,所以我就想了解一段时间再做打算。 后来,我在百度知道看到一篇让我很鼓舞的文章《如何学习嵌入式》,是一个嵌入式高手介绍没有基础的朋友怎么自学入门学嵌入式,文章写的很好,包含了如何学习,该怎么学习。他提到一个方法就是看视频,因为看书实在太枯燥和费解的,很多我们也看不懂。这点我真的很认同,我自己看书往往看不了几页。 我在想,为什么别人都能自学成才,我也可以的!我要相信自己,所以我就想自学,如果实在学不会我再去培训。 主意一定,我就去搜索嵌入式的视频,虽然零星找到一些嵌入式的视频,但是都不系统,我是想找一个能够告诉我该怎么学的视频,一套从入门到精通的视频,一个比较完整的资料,最好能有老师教,不懂可以请教的。 后来我又找到一份很好的视频,是在嵌入式学习网推出的一份视频《从零基础开始学嵌入式》,网址:里面的教程还不错,很完整,可以让我从基础的开始学起。视频不便宜啊,但是我也忍了,毕竟买几本书都要几百了,何况他们还有半年的技术咨询和服务,算值了。 下面介绍下我的学习流程,希望对和我一样完全没有基础的朋友有所帮助。 收到他们寄过来的光盘后,我就开始学习了,由于我没有什么基础,我就从最简单的C语言视频教程学起,话说简单,其实我还是很多不懂的,我只好请教他们,他们还是很热心的,都帮我解决了。C语言我差不多学了一个礼拜,接下来我就学了linux的基本命令,我在他们提供linux虚拟机上都有做练习,敲linux的基本命令,写简单的C语言代码,差不多也就三个礼拜。我每天都在不停的写一些简单的代码,这样一月后我基本掌握了C和linux的基本操作。 接下来我就去学习了人家的视频的培训教程,是整套的,和去参加培训没有多大的区别,这一看就是两个月,学习了ARM的基本原理,学习嵌入式系统的概念,也掌握了嵌入式的环境的一些搭建,对linux也有更深层次的理解了,明白了嵌入式应用到底是怎么做的,但是驱动我只是有一点点的了解,这个相对难一点,我想以后再慢慢啃。 这两个月,除了吃饭睡觉,我几乎都在学习。因为我知道几乎没有基础,比别人差劲,我只能坚持努力着,我不能放弃,我必要要靠自己来养活自己,必须学好这门技术,同时我不懂的就问,这里真的很感谢他们的技术客服对我的任何问题都是耐心的解答,每天都我几乎都有好几个问题问他们,然后我就把不懂的问题总结记下来,这样慢慢积累了一段时间,我发现自己真的有点入门了。 最后的一个月,我就去看关于实践部分的内容,了解嵌入式项目具体的开发流程,需要什么样的知识,我就开始准备这方面的知识,也就是学习这方面的视频,同时他们建议我去找了找一些嵌入式面试的题目,为自己以后找工作做准备。我就到网上找了很多嵌入式的题目,把他们理解的记下来,这样差不多准备了20天左右 我觉得自己差不多入门了,会做一些简单的东西了。我就想去找工作看看,于是我就到51job 疯狂的投简历,因为我学历的问题,专科没有毕业,说真的,大公司没有人会要我,所以我投的都是民营的小公司,我希望自己的努力有所回报。没有想过几天过后,就有面试了,但是第一次面试我失败了,虽然我自认为笔试很好,因为我之前做了准备,但是他们的要求比较严格,需要有一年的项目经验,所以我没有被选中。 后来陆续面试了几家公司,终于功夫不负有心人。我终于面试上的,是在闵行的一家民营的企业,公司规模比较小,我的职务是嵌入式linux应用开发,做安防产品的应用的。我想我也比较幸运,经理很看重我的努力,就决定录用我,开的工资是3500一个月,虽然我知道在上海 3500只能过温饱的生活,但是我想我足够了。我至少不用每天都要靠父母养,我自己也能养活自己的。我想只要我继续努力,我工资一定会翻倍的。 把本文写出来,希望能让和我一样的没有基础的朋友有信心,其实我们没有必要自卑,我们不比别人笨,只要我们肯努力,我们一样会成功。 最后祝愿所有想学嵌入式的朋友更早的入门! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%% 相信你看了也会有所触动吧。我为了回答你这个问题,打了半个小时。。。。希望你能觉得我回答的不错,更希望能真正帮到你。 下面就以万达嵌入式Linux培训的课程体系为例,个人感觉还是不错的。他是这样列的: Linux基础、Linux应用程序开发、嵌入式Linux网络程序开发、嵌入式图形界面与数据库开发、嵌入式linux开发环境搭建、S3C2440的内部结构功能简介、BootLoader分析和移植、Linux 内核移植、uCOS II 源码分析和移植、根文件系统制作、BootLoader、内核综合解析、Linux系统调试、ADS仿真调试与S3C2440硬件接口操作、ARM11接口、Linux下字符设备驱动程序、Linux下块设备驱动程序、Linux下网络设备驱动程序、LCD设备驱动、Flash设备驱动、USB 驱动开发等。 嵌入式作为国内近几年比较火热的专业,也就是和前几年计算机专业一样。前些年计算机专业做为一个火热的专业各大高校一片热招,但由于学校师资有限、教材落后,最后导致学生毕业后找不到工作。 近几年嵌入式又是一片火热,各大高校纷纷热招,但是部分高校设备不够齐全、师资不够,在不久几年里嵌入式专业又将重蹈计算机覆辙。现在好多在校大学生和工作人员对于嵌入式专业十分感兴趣。下面我就个人经验来说一下嵌入式的学习方法,如有不到之处请高人指点。 嵌入式的定义是以应用为中心,以计算机技术为基础,并且软硬件可定制,适用于各种应用场合,对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。嵌入式系统几乎包括了生活中的所有电器设备,如掌上PDA 、移动计算设备、电视机顶盒、手机上网、数字电视、多媒体、汽车、微波炉、数字相机、家庭自动化系统、电梯、空调、安全系统、自动售货机、蜂窝式电话、消费电子设备、工业自动化仪表与医疗仪器等。 嵌入式系统一般指非PC系统,它包括硬件和软件两部分。硬件包括处理器/微处理器、存储器及外设器件和I/O端口、图形控制器等。软件部分包括操作系统软件(OS)(要求实时和多任务操作)和应用程序编程。有时设计人员把这两种软件组合在一起。应用程序控制着系统的运作和行为;而操作系统控制着应用程序编程与硬件的交互作用。 这时嵌入式就以计算机为基础从事相关设备的开发了,试问前些年没有做好计算机教学的学 校,又何以从事嵌入式教学呢。 对于在校大学生应该C语言基础知识,光是学习谭浩强的还不够,多看一些国外的经典书籍,如,这是每位学习程序设计的人员必备知识。由于嵌入式是软件和硬件相结合的产物,所以对于操作系统和微机原理的学习也是不可缺少的,但是现在各大高校只是停留在理论知识的讲解,并没有实际上的东西,这也就导致学生不能提高兴趣,只是用于对付考试,所以学好操作系统和微机原理应该理论实际相结合。还有数据结构这一门课程是不得不提的课程,国内出名的也就是清华大学的严蔚敏的那本书了。学好这些东西这也就是相当于武侠小说中的内功的修养。 有了这些做为基础,去学习其他的一些东西就会很快的。 嵌入式分为嵌入式软件开发和嵌入式硬件开发,嵌入式的软件开发在掌握了以上东西后要如鱼得水。 下面就以万达嵌入式Linux培训的课程体系为例,个人感觉还是不错的。他是这样列的: Linux基础、Linux应用程序开发、嵌入式Linux网络程序开发、嵌入式图形界面与数据库开发、嵌入式linux开发环境搭建、S3C2440的内部结构功能简介、BootLoader分析和移植、Linux 内核移植、uCOS II 源码分析和移植、根文件系统制作、BootLoader、内核综合解析、Linux系统调试、ADS仿真调试与S3C2440硬件接口操作、ARM11接口、Linux下字符设备驱动程序、Linux下块设备驱动程序、Linux下网络设备驱动程序、LCD设备驱动、Flash设备驱动、USB 驱动开发等。 要学习一个东西肯定要先学习他的操作,这就是linux基础,也就是常用的linux操作,这样的书籍太多了,找一些实用的来看就可以了。下来就是在我们先前学习的C语言的基础上学习linux上的程序开发,这门课程现在在好多学校都没有开设,对于程序开发者来说是一门很重要的课程,不过万达嵌入式是把网络程序开发和图形界面开发与数据库开发分开了,其实这些都属于linux上的应用程序开发,可能也是为了方便大家认识这一门课程吧,条理更加清楚了。这一内容是企业开发中应用最多的内容,也就是所谓的嵌入式应用层开发。有了深入的C语言基础这些内容都是很容易学会的。比较知名的书籍有已帮的的steves先生的《UNIX环境高级编程》可以说是UNIX编程“圣经,这本书一定要好好的拜读的。对于网络程序开发也是stevens先生的《UNIX网络编程》,如果你想深入的掌握的话可以看一下《TCP/IP协议三卷》。对于图形界面的开发大家可以看一下Jasmin Blanchette的《C++GUI Qt4编程(第2版)》。掌握这些基本上就可以从事应用层开发了。这些技术都是企业内部急用的内容。 由于嵌入式的开发不是在我们平时用的x86平台上用的,所以我们需要把我们所写的程序放到相应的平台上去,这时就用到了嵌入式开发环境的搭建(见上面的课程体系),开发环境的搭建主要就是交叉编译开发环境的搭建,这个东西你可以去网上去下,也可以自己动手去做,但在实际当中用的时候需要你自己动手去搭建。建议你先自己使用,然后慢慢的学着去搭建。 对于ARM9的操作,现在市场上主要是2410和2440,二个选择一个用就可以了,内容差不太多,认真的研究透一个就可以了,对于ARM11的6410的操作就先不要考虑了,在万达嵌入式的课程体系中也安装的也挺合理的,先是学习一下2410或2440再去学习6410,有了一定的基础后再去学习6410才有可能把它操作起来。对于接口的一些操作就是把ARM当做一个单片机来操作,这样的书籍可以去看一下周立功的书籍,它们对ARM说的挺多的,不过他们用不是三星的产品,但是懂了其中一个其它的操作起也就可以了。 对于2440的操作会了以后就可以去学习BootLoader的学习了,在万达嵌入式里面说的是BootLoader的,这里只是说了一个总称,这里主要有u-boot,vivi,LILO等,如果你用的是ARM 你可以先自己选择一个小的BootLoader,比如vivi来学习,学会这一个了你去操作其它的都是一样的了。 对于操作系统的移植大体过程都是一样的,主要是让你做一个最小系统,方便以后驱动的学习。对于嵌入式系统移植的话这方面还真没有太多好的书籍,自己可以去网上搜一下。 对于基础知识都打好以后就可以进攻驱动程序开发,这个东西是一个比较漫长的过程,一定要静下心来,慢慢的去阅读代码,慢慢的去学习。这样的东西大家可以看一下《Linux内核源码情景分析》、《深入理解Linux内核》等书籍。在万达嵌入式的课程体系里面他们说到了好多关于驱动开发中的实例,确实是这样子,驱动开发肯定要多接触一些典型的驱动程序开发的 案例 全员育人导师制案例信息技术应用案例心得信息技术教学案例综合实践活动案例我余额宝案例 ,大家可以慢慢的跟着课程体系里面的东西去学习。 另外就是嵌入式的硬件的开发,主要就是所谓的FPGA、DSP、VHDL等。这些东西在大学里面基本上都会学到大家都可以去学习一下,自己试着做出来一些东西来。比如抄板子,一点一点的去划。 好了对于嵌入式的学习在这里就说这些,如果有不正之处请大家指正。
本文档为【嵌入式工程师的感悟】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_266065
暂无简介~
格式:doc
大小:28KB
软件:Word
页数:0
分类:交通与物流
上传时间:2019-04-21
浏览量:8