您的位置 首页 编程

浅析怎么学习根据ARM渠道的嵌入式体系

本文将从技术和就业经验等角度为即将进入嵌入式开发的程序员们,详细讲述了嵌入的概念,嵌入式开发之间的异同以及应该如何做出选择,希望对

本文将从技能和作业经历等视点为行将进入嵌入式开发的程序员们,具体叙述了嵌入的概念,嵌入式开发之间的异同以及应该怎么做出挑选,期望对咱们有所协助。

一、嵌入式体系的概念
侧重了解“嵌入”的概念
主要从三个方面上来了解。
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开发工程师的困惑,然后不会被业界某此不是真实懂嵌入式烂公司带到操作 体系层面上去,让他们望而失畏,让业界愈加短少这方面的人才。

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

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部