CONTENTS微处理器体系架构1嵌入式编程概述3ARM处理器概述21微处理器体系架构系统设计开发流程硬件总体设计硬件平台选型硬件资源:CPU、RAM、FLASH、外设(GPIO、ADC、Ethernet、UART、CAN、USB等)开发难易程度:开发资源、开发周期价格:开发成本两种典型的结构:冯·诺依曼结构哈佛体系结构微处理器体系结构冯·诺依曼机:将数据和指令都存储在存储器中的计算机。计算系统由一个中央处理单元(CPU)和一个存储器组成。存储器拥有数据和指令,并且可以根据所给的地址对它进行读或写。微处理器体系结构冯·诺依曼体系结构代表处理器X86系列处理器MIPS公司的MIPS处理器ARM7系列处理器。微处理器体系结构哈佛机:为数据和程序提供了各自独立的存储器。独立的程序存储器和数据存储器为数字信号处理提供了较高的性能。微处理器体系结构微处理器体系结构哈佛体系结构DSP处理器ARM9以后的ARM系列处理器。Microchip公司的PIC系列处理器Motorola的MC68系列处理器Zilog公司的Z8系列处理器Atmel公司的AVR系列处理器。2016年被美国芯片制造商微芯科技(MicrochipTechnology)宣布以36亿美元收购Atmel2015年2月,飞思卡尔与NXP达成合并协议2016年10月高通宣布将以380亿美元收购荷兰半导体厂商恩智浦半导体公司2015年12月英特尔斥资167亿美元收购了Altera公司按指令集分类:CISC微处理器体系结构为了提高运算速度,人们不断将越来越多的复杂指令加入到指令系统中,以提高计算机的处理效率,这就逐步形成复杂指令集计算机体系,即ComplexInstructionSetComputer,简称CISC。但随着计算机系统的日趋复杂,CISC逐渐暴露出其自身存在的缺陷:各种指令的使用率相差悬殊:一个典型程序的运算过程所使用的80%指令,只占一个处理器指令系统的20%,。复杂的指令系统必然带来结构的复杂性,这不但增加了设计的时间与成本还容易造成设计失误。VLSI技术现在已达到很高的水平,但也很难把CISC的全部硬件做在一个芯片上。微处理器体系结构RISC:基本思想是尽量简化计算机指令功能,只保留那些功能简单、能在一个节拍内执行完成的指令,而把较复杂的功能用一段子程序来实现,这种计算机系统就被称为精简指令系统计算机,即ReducedInstructionSetComputer,简称RISC。RISC技术的精华就是通过简化计算机指令功能,使指令的平均执行周期减少,从而提高计算机的工作主频,同时大量使用通用寄存器来提高子程序执行的速度。按指令集分类:RISC微处理器体系结构微处理器体系结构2ARM处理器概述ARM是AdvancedRISCMachines的缩写,它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC(精简指令集)处理器。1985年第一个ARM原型在英国剑桥诞生。2016年7月,日本电信巨头软银(Softbank)以243亿英镑(约320亿美元)收购英国半导体芯片制造商ARM.ARM处理器概述到目前为止,基于ARM技术的微处理器应用约占据了32位嵌入式微处理器75%以上的市场份额。全球95%的手机以及绝大多数PAD产品均采用ARM体系的嵌入式处理器。“掌上计算”相关的所有领域皆为其所主宰。主要应用:消费类电子,无线、图像应用开放平台、存储、自动化、智能卡、SIM卡等。ARM处理器的三大特点:耗电少功能强、16位/32位双指令集、众多合作伙伴。将技术授权给其它芯片厂商形成各具特色的ARM芯片...ARM处理器概述ARM处理器概述处理器授权(硬核IP/软核IP)架构授权ARM处理器概述ARM内核名称体系结构ARM1ARMV1ARM2ARMV2ARM2As、ARM3ARMV2aARM6、ARM600、ARM610、ARM7、ARM700、ARM710ARMV3StrongARM、ARM8、ARM810ARMV4ARM7TDMI、ARM710T、ARM720T、ARM740TARM9TDMI、ARM920T、ARM940TARMV4TARM9SE-SARMV5ARM10TDMI、ARM1020E、XscaleARMV5TEARM11、ARM11T2-S、ARM1156T2F-S、ARM1176JZ-SARMV6Cortex-A系列,如Cortex-A8、Cortex-A9ARMV7ACortex-R系列,如Cortex-R4ARMV7RCortex-M系列,如Cortex-M0、Cortex-M1、Cortex-M3ARMV7MARM公司在经典处理器ARM11以后的产品改用Cortex命名,并分成A、R和M三类ARM处理器概述ARM处理器概述Cortex-A—面向性能密集型系统的应用处理器内核,为利用操作系统(例如Linux或者Android)的设备提供了一系列解决方案,从低成本手持设备到智能手机、平板电脑、机顶盒以及企业网络设备等.ARM处理器概述Cortex-R处理器针对高性能实时应用,例如硬盘控制器(或固态驱动控制器)、企业中的网络设备和打印机、消费电子设备(例如蓝光播放器和媒体播放器)、以及汽车应用(例如安全气囊、制动系统和发动机管理)ARM处理器概述Cortex-M—面向各类嵌入式应用的微控制器内核SecurCore系列微处理器主要应用于一些对安全性要求较高的应用产品及应用系统,如信用卡、电子钱包、SIM卡、电子护照和身份证。3嵌入式编程概述嵌入式编程概述集成开发环境C语言现在实际的嵌入式编程是这样的:嵌入式编程概述—集成开发环境集成开发环境MDK(MicrocontrollerDevelopmentKit)是Keil公司(2005被ARM公司收购)开发的ARM开发工具MDK包含了工业标准的KeilC编译器、宏汇编器、调试器、实时内核等组件MDK的最新版本是uVision5,利用它可以开发基于ARM7、ARM9、Cortex-M的微控制器应用程序嵌入式编程概述—集成开发环境ULINK是Keil公司提供的USB-JTAG接口仿真器。ULINK2的主要功能如下:①下载目标程序②检查内存和寄存器③片上调试,整个程序的单步执行④插入多个断点⑤运行实时程序⑥对Flash存储器进行编程嵌入式编程概述—集成开发环境使用RealviewMDK创建、完成一个新的工程只需要以下几个环节:1.→选择工具集2.→创建工程并选择处理器3.→创建源文件4.→配置硬件选项5.→配置对应启动代码6.→编译链接7.→调试8.→生成镜像文件9.→镜像文件下载。嵌入式编程概述—集成开发环境创建工程并选择处理器•选择Project→NewProject…,输入创建的新工程的文件名,即可创建一个新的工程。•创建一个新工程时,需要为工程选择一款对应处理器•或者也可以通过单击Project→SelectDeviceforTarget…•例如选择S3C2410A嵌入式编程概述—集成开发环境加入CPU的相关启动代码•启动代码是用来初始化目标设备的配置,完成运行时系统的初始化工作,对于嵌入式系统开发而言是必不可少的•S3C2410A.s就是系统自带的启动代码。这段代码是CPU复位后首先要执行的代码嵌入式编程概述—集成开发环境•硬件选项配置•单击菜单项Project→OptionsforTarget,在弹出的Target页面中可指定目标硬件和所选择设备片内组件的相关参数,处理器配置对话框如下:31嵌入式编程概述—集成开发环境编译配置•VisionIDE目前支持RealView、KeilCARM和GNU这三种编译器•选择编译器:使用RealView编译器32嵌入式编程概述—集成开发环境•编译链接:•编译结果:嵌入式编程概述—集成开发环境设置Flash的下载选项•“Utilities”配置对话框•Flash下载选项设置•选择Flash编程算法34嵌入式编程概述—集成开发环境映像文件下载•在仿真环境下调试好程序后,还需要将生成的文件镜像烧写到目标板的flash中。RealviewMDK结合ULINK2可以支持flash烧写功能。步骤如下:①选择正确的flash算法②连接好ULINK2仿真器③编译成功后,点击工具栏中的“load”按钮,实现镜像文件下载。嵌入式编程概述—集成开发环境瑞典IARSystems公司为微处理器开发的一个集成开发环境支持ARM,AVR,MSP430等芯片内核平台。嵌入式编程概述—集成开发环境CodeWarriorCodeComposerStudio嵌入式编程概述—集成开发环境SourceInsight嵌入式编程概述—其他开发工具