您的位置 首页 IOT

怎么学STM32- -十年经历教你怎么学习嵌入式体系

一、如何学习嵌入式系统- – 嵌入式系统的概念着重理解“嵌入”的概念 ,主要从三个方面上来理解。1、从硬件上,“嵌入”将基于CPU的处围器件,整合到CPU芯片内部,比如早期基于X86体系结

  一、怎么学习嵌入式体系– – 嵌入式体系的概念

  侧重了解“嵌入”的概念 ,主要从三个方面上来了解。

  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对初学者来说比较适宜,为什么这么说哪?由于接口资源比较丰厚,技术老练,材料较多,应该非常合适于初学者,有问题或许很简略找人帮且处理,由于大大都人都很了解,就好像51类的单片机,有N多位专家级的人物能够给你帮助,相关问题得以很快回答,所然业界以为这款ARM都做用得烂了,但关于初学者来,就却是件功德。

  因而开发体系的挑选,要看自己的未来历来方针方向、要看开发板接口资源、还要看业界的通用性。

  五、怎么学习嵌入式体系- -成为高档嵌入式体系硬件工程师要具有的技术。

  关于硬件来讲有几个方向,就单纯信号来分为数字和模仿,模仿比较难搞,一般需求很长的经历堆集,单单一个阻值或容值的精度不行就或许使信号误差很大。因而年轻人搞的较少,跟着技术的开展,呈现了模仿电路数字化,比方手机的Modem射频模块,都选用老练的套片,而当年国际上只需两家公司有此技术,自我感觉模仿功用不太强的人,不太合适搞这个,假如真能搞定到手机的射频模块,只需到达一般程度或许月薪都在15K以上。

  另一类便是数字部分了,在大方向上又可分为51/ARM的单片机类,DSP类,FPGA类, 国内FPGA的工程师大多是在IC规划公司从事IP核的前端验证,这部分不搞到门级,出路不太明亮,即便做个IC前端验证工程师,也要搞上几年才干担任。 DSP硬件接口比较定型,假如不向驱动或是算法上挨近,出路也不会太大。而ARM单片机类的内容就较多,业界产品占用量大,使用人群广,因而作业空间极 大,而硬件规划最表现水平缓水准的便是接口规划这块,这是各个高档硬件工程师彼此PK,断定水平凹凸的根据。而接口规划这块最要害的是看时序,而不是简略 的衔接,比方PXA255处理器I2C要求速度在100Kbps,假如把一个I2C外围器材,最高还达不到100kbps的与它相接,必定要导致规划的失 败。这样的状况有许多,比方51单片机能够在总线接 LCD,但为什么这种LCD就不能挂在ARM的总线上,还有ARM7总线上能够外接个Winband的SD卡操控器,但为什么这种操控器接不到ARM9或 是Xscale处理器上,这些都是问题。因而接口并不是一种简略的衔接,要看时序,要看参数。 一个优异的硬件工程师应该能够在没有参阅计划的前提下规划 出一个在本钱和功用上愈加优异的产品,靠现有的计划,也要进行恰当的可行性裁剪,但不是胡乱的来,我遇到一个工程师把计划中的5V变1.8V的DC芯片, 直接更换成LDO,有时就会把CPU烧上几个。前几天还有人期望我帮助把他们曾经根据PXA255渠道的手持GPS设备做下程序优化,我问了一下状况,地 图是存在SD卡中的,而SD卡与PXA255的MMC操控器间选用的SPI接口,因而导致地图读取速度非常的慢,这种状况是规划中严峻的缺点,而不是程序 的问题,因而我提了几条主张,让他们更新试下再说。因而想成为一个优异的工程师,需求对体系整体性的把握和对已有电路的了解,换句话说,给你一套电路图你 毕竟能看了解多少,看不了解80%以上的话,阐明你离优异的工程师还差得远哪。其次是电路的调试才能和审图才能,但最最根本的才能仍是原理图规划PCB绘 制,逻辑规划这块。这是指的硬件规划工程师,从上面的硬件规划工程师中还能够分出ECAD工程师,便是专业的画PCB板的工程师,和EMC规划工程师,帮 人家处理EMC的问题。硬件工程师再往上便是板级测验工程师,便是C语功底很好的硬件工程师,在电路板调试过程中能经过自已编写的测验程序对硬件功用进行 验证。然后再交给根据操作体系级的驱动开发人员。

  总归,硬件的内容许多很杂,硬件那方面练成了都会成为一个高手,我常常会给人家做下计划评价,许多高档硬件工程师规划的东西,常常被我一句话否定,因而工程师做到我这种境地,也会开罪些人,但硬件确实会有许多不为人知的东西,让许多高档硬件工程师也摸不到脑筋。

  那么高档硬件件工程师技术技术都要具有那些东西哪,首先要把握EDA规划的辅助东西类如ProtelORCADPowperPCBMaplux2ISE、 VDHL言语,要能用到这些东西画图画板做逻辑规划,再有便是接口规划审图才能,再者便是调试才能,假如能走到整体计划规划这块,那就根本上快成为资深工 程师了。

  硬件是要靠经历,也要靠堆集的,十年磨一剑,百年磨一针。

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

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部