您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 嵌入式ARM系统原理与实例开发(第二版)
嵌入式ARM系统原理与实例开发(第二版)嵌入式ARM系统原理与实例开发北京大学出版社出版杨宗德编著2007年7月嵌入式ARM系统原理与实例开发(第二版)12ARM处理器概述ARM硬件体系结构3ARM处理器内部结构第2章嵌入式ARM处理器与开发工具4开发工具与开发流程介绍嵌入式ARM系统原理与实例开发(第二版)2019/8/1北京大学出版社出版3ARMLtd•成立于1990年11月–前身为Acorn计算机公司–AdvanceRISCMachine(ARM)•主要设计ARM系列RISC处理器内核•授权ARM内核给生产和销售半导体的合作伙伴–ARM公司不生产芯片–IP(IntelligenceProperty)•另外也提供基于ARM架构的开发设计技术–软件工具,评估板,调试工具,应用软件,–总线架构,外围设备单元,等等嵌入式ARM系统原理与实例开发(第二版)2019/8/1北京大学出版社出版4ARM授权费IPARM创造和设计IPPartner产品,例如:芯片Partner把ARMIP和其他IP集成进产品OEMCustomer版权费单价OEM用来自ARMPartner的芯片设计制造最终用户产品业务拓展/市场格局ARM的业务模型嵌入式ARM系统原理与实例开发(第二版)2019/8/1北京大学出版社出版5命名的含义标志含义说明T支持Thumb指令集Thumb指令集版本1:ARMv4TThumb指令集版本2:ARMv5TThumb-2:ARMv6TD片上调试M支持长乘法32位乘32位得到64位,32位的乘加得到64位IEmbeddedICEEDSP指令增加了DSP算法处理器指令:16位乘加指令,饱和的带符号数的加减法,双字数据操作,cache预取指令JJava加速器Jazelle提高java代码的运行速度S可综合提供VHDL或Verilog语言设计文件嵌入式ARM系统原理与实例开发(第二版)12ARM处理器概述ARM硬件体系结构3ARM处理器内部结构第2章嵌入式ARM处理器与开发工具4开发工具与开发流程介绍嵌入式ARM系统原理与实例开发(第二版)冯·诺依曼体系结构模型指令寄存器控制器数据通道输入输出中央处理器存储器程序指令0指令1指令2指令3指令4数据数据0数据1数据2嵌入式ARM系统原理与实例开发(第二版)哈佛体系结构指令寄存器控制器数据通道输入输出中央处理器程序存储器指令0指令1指令2数据存储器数据0数据1数据2地址指令地址数据嵌入式ARM系统原理与实例开发(第二版)CISC和RISCCISC:复杂指令集(ComplexInstructionSetComputer)具有大量的指令和寻址方式8/2原则:80%的程序只使用20%的指令大多数程序只使用少量的指令就能够运行。RISC:精简指令集(ReducedInstructionSetComputer)在通道中只包含最有用的指令确保数据通道快速执行每一条指令使CPU硬件结构设计变得更为简单嵌入式ARM系统原理与实例开发(第二版)2019/8/1北京大学出版社出版10ARM处理器的指令三级流水线嵌入式ARM系统原理与实例开发(第二版)2019/8/1北京大学出版社出版11ARM处理器的指令五级流水线嵌入式ARM系统原理与实例开发(第二版)12ARM处理器概述ARM硬件体系结构3ARM处理器内部结构第2章嵌入式ARM处理器与开发工具4开发工具与开发流程介绍嵌入式ARM系统原理与实例开发(第二版)2019/8/1北京大学出版社出版13ARM710结构框图嵌入式ARM系统原理与实例开发(第二版)2019/8/1北京大学出版社出版14ARM7功能图嵌入式ARM系统原理与实例开发(第二版)2019/8/1北京大学出版社出版15ARM920功能结构图嵌入式ARM系统原理与实例开发(第二版)2019/8/1北京大学出版社出版16S3C2410内部结构图嵌入式ARM系统原理与实例开发(第二版)2019/8/1北京大学出版社出版17IntelPXA270应用系统框图示例嵌入式ARM系统原理与实例开发(第二版)12ARM处理器概述ARM硬件体系结构3ARM处理器内部结构第2章嵌入式ARM处理器与开发工具4开发工具与开发流程介绍嵌入式ARM系统原理与实例开发(第二版)2019/8/1北京大学出版社出版19嵌入式软件开发的特点和技术挑战•嵌入式软件开发需要软硬件开发环境和工具•嵌入式软硬件必须协同设计•需要新的任务设计方法•开发过程完成后,系统应用程序代码需要固化到系统中并进行功能、性能和可靠性测试•技术挑战:软件的要求更高,开发工作量和难度更大,需要较大的知识集合嵌入式ARM系统原理与实例开发(第二版)2019/8/1北京大学出版社出版20嵌入式软件开发环境•1)交叉开发环境•交叉开发软件一般为一个整合编辑、编译、汇编、链接、调试、工程管理及函数库等功能模块的集成开发环境IDE(IntergratedDevelopmentEnvironment)。•所谓交叉是指在一种CPU及其环境上开发另一种CPU及其环境上运行的程序。嵌入式ARM系统原理与实例开发(第二版)2019/8/1北京大学出版社出版21嵌入式软件开发环境•2)软件模拟环境•软件模拟环境也称为指令集模拟器ISS(InstructionSetSimulator)•软件模拟不可能完全代替真正的硬件环境,这种模拟调试只能作为一种初步调试,主要是用作用户程序的模拟运行,用来检查语法、程序的结构等简单错误,用户最终还必须在真实的硬件环境中实际运行调试,完成整个应用的开发。嵌入式ARM系统原理与实例开发(第二版)2019/8/1北京大学出版社出版22嵌入式软件开发环境•3)评估电路板•一般用来作为开发者使用的开发平台、学习板、实验板,它们可以作为应用目标板出来之前的软件测试、硬件调试的电路板嵌入式ARM系统原理与实例开发(第二版)2019/8/1北京大学出版社出版23嵌入式应用软件开发的基本流程•基于交叉开发环境的嵌人式应用软件开发主要分如下几个步骤:开发环境的建立、源代码编辑阶段、交叉编译和链接、重定位和下载、联机调试几个基本阶段。–开发环境建立–源文件编辑阶段–编译–链接–下载–调试嵌入式ARM系统原理与实例开发(第二版)2019/8/1北京大学出版社出版24嵌入式软件开发的可移植性和可重用性•在确保软件的正确性、实时性的前提下,必须关注软件的可移植性和可重用性。•嵌入式软件与通用软件的不同在于嵌入式应用软件高度依赖于目标应用的软硬件环境,软件的部分任务功能函数由和处理器密切相关的汇编语言完成,可移植性差。•一个运行良好的嵌入式软件或其中的部分子程序可能在今后的开发中被应用于类似的应用领域。原有的代码已被反复应用和维护,具有更好的稳定性。在原有的代码上进行移植将会减少开发的周期、提高开发效率、节约开发成本嵌入式ARM系统原理与实例开发(第二版)2019/8/1北京大学出版社出版25嵌入式软件开发的可移植性和可重用性•采用下面的方法可以提高应用软件的可移植性和可重用性。–多用高级语言少用或者不用汇编语言–将不可移植部分局域化–提高代码的可重用性(标准化接口)嵌入式ARM系统原理与实例开发(第二版)2019/8/1北京大学出版社出版26嵌入式开发的考虑要素•复杂计算与资源紧缺•用户界面的选择•实时性•多任务多速率•制造成本•功耗•成品的体积嵌入式ARM系统原理与实例开发(第二版)2019/8/1北京大学出版社出版27嵌入式开发的基本流程•系统定义与需求分析•系统设计方案的初步确立•初步设计方案性价比评估与方案评审论证•完善初步方案、初步方案实施•软硬件集成测试•系统功能性能测试及可靠性测试嵌入式ARM系统原理与实例开发(第二版)2019/8/1北京大学出版社出版28常用嵌入式系统软件开发工具•面向硬件的开发工具–如ADS•嵌入式操作系统开发–如GCC•面向特定操作系统的应用开发工具嵌入式ARM系统原理与实例开发(第二版)2019/8/1北京大学出版社出版29底层开发使用ADS软件开发流程及调试方式图嵌入式ARM系统原理与实例开发(第二版)2019/8/1北京大学出版社出版30嵌入式操作系统开发•GCC系列工具•嵌入式操作系统多用C/C++开发,因此,要编译操作系统内容,一般都使用GCC系列工具。•GCC可以用来编译uClinux、Linux、ECOS、uC/OS-II等操作系统。嵌入式ARM系统原理与实例开发(第二版)2019/8/1北京大学出版社出版31面向特定操作系统的应用工具•WinCE应用软件开发:如果选用的操作系统为WinCE,则应用软件需要选择WinCE的EmbededVC开发环境。•Symbian应用程序开发:如果开发Symbian手机应用程序,则Symbian应用程序开发选择的是Symbian的C/C++集成开发环境。•Linux应用程序开发:如果开发的是Linux应用程序,则选择的开发工具是Linux程序开发工具(GCC/G++/GDB/Makefile)。嵌入式ARM系统原理与实例开发(第二版)2019/8/1北京大学出版社出版32Linux交叉编译调试环境开发程序过程嵌入式ARM系统原理与实例开发(第二版)2019/8/1北京大学出版社出版33Linux交叉编译调试环境开发程序过程•(1)程序首先在宿主机(安装与应用目标板同样内核的Linux操作系统)编辑编译,生成可执行文件。•(2)通过网络共享方式将该程序共享给目标板,因为此处是开发Linux应用程序,目标板已经移植了Linux操作系统,因此,可以充分利用Linux操作系统强大的网络功能,通过共享的方式的原因一方面是减少下载程序的时间,另一方面也是因为目标板资源有很,尽可能少占用目标板资源的考虑。•(3)通过Linux操作系统远程登陆方式登陆到目标板Linux,并在目标板上运行交叉调试服务器,然后在目标板上运行共享到目标板的Linux应用程序。•(4)通过交叉调用器终端访问目标板的交叉调试服务器,将该程序的运行结果反馈到宿主机上,查看运行结果是否正确。嵌入式ARM系统原理与实例开发(第二版)2019/8/1北京大学出版社出版34ADS1.2软件环境开发流程汇编源代码ELF目标代码C源代码C++源代码链接库文件32位映像文件二进制代码嵌入式ARM系统原理与实例开发(第二版)2019/8/1北京大学出版社出版35ARM命令参数说明(1.armasm汇编编译指令,)•此命令用来编译汇编程序,其命令格式:•armasm[选项]-o目标文件源文件•参数选项说明如下:–-Errors错误文件名;指定一个错误输出文件–-I目录[,目录];指定源文件搜索目录–-PreDefine预定义宏;指定预定义的宏–-NOCache;编译源代码时禁止使用Cache进行优化–-MaxCachen;编译源代码时使用Cache进行优化–-NOWarn;关闭所有的警告信息–-G;输出调试表–-keep;在目标文件中保存本地符号表–-LIttleend;生成小端(Little-endian)ARM代码–-BIgend;生成大端(Big-endian)ARM代码–-CPUtarget-cpu;设立目标板ARM核类型,如:arm920t–-16;建立16位的thumb指令–-32;建立32位的ARM指令•编译一个汇编文件命令示例如下:–c:\armasm-LIttleend-cpuARM920T-32test.s嵌入式ARM系统原理与实例开发(第二版)2019/8/1北京大学出版社出版362.armcc/armcppC/C++编译器•armcc用来编译C程序,armcpp用来编译C++程序,其命令格式如下:•1.命令:armcc[选项]源文件1源文件2...源文件n•这两个命令的选项说明如下:–-c;编译但是不连接–-D;指定一个编译时使用的预定义宏常量–-E;仅仅对C源文件做预处理–-g;产生调试信息表–-I;指头文件的搜索路径–-ofile;指定一个输出的目标文件–-O[0/1/2];指定源代码的优
本文标题:嵌入式ARM系统原理与实例开发(第二版)
链接地址:https://www.777doc.com/doc-28896 .html