信盈达分享,如何学好嵌入式系统开发

一、嵌入式系统的概念
着重理解”嵌入”的概念
主要从三个方面上来理解。
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下我们打开一个程序运行后,再打开一个程序时,要不就是中断以前的程序,要不 就是等上一会才能运行后来打开的程序。想做个好的驱动人员没有三、四年功底,操作系统内核不研究上几编,不是太容易成功的,但其工资在嵌入式系统四层中可是最高的。详询方老师企鹅号3311615775 TEL:17727659303

原文地址:http://blog.51cto.com/10556373/2121121

时间: 2024-10-03 13:46:40

信盈达分享,如何学好嵌入式系统开发的相关文章

信盈达分享给你一些实用的Linux技巧

首先,我想告诉大家,在Unix/Linux下,最有效率技巧的不是操作图形界面,而是命令行操作,因为命令行意味着自动化.如果你看过<你可能不知道的Shell>以及<28个Unix/Linux的命令行神器>你就会知道Linux有多强大,这个强大完全来自于命令行,于是,就算你不知道怎么去做一个环保主义的程序员 ,至少他们可以让你少熬点夜,从而有利于你的身体健康.下面是一个有点长的列表,正如作者所说,你并不需要知道所有的这些东西,但是如果你还在很沉重地在使用Linux的话,这些东西都值得你

信盈达嵌入式阳工与您分享嵌入式学习13黄金发则 [复制链接]

信盈达嵌入式阳工与您分享嵌入式学习13黄金发则http://www.lupaworld.com/thread-860415-1-1.html 嵌入式开发学习是一个不断积累和总结的过程,来自一个嵌入式开发高级工程师为我们总结的关于嵌入式开发学习的十三法则,大家不妨参考一下: 一.冗余度法则 在嵌入式系统具有足够的冗余度之后,系统的“ 初始敏感性” 对于其“ 最终计算结果” 的影响就变得微乎其微了. 二.实时性法则 嵌入式系统的计算结果,不仅依赖于系统的逻辑运算之正确性,而且也依赖于这个运算结果的计

嵌入式系统开发流程

嵌入式系统开发与通用系统的开发有很大的区别.嵌入式系统的开发主要分为系统总体开发.嵌入式硬件开发和嵌入式软件开发3大部分. 在总体开发中,由于嵌入式系统与硬件依赖非常紧密,往往某些需求只能通过特定的硬件才能实现,因此需要进行处理器的选型,以更好地满足产品的需求.另外,对于有些硬件和软件都可以实现的功能,就需要在成本和性能上做出抉择.往往通过硬件实现会增加产品的成本,但是大大提高产品的性能和可靠性. 再次,开发环境的选择对于嵌入式系统的开发也有很大的影响.开发环境包括嵌入式操作系统的选择以及开发工

嵌入式系统开发学习(1)

嵌入式系统开发流程 嵌入式系统的一般开发流程如下: 嵌入式操作系统 管理资源 提高系统可靠性 硬件虚拟化 实时性能 多任务 现有的嵌入式操作系统 VxWorks pSOS PalmOS QNX OS-9 LynxOS WindowsCE uC/OS 嵌入式Linux FreeRTOS ARM体系架构 ARM:Advanced RISC Machines ARM处理器共有37个寄存器,分为若干个组(BANK). 大多数数据操作都在寄存器中完成. ARM分类 ARM7: 32bit 冯-诺依曼体系结

嵌入式系统开发——开篇

嵌入式系统开发中,C语言的地位是无法取代的,所以我用C语言为自己建立一个常用功能函数库.在基于单片机的开发中,经常会遇到“以时间换空间”或者“以空间换时间”的抉择.因为单片机不是运算能力有限,就是存储空间有限! 尽管现如今基于ARM核的微处理器已经普及,其运算能力和存储能力相对于以前8位时代,可谓是翻天覆地!但作为软件开发者,希望自己所写代码能具备移植性的同时还要尽量高效,是一种境界.这对于提升自己的编程水平.对C语言的应用能力,不失为一个好方法. 我在这里记录下我常用的程序库,方便自己和他人查

Python在实时嵌入式系统开发中扮演的五个主要角色-悦德财富

Python已经成为相当热门的程序语言.它以著名的Monty Python喜剧组命名,属于面向对象和解释型语言(非编译型).该属性使得Python具有良好的跨平台性,比如Linux和Windows,或是诸如Raspberry Pi等单板计算机.随着Python的日益普及,人们可能会问,在实时嵌入式系统中是否也有Python的一席之地. 答案是肯定的.下面是开发人员发现Python在实时嵌入式系统开发中有可能扮演的五个主要角色. 作用# 1设备调试和控制 在嵌入式软件开发过程中,开发人员常常需要分

嵌入式系统开发步骤

建立交叉开发环境 配置开发主机 移植bootloader linux内核移植 建立并烧写根文件系统到目标板 开发嵌入式应用程序 部署与配置系统 (1)建立交叉开发环境 开发主机的操作系统一般选用某一个发行版本的linux系统,如RedHatlinux等.linux内核版本可以根据项目的具体需求而定,如2.4内核或者2.6内核.选择定制安装或全部安装,通过网络下载相应的gcc交叉编译器进行安装(比如arm-linux-gcc,arm-uclibc-gcc等),或者安装产品厂家提供的交叉编译器. (

转载:嵌入式系统开发步骤

转自:http://www.cnblogs.com/yxwkf/p/5173087.html 建立交叉开发环境配置开发主机移植bootloaderlinux内核移植建立并烧写根文件系统到目标板开发嵌入式应用程序部署与配置系统(1)建立交叉开发环境开发主机的操作系统一般选用某一个发行版本号的linux系统,如RedHatlinux等.linux内核版本号能够依据项目的详细需求而定,如2.4内核或者2.6内核.选择定制安装或所有安装,通过网络下载对应的gcc交叉编译器进行安装(比方arm-linux

linux嵌入式系统开发,嵌入式编程入门教程

嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分.国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能.可靠性.成本.体积.功耗等严格要求的专用计算机系统.举些例子,手机.电子时钟.智能报警装置.自动监控器.出租车计费器等等都属于嵌入式系统. 嵌入式Linux的开发和研究是Linux领域研究的一个热点,目前已开发成功的嵌入式系统有一半以上都是Linux.Linux能够支持x86.ARM.MIPS.ALPHA.PowerPC等多种体系结构,目前