嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。
嵌入式系统一般指非PC系统,它包括硬件和软件两部分。硬件包括处理器/微处理器、存储器及外设器件和I/O端口、图形控制器等。软件部分包括操作系统软件(OS)(要求实时和多任务操作)和应用程序编程。有时设计人员把这两种软件组合在一起。应用程序控制着系统的运作和行为;而操作系统控制着应用程序编程与硬件的交互作用。
现在所说的嵌入式开发,通常都是指有嵌入式操作系统的那种,产品功能复杂了,单片机开发无法实现,需要用到嵌入式操作系统,也能体现出嵌入式操作系统的优势。嵌入式产品在航空、医疗、家电、消费电子、汽车电子、移动等众多领域都可以看到,应用领域极为广泛,所以现在嵌入式开发相当热门,并且具备非常好的发展前景!!
嵌入式系统的核心是嵌入式微处理器。嵌入式微处理器一般就具备以下4个特点:
1)对实时多任务有很强的支持能力,能完成多任务并且有较短的中断响应时间,从而使内部的代码和实时内核心的执行时间减少到最低限度。
2)具有功能很强的存储区保护功能。这是由于嵌入式系统的软件结构已模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同时也有利于软件诊断。
3)可扩展的处理器结构,以能最迅速地开展出满足应用的最高性能的嵌入式微处理器。
4)嵌入式微处理器必须功耗很低,尤其是用于便携式的无线及移动的计算和通信设备中靠电池供电的嵌入式系统更是如此,如需要功耗只有mW甚至μW级。
嵌入式计算机系统同通用型计算机系统相比具有以下特点:
1.嵌入式系统通常是面向特定应用的嵌入式CPU与通用型的最大不同就是嵌入式CPU大多工作在为特定用户群设计的系统中,它通常都具有低功耗、体积小、集成度高等特点,能够把通用CPU中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计趋于小型化,移动能力大大增强,跟网络的耦合也越来越紧密。
2.嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。
3.嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,这样才能在具体应用中对处理器的选择更具有竞争力。
4.嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。
5.为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存贮于磁盘等载体中。
6.嵌入式系统本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发!
====================
|
嵌入式编程用的最多的也是C语言,和普通的windows下的C编程不同的就是,比如应用层开发,嵌入式开发出来的应用程序最终不是要运行在PC上的,而是目标板。所以嵌入式开发就一定会有交叉编译这个环节(简单一点理解就是,在PC下编程,然后交叉编译一下,让程序能运行在PC外的其他平台上,比如ARM开发板什么的)
普通编程开发=====CPU(比如奔腾)=====windows操作系统 嵌入式开发=====嵌入式处理器(比如ARM)=====嵌入式操作系统(比如嵌入式linux、wince、vxworks等)
PC上如果没有windows操作系统,那它就是一个DOS机 嵌入式开发中如果没有嵌入式操作系统,那它就是通常所说的单片机开发,嵌入式开发最初就是从单片机开发走过来的。
现在所说的嵌入式开发,通常都是指有嵌入式操作系统的那种,产品功能复杂了,单片机开发无法实现,需要用到嵌入式操作系统,也能体现出嵌入式操作系统的优势。
嵌入式产品在航空、医疗、家电、消费电子、汽车电子、移动等众多领域都可以看到,应用领域极为广泛,所以现在嵌入式开发相当热门,并且具备非常好的发展前景!! |
============================================================= =============================================================
|
第一,学硬件还是软件,首先要看你的兴趣,不管是哪一个只要你搞精了,都很不错
第二,目前嵌入式系统里,ARM占80%以上的市场份额,所以ARM体系架构是必须学习,当然学ARM之前, 你至少要掌握以下几门课程: 1. 微机原理与接口技术 2. C语言 3. 数字电路 有了这些基础知识才能考虑软件或者硬件的问题。
第三,想搞嵌入式软件的话,至少要精通一种以上的嵌入式操作系统,近来Linux在嵌入式领域里相当热门, 1. 操作系统原理 2. 编译原理 3. Linux 必须掌握好 |
|
============================================================= ============================================================= armarm芯片 ARM公司 ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP和移动式应用等。 ARM将其技术授权给世界上许多著名的半导体、软件和OEM厂商,每个厂商得到的都是一套独一无二的ARM相关技术及服务。利用这种合伙关系,ARM很快成为许多全球性RISC标准的缔造者。 目前,总共有30家半导体公司与ARM签订了硬件技术使用许可协议,其中包括Intel、IBM、LG半导体、NEC、SONY、菲利浦和国民半导体这样的大公司。至于软件系统的合伙人,则包括微软、升阳和MRI等一系列知名公司。 ARM架构是面向低预算市场设计的第一款RISC微处理器。 ARM 即Advanced RISC Machines的缩写,既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。 1985年4月26日,第一个ARM原型在英国剑桥的Acorn计算机有限公司诞生,由美国加州SanJoseVLSI技术公司制造。 20世纪80年代后期,ARM很快开发成Acorn的台式机产品,形成英国的计算机教育基础。 1990年成立了Advanced RISC Machines Limited(后来简称为ARM Limited,ARM公司)。20世纪90年代,ARM 32位嵌入式RISC(Reduced lnstruction Set Computer)处理器扩展到世界范围,占据了低功耗、低成本和高性能的嵌入式系统应用领域的领先地位。ARM公司既不生产芯片也不销售芯片,它只出售芯片技术授权。 ARM的学习和开发都需要学习哪些软件 总结起来最主要的有以下几个吧 1 ADS调试用 确切的说是ADS+AXD。ADS里包含AXD。原来都用SDT后来ARM公司停止对SDT支持了,改支持ADS了,还是用ADS吧。 有的人的程序发布的仍然是SDT版本的,但基本都可以找到相应ADS的,新人在这里不要发蒙。ADS是编译器,AXD是调试器。编译成AXF以后再在ARM的RAM里调试。 2 PLASHPGM FLASH烧写的软件。AXD在RAM里调试,掉电就没有了,方便程序修改。调试好的程序再下到FLASH里,上电直接运行。 同类的软件还有很多,什么FLUTED了、FLSHP了都是,但FLASHPGM最好,要是有人还问FLASH不支持BIN格式文件的问题就要看我写的PLASHPGM使用了。 3 BANYANT调试代理(不知道名对不,起这么个难记的,我一般都叫它“半羊”因为知道它那几天刚吃了烤羊) 调试代理就是用它帮你使用更简单的JTAG(便宜啊)来实现原本1K才卖的JTAG仿真器的大部分功能。JTAG调试原理看我另一篇笔记。简单的就可以把他理解为你自己做的JTAG的驱动就行了。 调试代理还有很多种,什么H-JTAG了、ARM7了(不知道具体叫什么,就记得可执行文件叫ARM7.EXE)都是,BANYANT比较好。 需要注意的是,每种调试代理安装方法虽然都简单但都不一样,需要看说明。而且AXD调试之前都要运行。省钱了,就别怕麻烦了。 4 ARM-ELF-TOOLS工具链 里面是UCLINUX开发用的工具比如ARM-ELF-GCC只类的。工具链就是把很多工具打包在一起发布的方便你开发的东西。具体安装方法看我另一篇笔记。 另外如果你开发LINUX就要用ARM-LINUX-TOOLS,不一样,不通用。 5 U-BOOT 大名鼎鼎的BOOTLOADER生成工具,同类的好象还有VIVI(名字很暧昧~~) 生成的BOOTLOADER烧到FLASH里,然后就可以用BOOTLOADER下载 烧写其他了 有了BOOTLOADER才能下UCLINUX。BOOTLOADER就像电脑上的BIOS。当然UCOS的不用这个,用什么我不知道:) 最新版本是1.1.4 具体使用方法看我另一篇笔记吧。 6 UCLINUX包 UCLINUX的源码包,不用多说了吧?建议大家用现成的先体会一下,然后再自己编译,裁剪。因为单独UCLINUX的编辑技术上比较简单,但涉及的方面还是比较广的。 7 VMWARE 老牌的虚拟机软件,在一个机器上虚拟出一个机器装LINUX(PC上用的),省得你来回开关机了。记得装VMWARE-TOOLS,安装方法在我另一篇笔记里。 1991 年 ARM 公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用 ARM技术知识产权( IP )核的微处理器,即我们通常所说的 ARM 微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于 ARM 技术的微处理器应用约占据了 32 位 RISC 微处理器 75 %以上的市场份额, ARM 技术正在逐步渗入到我们生活的各个方面。 ARM 公司是专门从事基于 RISC 技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯片,世界各大半导体生产商从ARM公司购买其设计的 ARM 微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的 ARM 微处理器芯片进入市场。目前,全世界有几十家大的半导体公司都使用 ARM 公司的授权,因此既使得 ARM 技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场被消费者所接受,更具有竞争力。 ARM处理器的三大特点是:耗电少功能强、16位/32位双指令集和众多合作伙伴。 ARM商品模式的强大之处在于它在世界范围有超过100个的合作伙伴(Partners)。ARM 是设计公司,本身不生产芯片。采用转让许可证制度,由合作伙伴生产芯片。 当前ARM体系结构的扩充包括: ·Thumb 16位指令集,为了改善代码密度; ·DSP DSP应用的算术运算指令集; ·Jazeller 允许直接执行Java字节码。 ARM处理器系列提供的解决方案有: ·无线、消费类电子和图像应用的开放平台; ·存储、自动化、工业和网络应用的嵌入式实时系统; ·智能卡和SIM卡的安全应用。 ARM处理器本身是32位设计,但也配备16位指令集。一般来讲存储器比等价32位代码节省达35%,然而保留了32位系统的所有优势。ARM的Jazelle技术使Java加速得到比基于软件的Java虚拟机(JVM)高得多的性能,和同等的非Java加速核相比功耗降低80%。CPU功能上增加DSP指令集提供增强的16位和32位算术运算能力,提高了性能和灵活性。ARM还提供两个前沿特性来辅助带深嵌入处理器的高集成SoC器件的调试,它们是嵌入式ICE-RT逻辑和嵌入式跟踪宏核(ETMS)系列。 当前有5个产品系列——ARM7、ARM9、ARM9E、ARM10和SecurCore。 1、ARM7系列 优化用于对价位和功耗敏感的消费应用的低功耗32位核,有: ·嵌入式ICE-RT逻辑; ·非常低的功耗; ·三段流水线和冯·诺依曼结构,提供0.9MIPS/MHz。 2、SecurCore SC100特为安全市场设计,带特定的抗拒窜改和反工程的特性。还带灵活的保护单元确保操作系统和应用数据的安全。 3、ARM9系列 高性能和低功耗领先的硬宏单元,带有: ·5段流水线; ·哈佛结构提供1.1MIPS/MHz。 ARM920T和ARM922T内置全性能的MMU、指令和数据cache和高速AMBA总线接口。AMBA片上总线是一个开放标准,已成为SoC构建和IP库开发的事实标准。AMBA先进的高性能总线(AHB)接口现由所有新的ARM核支持,提供开发全综合设计系统。 ARM940T内置指令和数据cache、保护单元和高速AMBA总线接口。 4、ARM9E系列 可综合处理器,带有DSP扩充和紧耦合存储器(TCM)接口,使存储器以完全的处理器速度运转,可直接连接到内核上。 ARM966E-S用于硅片尺寸重要,而对cache没要求的实时嵌入式应用,可配置TCM大小:0、4K、8K、16K,最大达64M。 ARM946E-S内置集成保护单元,提供实时嵌入式操作系统的cache核方案。 VFP9 向量浮点可综合协处理器进一步提高ARM9E处理器性能,提供浮点操作的硬件支持。 5、ARM10系列 硬宏单元,带有: ·64位AHB指令和数据接口; ·6段流水线; ·1.25MIPS/MHz; ·比同等的ARM9器件性能提高50%。 6、ARM11系列 两种新的先进的节能方式得到了异常低的耗电。VFP10协处理器完善地依从ARM10器件提供高性能的浮点解决方案。 ARM公司近日公布了四个新的ARM11系列微处理器内核(ARM1156T2-S内核、ARM1156T2F-S内核、ARM1176JZ-S内核和ARM11JZF-S内核),以及应用于ARM1176JZ-S 和ARM11JZF-S内核系列的PrimeXsys平台、相关的CoreSight技术。 ARM1156T2-S和ARM1156T2F-S内核都基于ARMv6指令集体系结构,将是首批含有ARM Thumb-2内核技术的产品,可令合作伙伴进一步减少与存储系统相关的生产成本。两款新内核主要用于多种深嵌入式存储器、汽车网络和成像应用产品,提供了更高的CPU性能和吞吐量,并增加了许多特殊功能,可解决新一代装置的设计难题。体系结构中增添的功能包括:对于汽车安全系统类安全应用产品的开发至关重要的存储器容错能力。ARM1156T2-S和ARM1156T2F-S内核与新的AMBA 3.0 AXI总线标准一致,可满足高性能系统的大量数据存取需求。Thumb-2内核技术结合了16位、32位指令集体系结构,提供更低的功耗、更高的性能、更短的编码,该技术提供的软件技术方案较现用的ARM技术方案减少使用26%的存储空间、较现用的Thumb技术方案增速25%。 ARM1176JZ-S和ARM1176JZF-S内核及PrimeXsys平台是首批以ARM TrustZone技术实现手持装置和消费电子装置中公开操作系统的超强安全性的产品,同时也是首次对可节约高达75%处理器功耗的ARM智能能量管理(ARM Intelligent Energy Manager)进行一体化支持。ARM1176JZ-S和ARM1176JZF-S内核基于ARMv6指令集体系结构,主要为服务供应商和运营商所提供的新一代消费电子装置的电子商务和安全的网络下载提供支持。 CoreSight技术建于ARM Embedded Trace Macrocell (ETM)实时跟踪模块中,为完整的片上系统(SoC)设计提供最全面的调试、跟踪技术方案,通过最小端口可获得全面的系统可见度,并为开发者大大节约了产品上市时间。ARM CoreSight技术提供了最标准的调试和跟踪性能,适用于各种内核和复杂外设,可对核内指令和数据进行追踪。该技术为半导体制造商和工具供应商建立了可真正协同工作的系统调试标准,可满足嵌入式开发者和半导体制造商的各种需求,如以最低的成本来提供全面的系统可见度,从而降低处理器成本。 ARM公司嵌入式内核经理Richard Phelan先生说:"随着竞争的日益激烈,系统开发者必须以低廉的费用实现嵌入式系统的高性能并延长电池的待机时间。ARM1156T2-S和ARM1156T2F-S内核在0.13μ工艺下新的操作频率高达550MHz,拥有高效的Thumb-2指令集和AMBA 3.0 AXI系统总线,ARM1156T2-S和ARM1156T2F-S内核为合作伙伴们提供了所需的知识产权(IP),满足各种新兴的嵌入式控制应用产品的高性能需求。" ARM CPU产品经理David Cormie先生评论说:"为了进一步提高新一代消费电子装置和无线装置的安全性,运营商、服务商和消费者的重要数据的保护、隐私保护需要一个可信赖的计算环境。ARM1176JZ-S和ARM1176JZF-S内核及PrimeXsys平台结合了ARM TrustZone技术,为计算装置提供了理想的可信赖基础。系统设计者首次在芯片核心部分运用TrustZone技术来解决安全性问题。用户将拥有更多的下载选择,运营商将增加营业额收入,他们都无需担心网络的安全问题。" ARM1176JZ-S和ARM1176JZF-S内核、PrimeXsys平台提供了安全的低功耗设计,含有AMBA 3.0 AXI,可对频率和电压变化进行控制;系统级TrustZone软硬件参考设计。两个新内核中集成了ARM Jazelle技术,可加快嵌入式Java执行。ARM1176JZF-S内核包含一个浮点协处理器,极适合用于嵌入式3D图像应用产品。两个新内核的标准配置中都含有ARM-Synopsys RTL to GDSII参考技术方案,都是可综合的,在0.13μ工艺中,最低频率可达333-550MHz。PrimeXsys平台包含ARM CoreSight?技术,提供了世界领先的调试和跟踪技术方案。 ARM926ET-S带Jazelle扩充、分开的指令和数据高速AHB接口及全性能MMU。 ARM CoreSight技术可快速地对不同地软件进行调试,通过对多核和AMBA?总线的情况进行同时跟踪。此外,同时对多核进行暂停和调试,CoreSight技术可对AMBA上的存储器和外设进行调试,无需暂停处理器工作,达到不易做到的实时开发。ARM CoreSight技术拥有更高的压缩率,为半导体制造商们提供了对新的更高频处理器进行调试、跟踪的技术方案。使用CoreSight技术,制造商们可通过减少调试所需的管脚、减少片上跟踪缓存所需的芯片面积等手段来降低生产成本。 ================================================================= ================================================================= ARM微处理器的应用选型 鉴于ARM微处理器的众多优点,随着国内外嵌入式应用领域的逐步发展,ARM微处理器必然会获得广泛的重视和应用。但是,由于ARM微处理器有多达十几种的内核结构,几十个芯片生产厂家,以及千变万化的内部功能配置组合,给开发人员在选择方案时带来一定的困难,所以,对ARM芯片做一些对比研究是十分必要的。 以下从应用的角度出发,对在选择ARM微处理器时所应考虑的主要问题做一些简要的探讨。 ARM微处理器内核的选择 从前面所介绍的内容可知,ARM微处理器包含一系列的内核结构,以适应不同的应用领域,用户如果希望使用WinCE或标准Linux等操作系统以减少软件开发时间,就需要选择ARM720T以上带有MMU(Memory Management Unit)功能的ARM芯片,ARM720T、ARM920T、ARM922T、ARM946T、Strong-ARM都带有MMU功能。而ARM7TDMI则没有MMU,不支持Windows CE和标准Linux,但目前有uCLinux等不需要MMU支持的操作系统可运行于ARM7TDMI硬件平台之上。事实上,uCLinux已经成功移植到多种不带MMU的微处理器平台上,并在稳定性和其他方面都有上佳表现。 本书所讨论的S3C4510B即为一款不带MMU的ARM微处理器,可在其上运行uCLinux操作系统。 系统的工作频率 系统的工作频率在很大程度上决定了ARM微处理器的处理能力。ARM7系列微处理器的典型处理速度为0.9MIPS/MHz,常见的ARM7芯片系统主时钟为20MHz-133MHz,ARM9系列微处理器的典型处理速度为1.1MIPS/MHz,常见的ARM9的系统主时钟频率为100MHz-233MHz,ARM10最高可以达到700MHz。不同芯片对时钟的处理不同,有的芯片只需要一个主时钟频率,有的芯片内部时钟控制器可以分别为ARM核和USB、UART、DSP、音频等功能部件提供不同频率的时钟。 芯片内存储器的容量 大多数的ARM微处理器片内存储器的容量都不太大,需要用户在设计系统时外扩存储器,但也有部分芯片具有相对较大的片内存储空间,如ATMEL的AT91F40162就具有高达2MB的片内程序存储空间,用户在设计时可考虑选用这种类型,以简化系统的设计。 片内外围电路的选择 除ARM微处理器核以外,几乎所有的ARM芯片均根据各自不同的应用领域,扩展了相关功能模块,并集成在芯片之中,我们称之为片内外围电路,如USB接口、IIS接口、LCD控制器、键盘接口、RTC、ADC和DAC、DSP协处理器等,设计者应分析系统的需求,尽可能采用片内外围电路完成所需的功能,这样既可简化系统的设计,同时提高系统的可靠性。 |