您的位置 首页 电路

嵌入式工程师经历共享:怎么学习嵌入式开发

一、嵌入式系统的概念着重理解“嵌入”的概念主要从三个方面上来理解。1、从硬件上,将基于CPU的处围器件,整合到CPU芯片内部,比如早期基于X86体系结构下的计算机,CPU只是有运算器和累加器的功能,一

  一、嵌入式体系的概念

  侧重了解“嵌入”的概念

  主要从三个方面上来了解。

  1、从硬件上,将根据CPU的处围器材,整合到CPU芯片内部,比方前期根据X86体系结构下的计算机,CPU仅仅有运算器和累加器的功用,全部芯片要造外部桥路来扩展完结,象串口之类的都是靠外部的16C550/2的串口操控器芯片完结,而现在的这种串口操控器芯片早已集成到CPU内部,还有PC机有显卡,而大都嵌入式处理器都带有LCD操控器,但其种含义上就适当于显卡。比较高端的ARM类Intel Xscale架构下的IXP网络处理器CPU内部集成PCI操控器(可配成支撑4个PCI从设备或配成本身为CPI从设备);还集成3个NPE网络处理器引擎,其间两个对应于两个MAC地址, 可用于网关交换用,而别的一个NPE网络处理器引擎支撑DSL,只需外面再加个PHY芯片即能够完结DSL上网功用。IXP系列最高主频能够到达 1.8G,支撑2G内存,1G×10或10G×1的以太网口或Febre channel的光通道。IXP系列应该是方针根据ARM体体系结构下由 intel进行整合后成Xscale内核的最高的处理器了。

  2、从软件上前,便是在定制操作体系内核里将使用一起选入,编译后将内核下载到ROM中。而在定制操作体系内核时所挑选的使用程序组 件便是完结了软件的“嵌入”,比方WinCE在内核定制时,会有相应挑选,其间便是wordpad,PDF,MediaPlay等等挑选,假如咱们挑选 了,在CE发动后,就能够在界面中找到这些东西,假如是曾经PC大将的windows操作体系,八成的东西都需求咱们得新再装。

  3、把软件内核或使用文件体系等东西烧到嵌入式体系硬件渠道中的ROM中就完结了一个真实的“嵌入”。以上的界说是我在6、7年前给嵌入式体系下自话侧重于了解型的界说,书上的界说也有许多,但在这个范畴范围内,谁都不敢说自己的界说是非常切当的,包含那些专家学者们,历为究竟嵌入式体系是计算机范畴下的一门综合性学科

  二、嵌入式体系的分层与专业的分类。

  嵌入式体系分为4层,硬件层、驱动层、操作体系层和使用层。

  1、硬件层,是整个嵌入式体系的底子,假如现在单片机及接口这块很了解,并且能用C和汇编言语来编程的话,从嵌入式体系的硬件层走起来相对简略,硬件层也是驱动层的根底,一个优异的驱动工程师是要能够看懂硬件的电路图和自行完结CPLD的逻辑规划的,一起还要对操作体系内核及其调度性适当的了解的。但硬件渠道是根底,增值还要靠软件。硬件层比较适合于,电子、通讯、自动化、机电一体、信息工程类专业的人来搞,需求把握的专业根底知识有,单片机原理及接口技术、微机原理及接口技术、C言语。

  2、 驱动层,这部分比较难,驱动工程师不只需能看懂电路图还要能对操作体系内核非常的通晓,以便其所写的驱动程序在体系调用时,不会独占操作体系时刻片,而导 至其它使命不能动行,不理解操作体系内核架构和实时调度性,没有杰出的驱动编写风格,按大大都书上所说增加的驱动的方法,许多人都能做到,但或许连个初级的 驱动工程师的水平都达不到,这样所写的驱动在使用调用时就好像windows下咱们翻开一个程序运转后,再翻开一个程序时,要不便是中止曾经的程序,要不 便是等上一会才干运转后来翻开的程序。想做个好的驱动人员没有三四年功底,操作体系内核不研讨上几编,不是太简略成功的,但其薪酬在嵌入式体系四层中可 是最高的。

  驱动层比较适合于电子、通讯、自动化、机电一体、信息工程类专业尤其是计算机偏体系结构类专业的人来搞,除硬件层所具有的根底学科外,还要对数据结构与算法、操作体系原理、编译原理都要非常通晓了解。

  3、操作体系层,关于操作体系层现在或许只能说是简略的移植,而很少有人来自已写操作体系,或许写出缺臂膀少腿的操作

  统来,这部分作业大都由驱动工程师来完结。操作体系是担任体系使命的调试、磁盘和文件的办理,而嵌入式体系的实时性非常重要。听说,XP操作体系是微软投入300人用两年时刻才搞定的,总时工时是600人年,中科院软件所自己的女娲Hopen操作体系估量也得花遇几百人年才干搞定。因而这部分作业相对来讲没有太大含义。

  4、使用层,相对来讲较为简略的,假如会在windows下怎么进行编程接口函数调用,到操作体系下仅仅编译和开发环 境有相应的改变罢了。假如触及Jave方面的编程也是如此的。嵌入式体系中触及算法的由专业算法的人来处理的,不用归结到嵌入式体系范畴内。但假如触及嵌 入式体系下面嵌入式数据库、根据嵌入式体系的网络编程和根据某此使用层面的协议使用开发(比方根据SIP、H.323、Astrisk)方面又较为杂乱, 并且有难度了。  三、方针与定位。

  先有方针,再去定位。

  学 ARM,从硬件上讲,一方面便是学习接口电路规划,另一方面便是学习汇编和C言语的板级编程。假如从软件上讲,便是要学习根据ARM处理器的操作体系层面 的驱动、移植了。这些关于初学都来说有必要清晰,要么从硬件着手开端学,要么从操作体系的了解到使用开端学,但不论学什么,只需不是纯的操作体系级以上根据 API的使用层的编程,硬件的寄存器类的东西仍是要能看懂的,根据板级的汇编和C编程仍是要会的。因而针关于嵌入式体系的硬件层和驱动程的人,ARM的接 口电路规划、ARM的C言语和汇编言语编程及调试开发环境仍是需求把握的。

  因而关于初学者必定要把抓住方向,自己的方针是什么,自己要在那一层面上走。然后再着手学习较好,与ARM相关的嵌入式体系的较为实践的两个层面硬件层和驱动层,不论学好了那一层都会很有出路的。假如想从嵌入式体系的使用层面的走的话,或许与ARM及其它体系相去较远,要侧重研讨基嵌入式操作体系的环境使用与相应开发工具链,比方WinCe操作体系下的EVC使用开发(与windows下的VC相相似),假如想再有打破就往某些音视频类的协议上靠,比方VOIP范畴的根据SIP或H.323协议的使用层开发,或是根据嵌入式网络数据库的开发等等。

  于初学者来讲,要力所能及,不要以为驱动层薪酬高就把它当成方向了,要结合本身特色,嵌入式体系四个层面上那个层面上来讲都是有高人存在,当然高人也对应 的高薪酬,我是做硬件层的,曾经每月薪酬中个人所得税要被扣上近3千大元,当然我一方面充任工程师的人物,一方面充任主管及人物的人物,两个职位我一个人 干,但上班时刻就那些。硬件这方面上或许与我PK的人很少了,才让我拿到那么多的薪酬。

  四、开发体系挑选。

  许多ARM初学者都期望有一套自己能用的体系,但他们住住会发生一种错误认识便是以为处理器版别越高、功用越高越好,就象许多人以为ARM9与ARM7好, 我想关于初学者在此方面以此入门还应该沉着,开发体系的挑选终究要看自己往嵌入式体系的那个方向上走,是做驱动开发仍是使用,仍是做嵌入式体系硬件层规划 与板级测验。假如想从操作体系层面或使用层面上走,不论是驱动仍是使用,那当然处理器功用越高越好了,但这个东西自学,有非常大的困难,不是几个月或半年 或是一年二年能搞定的事。

  在某种含义上请,ARM7与9的不同便是在某些功用指令集上丰厚了些,主频进步一些罢了,就比方286和386。关于用户来讲或许觉查不到什么,只能是感觉速度有些快罢了。

  ARM7比较适合于那些想从硬件层面上走的人,由于ARM7系列处理器内部带MMU的很少,并且比较好操控,就比方S3C44B0来讲,能够很简略将 Cache关了,并且内部接口寄存器很简略看理解,各种接口关于用硬件程序操控或AXD单步命令行指令都能够操控起来,根据51单片机的思维很简略能把他 搞懂,就当成个32位的单片机,然后消除许多51工程师想转为嵌入式体系硬件ARM开发工程师的困惑,然后不会被业界某此不是真实懂嵌入式烂公司带到操作 体系层面上去,让他们望而失畏,让业界愈加短少这方面的人才。

  而嵌入式体系不论硬件规划仍是软件驱动方面都是非常重视接口这部分的,挑选渠道还要调查一个处理器的外部资源,你触摸外部资源越多,越了解他们那你今后作业成功的机率就越高,这便是招聘时 所说的有无“相关技术”,由于一个人不或许在短短几年内把一切的处理器都触摸一遍,而招聘单位所用的处理器就或许是咱们彻底没有见过的,就拿台湾数十家小 公司(市价几千万)的公司出产的ARM类处理器,也很好用,但这些东西通用性太差,用这些处理器的公司就只能招有相关作业经历的人了,那什么是相关作业经 验,在硬件上讲的是外围接口规划,在软件上讲是操作体系方面相关接口驱动及使用开发经历。我从业近十年,2000年ARM呈现,我一天始做ARM7,然后 直接跑到了Xscale(这个板本在ARM10-11之间),一做便是五年,招人面试都不下数百人,在这些方面仍是深有体会的。

我个人以为三星的S3C44b0对初学者来说比较适宜,为什么这

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/dianlu/241339.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部