浅析如何学习基于ARM平台的嵌入式系统【k1体育中国官方网站】
本文摘要:一、嵌入式系统的概念 侧重解读映射的概念 主要从三个方面上来解读。一、嵌入式系统的概念 侧重解读映射的概念 主要从三个方面上来解读。 1、从硬件上,将基于CPU的处围器件,统合到CPU芯片内部,比如早期基于X86体系结构下的计算机,CPU只是有运算器和累加器的功能,一切芯片要造外部桥路来拓展构建,象串口之类的都是靠外部的16C550/2的串口控制器芯片构建,而目前的这种串口控制器芯片早就构建到CPU内部,还有PC机有显示卡,而多数嵌入式处理器都具有LCD控制器,但其种意义上就相等于显示卡。较为高端的ARM类IntelXscale架构下的IXP网络处理器CPU内部构建PCI控制器(可配制反对4个PCI从设备或配制自身为CPI从设备);还构建3个NPE网络处理器引擎,其中两个对应于两个MAC地址,可用作网关互相交换用,而另外一个NPE网络处理器引擎反对DSL,只要外面加上个PHY芯片即可以构建DSL网际网路功能。
IXP系列最低主频可以超过1.8G,反对2G内存,1G10或10G1的以太网口或Febrechannel的光地下通道。IXP系列应当是目标基于ARM体系统结构下由intel展开统合后出Xscale内核的最低的处理器了。 2、从软件上前,就是在自定义操作系统内核里将应用于悉数入选,编译器后将内核iTunes到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的人很少了,才让我拿到那么多的工资。
本文来源:k1体育-www.durotstone.com
扫一扫关注微信公众帐号