《ARM嵌入式系统结构与编程》第二章课后答案
最新《ARM嵌入式系统结构与编程》第二章课后答案
第2章ARM技术与ARM体系结构121.简述ARM处理器内核调试结构原理3答:ARM处理器一般都带有嵌入式追踪宏单元ETM(Embedded Trace Macro),4它是ARM公司自己推出的调试工具。
ARM处理器都支持基于JTAG(Joint TestAction Group 联合测试行动小组)的调试方法。
它利用芯片内部的Embedded ICE 56来控制ARM内核操作,可完成单步调试和断点调试等操作。
当CPU处理单步执7行完毕或到达断点处时,就可以在宿主机端查看处理器现场数据,但是它不能8在CPU运行过程中对实时数据进行仿真。
910ETM解决了上述问题,能够在CPU运行过程中实时扫描处理器的现场信息,并11数据送往TAP(Test Access Port)控制器。
上图中分为三条扫描链(图中的粗12实线),分别用来监视ARM核,ETM,嵌入式ICE的状态。
13141.分析ARM7TDMI-S各字母所代表的含义。
15答:ARM7 T D M I – S 中16ARM是Advanced RISC Machines的缩写177是系列号;T:支持高密度16位的Thumb指令集;1819D:支持JTAG片上调试;20M:支持用于长乘法操作(64位结果)ARM指令,包含快速乘法器;;21I:带有嵌入式追踪宏单元ETM,用来设置断点和观察点的调试硬件;22S:可综合版本,意味着处理器内核是以源代码形式提供的。
这种源代码形式23又可以编译成一种易于EDA工具使用的形式。
24252.ARM处理器的工作模式有哪几种,其中哪些为特权模式,哪些为异26常模式,并指出处理器在什么情况下进入相应的模式。
27答:ARM技术的设计者将ARM处理器在应用中可能产生的状态进行了分类,并28针对同一类型的异常状态设定了一个固定的入口点,当异常产生时,程序会自29动跳转到对应异常入口处进行异常服务。
301.用户模式:非特权模式,也就是正常程序执行的模式,大部分任31务在这种模式下执行。
ARM嵌入式系统结构与编程习题标准答案
《ARM嵌入式系统结构与编程》习题答案第一章绪论1.国内嵌入式系统行业对“嵌入式系统”的定义是什么?如何理解?答:国内嵌入式行业一个普遍认同的定义是:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能,可靠性,成本,体积,功耗严格要求的专业计算机系统。
从这个定义可以看出嵌入式系统是与应用紧密结合的,它具有很强的专用性,必须结合实际系统需求进行合理的剪裁利用。
因此有人把嵌入式系统比作是一个针对特定的应用而“量身定做”的专业计算机系统。
2.嵌入式系统是从何时产生的,简述其发展历程。
答:从20世纪70年代单片机的出现到目前各式各样的嵌入式微处理器,微控制器的大规模应用,嵌入式系统已经有了30多年的发展历史。
嵌入式系统的出现最初是基于单片机的。
Intel公司1971年开发出第一片具有4位总线结构的微处理器4004,可以说是嵌入式系统的萌芽阶段。
80年代初的8051是单片机历史上值得纪念的一页。
20世纪80年代早期,出现了商业级的“实时操作系统内核”,在实时内核下编写应用软件可以使新产品的沿着更快,更节省资金。
20世纪90年代实时内核发展为实时多任务操作系统。
步入21世纪以来,嵌入式系统得到了极大的发展。
在硬件上,MCU的性能得到了极大的提升,特别是ARM技术的出现与完善,为嵌入式操作系统提供了功能强大的硬件载体,将嵌入式系统推向了一个崭新的阶段。
3.当前最常用的源码开放的嵌入式操作系统有哪些,请举出两例,并分析其特点。
答:主要有嵌入式Linux和嵌入式实时操作内核uC/OS-II嵌入式Linux操作系统是针对嵌入式微控制器的特点而量身定做的一种Linux操作系统,包括常用的嵌入式通信协议和常用驱动,支持多种文件系统。
主要有以下特点:源码开放,易于移植,内核小,功能强大,运行稳定,效率高等。
uC/OS是源码工卡的实时嵌入式系统内核,主要有以下特点:源码公开,可移植性强,可固化,可剪裁,占先式,多任务,可确定性,提供系统服务等。
ARM嵌入式系统基础教程第二版课后习题答案
第1xx 嵌入式系统概述(1)举出3个本书中未提到的嵌入式系统的例子。
答:键盘、鼠标、扫描仪。
(2)什么叫嵌入式系统?答:嵌入到对象体系中的专用计算机应用系统。
(3)什么叫嵌入式处理器?嵌入式处理器分为哪几类?答:嵌入式处理器是为完成特殊的应用而设计的特殊目的的处理器。
分为3类:1.注重尺寸、能耗和价格;2.关注性能;3.关注全部4个需求——性能、尺寸、能耗和价格。
(4)什么是嵌入式操作系统?为何要使用嵌入式操作系统?答:嵌入式操作系统是操作系统的一种类型,是在传统操作系统的基础上加入符合嵌入式系统要求的元素发展而来的。
原因:1.提高了系统的可靠性;2.提高了开发效率,缩短了开发周期。
3.充分发挥了32位CPU的多任务潜力。
第2章ARM7体系结构1.基础知识(1)ARM7TDMI中的T、D、M、I的含义是什么?答:T:高密度16位Thumb指令集扩展;D:支持片上调试;M:64位乘法指令;I:Embedded ICE硬件仿真功能模块。
(2)ARM7TDMI采用几级流水线?使用何种存储器编址方式?答:3级;冯·诺依曼结构。
(3)ARM处理器模式和ARM处理器状态有何区别?答:ARM处理器模式体现在不同寄存器的使用上;ARM处理器状态体现在不同指令的使用上。
(4)分别列举ARM的处理器模式和状态?答:ARM的处理器模式:用户模式、系统模式、管理模式、中止模式、未定义模式、中断模式、快速模式;ARM的处理器状态:ARM状态、Thumb状态。
(5)PC和LR分别使用哪个寄存器?答:PC:R15;LR:4。
(6)R13寄存器的通用功能是什么?答:堆栈指针SP。
(7)CPSR寄存器中哪些位用来定义处理器状态?答:位31~28:N、Z、C、V,条件代码标志位;27~8:保留位;7~0:I、F、T、M4~0,控制标志位。
(8)描述一下如何禁止IRQ和FIQ的中断。
答:当控制位I置位时,IRQ中断被禁止,否则允许IRQ中断使能;当控制位F置位时,FIQ中断被禁止,否则允许FIQ中断使能。
《ARM嵌入式系统结构与编程》习题答案 邱铁编著
《ARM嵌入式系统结构与编程》邱铁编著. 清华大学出版社.年月第版 年月第二次印刷20093120108 《ARM嵌入式系统结构与编程》第1~4章思考与练习题答案 此答案仅供教师教学用 第1章绪论思考与练习题答案 1. 国内嵌入式系统行业对“嵌入式系统”的定义是什么 如何理解答 见教材1.1节。
2. 嵌入式系统是从何时产生的 简述其发展历程。
答 见教材1.1节。
3. 当前最常见的源码开放的嵌入式操作系统有哪些 请举出两例 并分析其特点。
答 见教材1.2.1节的嵌入式Linux和嵌入式实时操作内核μC /OS-II。
4. 举例说明嵌入式设备在工控设备中的应用。
答 见教材1.3节的“工业控制领域”。
5. 未来嵌入式技术的发展趋势有哪些 答 见教材1.4节的嵌入式技术的发展趋势。
第2章 ARM技术与ARM体系结构思考与练习题答案 1 简述ARM处理器内核调试结构原理。
答 对教材1.2节的图2-1进行描述。
2 分析ARM7TDMI-S各字母所代表的含义。
答 参考教材2 1 2 ARM核版本命名规则说明。
课后答案网《ARM嵌入式系统结构与编程》邱铁编著. 清华大学出版社. 年月第版 年月第二次印刷200931201083 ARM处理器的工作模式有哪几种 其中哪些为特权模式 哪些为异常模式并指出处理器在什么情况下进入相应的模式。
答 ARM处理器共有7种工作模式用户模式 非特权模式 也就是正常程序执行的模式 大部分任务在这种模式下执行。
在用户模式下 如果没异常发生 不允许应用程序自行改变处理器的工作模式 如果有异常发生 处理器会自动切换工作模式FIQ模式 也称为快速中断模式 支持高速数据传输和通道处理 当一个高优先级(fast)中断产生时将会进入这种模式。
IRQ模式 也称为普通中断模式 :当一个低优先级中断产生时将会进入这种模式。
在这模式下按中断的处理器方式又分为向量中断和非向量中断两种。
通常的中断处理都在IRQ模式下进行。
ARM嵌入式系统结构与编程课后复习题答案
《ARM嵌入式系统结构与编程》课后思考与练习题参考答案第一章绪论思考与练习题答案:1、答:见教材P2的1.1节容。
2、答:见教材P1的1.1节容。
3、答:见教材P4的1.2.1节的嵌入式Linux和嵌入式实时操作系统核µC/OS-Ⅱ。
4、答:见教材P6的1.3节的“工业控制领域”。
5、答:见教材P8的1.4节的嵌入式技术的发展趋势。
第二章ARM技术与ARM体系结构思考与练习题答案:1、答:对教材P15的2.2节的图2-1进行描述。
2、答:参考教材P12的2.1.2节ARM核版本命名规则说明。
3、答:见教材P18的2.3节的ARM处理器共有7种工作模式。
4、答:PSR具体的格式为:P21的图2-7,描述“标志域”和“控制域”各位的功能。
C、Z、N、V进行置位和清零见P22的容。
5、答:ARM在异常时会进行以下操作:P24最上面的(1)(2)(3)(4)。
ARM在异常返回时:(1)从SPSR_<mode>恢复CPSR;(2)从LR_<mode>恢复PC。
6、答:见教材P25的“数据存储格式”中的“小端存储格式”和“大端存储格式”。
7、答:在ARM三级流水线下:见教材P27的“三级流水线运行情况分析”的(1)带有存储器访问指令的流水线。
8、答:ARM9在指令操作上采用的5级流水线:(1)取指令:从指令Cache中读取指令。
(2)译码:对指令进行译码,识别出是对哪个寄存器进行操作,并从通用寄存器中读取操作数。
(3)执行:进行ALU运算和移位操作,如果是对存储器操作的指令,则在ALU中计算出要访问的存储器地址。
(4)存储器访问:如果是对存储器访问的指令,用来实现数据缓冲功能(通过数据Cache);如果不是对存储器访问的指令,本级流水线为一个空的时钟周期。
(5)寄存器回写:将指令运算或操作结果写回到目标寄存器中。
9、答:见教材P29的“5级流水线互锁分析”的容。
第三章ARM指令集寻址方式思考与练习题答案:1、答:见教材P32的3.1节中“2.指令条件码”的容。
嵌入式系统开发 第二章 课后作业答案
第二章ARM7体系结构1、基础知识(1)、ARM7TDMI中的T、D、M、I的含义是什么?答:带T 后缀的:高密度 16 位的Thumb指令机扩展带D 后缀的:支持片上调试带M 后缀的:64 位乘法指令带I 后缀的:有EmbededICE 硬件仿真功能(2)、ARM7TDMI采用几级流水线?使用何种存储器编址方式?答:三级流水线(取指译码执行);使用了冯·诺依曼(Von Neumann )结构,指令和数据共用一条32 位总线。
(8)、描述一下如何禁止IRQ和FIQ的中断。
答:当控制位I置位时,IRQ中断被禁止,否则允许IRQ中断使能;当控制位F置位时,FIQ中断被禁止,否则允许FIQ中断使能。
2.存储器格式答:无论是大端格式还是小端格式,R2的值与R1一致;地址0x4000单元的字节:大端:0x12、小端:0x78。
3.处理器异常请描述一下ARM7TDMI产生异常的条件是什么?各种异常会使处理器进入哪种模式?进入异常时内核有何操作?各种异常的返回指令又是什么?答:产生异常的条件:只要正常的程序被暂时终止,处理器就进入异常模式进入异常时,内核自动做:PC→LR、CPSR→相应异常模式下的SPSR、设置CPSR为相应的异常模式、相应异常处理程序的中断入口向量地址→PC。
异常返回指令;【异常】【模式】【返回指令】复位管理无未定义指令未定义 MOVS PC,R14_svc软件中断管理 MOVS PC,R14_und预取指中止中止 SUBS PC,R14_abt,#4数据中止中止 SUBS PC,R14_abt,#8IRQ 中断 SUBS PC,R14_irq,#4FIQ 快速中断 SUBS PC,R14_fiq,#4。
《ARM嵌入式系统结构与编程》第二章课后答案复习进程
第2章ARM技术与ARM体系结构1.简述ARM处理器内核调试结构原理答:ARM处理器一般都带有嵌入式追踪宏单元ETM(Embedded Trace Macro),它是ARM 公司自己推出的调试工具。
ARM处理器都支持基于JTAG(Joint Test Action Group 联合测试行动小组)的调试方法。
它利用芯片内部的Embedded ICE来控制ARM内核操作,可完成单步调试和断点调试等操作。
当CPU处理单步执行完毕或到达断点处时,就可以在宿主机端查看处理器现场数据,但是它不能在CPU运行过程中对实时数据进行仿真。
ETM解决了上述问题,能够在CPU运行过程中实时扫描处理器的现场信息,并数据送往TAP(Test Access Port)控制器。
上图中分为三条扫描链(图中的粗实线),分别用来监视ARM核,ETM,嵌入式ICE的状态。
1.分析ARM7TDMI-S各字母所代表的含义。
答:ARM7 T D M I – S 中ARM是Advanced RISC Machines的缩写7是系列号;T:支持高密度16位的Thumb指令集;D:支持JTAG片上调试;M:支持用于长乘法操作(64位结果)ARM指令,包含快速乘法器;;I:带有嵌入式追踪宏单元ETM,用来设置断点和观察点的调试硬件;S:可综合版本,意味着处理器内核是以源代码形式提供的。
这种源代码形式又可以编译成一种易于EDA工具使用的形式。
2.ARM处理器的工作模式有哪几种,其中哪些为特权模式,哪些为异常模式,并指出处理器在什么情况下进入相应的模式。
答:ARM技术的设计者将ARM处理器在应用中可能产生的状态进行了分类,并针对同一类型的异常状态设定了一个固定的入口点,当异常产生时,程序会自动跳转到对应异常入口处进行异常服务。
⏹1.用户模式:非特权模式,也就是正常程序执行的模式,大部分任务在这种模式下执行。
在用户模式下,如果没异常发生,不允许应用程序自行改变处理器的工作模式,如果有异常发生,处理器不会自动切换工作模式⏹2.FIQ模式:也称为快速中断模式,支持高速数据传输和通道处理,当一个高优先级(fast)中断产生时将会进入这种模式。
嵌入式系统课后习题-部分答案(PDF)
第一章1-1.简述嵌入式系统的定义。
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
1-2.简述嵌入式系统的组成。
从体系结构上看,嵌入式系统主要由嵌入式处理器、支撑硬件和嵌入式软件组成。
其中嵌入式处理器通常是单片机或微控制器,支撑硬件主要包括存储介质、通信部件和显示部件等,嵌入式软件则包括支撑硬件的驱动程序、操作系统、支撑软件及应用中间件等。
嵌入式系统的组成部分是嵌入式系统硬件平台、嵌入式操作系统和嵌入式系统应用。
嵌入式系统硬件平台为各种嵌入式器件、设备(如ARM 、PowerPC、Xscale、MIPS等);嵌入式操作系统是指在嵌入式Linux、uCLinux、WinCE等。
1-3.ARM7处理器使用的是(ARMv4)指令集。
ARM7内核采用冯·诺依曼体系结构,数据和指令使用同一条总线。
内核有一条3级流水线,执行ARMv4指令集。
1-6.ARM9采用的是(5)级流水线设计。
存储器系统根据哈佛体系结构(程序和数据空间独立的体系结构)重新设计,区分数据总线和指令总线。
第二章2-1.简述ARM可以工作在几种模式。
ARM处理器共有7种工作模式:用户模式(User)、快速终端模式(FIQ)、外部中断模式(IRQ)、特权模式(svc)、数据访问中止模式(Abort)、未定义指令中止模式(Undef)、系统模式(System)。
除用户模式外其他6种模式称为特权模式。
在特权模式下,程序可以访问所有的系统资源,也可以任意地进行处理器模式切换。
再除去系统模式,其余5种模式又称为异常模式。
2-2.ARM核有多少个寄存器?ARM处理器有如下37个32位长的寄存器:(1)30个通用寄存器;(2)6个状态寄存器:1个CPSR(Current Program Status Register,当前程序状态寄存器),5个SPSR(Saved Program Status Register,备份程序状态寄存器);(3)1个PC(Program Counter,程序计数器)。
ARM嵌入式系统基础的教程第二版课后习题答案
第1章嵌入式系统概述<1>举出3个本书中未提到的嵌入式系统的例子.答:键盘、鼠标、扫描仪.<2>叫嵌入式系统?答:嵌入到对象体系中的专用计算机应用系统.<3>叫嵌入式处理器?嵌入式处理器分为哪几类?答:嵌入式处理器是为完成特殊的应用而设计的特殊目的的处理器.分为3类:1.注重尺寸、能耗和价格;2.关注性能;3.关注全部4个需求——性能、尺寸、能耗和价格.<4>是嵌入式操作系统?为何要使用嵌入式操作系统?答:嵌入式操作系统是操作系统的一种类型,是在传统操作系统的根底上参加符合嵌入式系统要求的元素开展而来的.原因:1.提高了系统的可靠性;2.提高了开发效率,缩短了开发周期.3.充分发挥了32位CPU的多任务潜力.第2章 ARM7体系结构1.根底知识<1>ARM7TDMI中的T、D、M、I的含义是?答:T:高密度16位Thumb指令集扩展;D:支持片上调试;M:64位乘法指令;I:Embedded ICE硬件仿真功能模块.<2>ARM7TDMI采用几级流水线?使用何种存储器编址方式?答:3级;冯·诺依曼结构.<3>ARM处理器模式和ARM处理器状态有何区别?答:ARM处理器模式表现在不同存放器的使用上;ARM处理器状态表现在不同指令的使用上.<4>分别列举ARM的处理器模式和状态?答:ARM的处理器模式:用户模式、系统模式、管理模式、中止模式、未定义模式、中断模式、快速模式;ARM的处理器状态:ARM状态、Thumb状态.<5>PC和LR分别使用哪个存放器?答:PC:R15;LR:R14.<6>R13存放器的通用功能是?答:堆栈指针SP.<7>CPSR存放器中哪些位用来定义处理器状态?答:位31~28:N、Z、C、V,条件代码标志位;27~8:保存位;7~0:I、F、T、M4~0,控制标志位.<8>描述一下如何禁止IRQ和FIQ的中断.答:当控制位I置位时,IRQ中断被禁止,否如此允许IRQ中断使能;当控制位F 置位时,FIQ中断被禁止,否如此允许FIQ中断使能.2.存储器格式答:无论是大端格式还是小端格式,R2的值与R1一致;地址0x4000单元的字节:大端:0x12、小端:0x78.3.处理器异常请描述一下ARM7TDMI产生异常的条件是?各种异常会使处理器进入哪种模式?进入异常时内核有何操作?各种异常的返回指令又是?答:[异常] [模式] [返回指令]复位管理无未定义指令未定义 MOVS PC,R14软件中断管理 MOVS PC,R14预取指中止中止 SUBS PC,R14,#4数据中止中止 SUBS PC,R14,#8IRQ 中断 SUBS PC,R14,#4FIQ 快速中断 SUBS PC,R14,#4进入异常时,内核自动做:PC→LR、CPSR→相应异常模式下的SPSR、设置CPSR 为相应的异常模式、相应异常处理程序的中断入口向量地址→PC.第3章 ARM7TDMI<-S>指令系统1.根底知识<1>ARM7TDMI<-S>有几种寻址方式?"LDR R1,[R0,#0x08]〞属于哪种寻址方式?答:有8种寻址方式:1.存放器寻址 2.立即寻址 3.存放器移位寻址 4.存放器间接寻址 5.基址寻址 6.多存放器寻址 7.堆栈寻址 8.相对寻址;"LDRR1,[R0,#0x08]〞属于基址寻址.<2>ARM指令的条件码有多少个?默认条件码是?答:16个;AL.<3>ARM指令中的第2个操作数有哪几种形式?列举5个8位图立即数.答:1.常数表达式<8位图> 2.存放器方式 3.存放器移位方式;0x3FC、0、0xF0000000、200、0xF0000001.<4>LDR/STR指令的偏移形式有哪4种?LDRB指令和LDRSB指令有何区别?答:1.零偏移 2.前索引偏移 3.程序相对偏移 4.后索引偏移;LDRB:加载无符号字节数据,LDRSB加载有符号字节数据<5>请指出MOV指令与LDR加载指令的区别与用途?答:MOV指令的源操作数是常数或〔带偏移量的〕存放器,用于存放器之间的数据传送;LDR指令的源操作数是地址,用于存储器到存放器的数据传送.<6>CMP指令是如何执行的?写一程序,判断R1的值是否大于0x30,是如此将R1减去0x30.答:CMP指令将Rn-operand2,根据结果更新CPSR中的相应条件标志位.CMP R1,0x30SUBHI R1,0x30<7>调用子程序是用B指令还是用BL指令?请写出返回子程序的指令.答:用BL;MOV PC,R14.<8>请指出LDR伪指令的用法.指令格式与LDR加载指令的区别是?答:用法:LDR{cond} Rd,=立即数/标号+立即数;LDR伪指令的源操作数是代表一个常数,LDR加载指令的源操作数代表一个地址.<9>ARM状态与Thumb状态的切换指令是?请举例说明.答:BX;;从ARM状态切换到Thumb状态CODE32LDR R0,=Lable+1BX R0CODE16Lable MOV R1,#12;从Thumb状态切换到ARM状态CODE16LDR R0,=LableBX R0CODE32Lable MOV R1,#10<10>Thumb状态与ARM状态的存放器有区别?Thumb指令对哪些存放器的访问受到一定限制?答:有区别;R8~R15.<11>Thumb指令集的堆栈入栈、出栈指令是哪两条?答:PUSH、POP.<12>Thumb指令集的BL指令转移X围为何能达到±4MB?其指令编码是怎样的?答:BL指令事实上是两条指令,其编码为:11110{地址偏移高11位}、11111{地址偏移低11位},地址编码22位,再左移一位<半字对齐>,23位地址寻址8MB,即±4MB.2.有符号和无符号加法答:<1>0xFFFF000F <A>+0x0000FFF1 <B>——————<0x00000000>NZCV=0110如果两个操作数是有符号数,A是负数,B是正数,和是0,没有溢出,所以V=0.如果两个操作数是无符号数,和是0,有进位,所以C=1.<2>0x7FFFFFFF <A>+0x02345678 <B>——————<0x82345677>NZCV=1001如果两个操作数是有符号数,A是正数,B是正数,和是负数,有溢出,所以V=1. 如果两个操作数是无符号数,没有进位,所以C=0.<3>67654321 <A>+ 23110000 <B>——————<0x0568F421>NZCV=0000如果两个操作数是有符号数,A是正数,B是正数,和是正数,没有溢出,所以V=0. 如果两个操作数是无符号数,没有进位,所以C=0.第五章1、根底知识:〔1〕LPC2114可使用的外部晶振频率X围是多少〔使用/不使用PLL功能时〕?晶振频率X围:1~30 MHz,假如使用PLL 或ISP 功能为:10~25MHz.〔2〕描述一下LPC2210的PO.14、P1.20、P1.26、BOOT1和BOOT0引脚在芯片复位时分别有作用?并简单说明LPC2000系列ARM7微控制器的复位处理流程.P0.14 的低电平强制片内引导装载程序复位后控制器件的操作,即进入ISP 状态.P1.20 的低电平使 P1.25~P1.16 复位后用作跟踪端口.P1.26 的低电平使 P1.31~P1.26 复位后用作一个调试端口.当RESET 为低时,BOOT0 与BOOT1 一同控制引导和内部操作.引脚的内部上拉确保了引脚未连接时呈现高电平.外部复位输入:当该引脚为低电平时,器件复位,I/O口和外围功能进入默认状态,处理器从地址0 开始执行程序.复位信号是具有迟滞作用的TTL 电平.〔3〕LPC2000系列ARM7微控制器对向量表有何要求〔向量表中的保存字〕?向量表所有数据32 位累加和为零<0x00000000~0x0000001C 的8 个字的机器码累加>,才能脱机运行用户程序,这是LPC2114/2124/2212/2214 的特性.〔4〕如何启动LPC2000系列ARM7微控制器的ISP功能?相关电路应该如何设计?〔5〕LPC2000系列ARM7微控制器片内Flash是多位宽度的接口?它是通过哪个功能模块来提高Flash的访问速度?128位, 通过存储器加速模块〔MAM〕来提高Flash的访问速度〔6〕假如LPC2210的BANK0存储块使用32位总线,访问BANK0时,地址线A1、A0是否有效?EMC模块中的BLSO~BLS4具有功能?无效,< 如果存储器组配置成 16 位宽,如此不需要 A0;8 位宽的存储器组需要使用A0 .>;字节定位选择信号.〔7〕LPC2000系列ARM7微控制器具有引脚功能复用特性,那么如何设置某个引脚为指定功能?通过引脚功能选择存放器的设定来设置某个引脚为指定功能〔8〕设置引脚为GPIO功能时,如何控制某个引脚单独输入/输出?当前要知道某个引脚当前的输出状态时,是读取IOPIN存放器还是读取IOSET存放器?GPIO方向存放器,IOPIN.〔10〕使用SPI主模式时,SSEL引脚是否可以作为GPIO?假如不能,SSEL引脚应如何处理?不能用作GPIO,SSEL应设这高电平,处于末激活状态.〔11〕LPC2114具有几个UART是符合标准?哪一个UART可用作ISP通信?哪一个UART具有MODEM接口?UART0,UART1;UART0用于ISP通信,UART1具有MODEM接口.〔12〕LPC2114具有几个32位定时器?PWM定时器是否可以作通用定时器使用?两个32位定时器,PWM定时器不能用作通用定时器使用〔13〕LPC2000系列ARM7微控制器具有哪两种低耗模式?如何降低系统的功耗?2 个低功耗模式:空闲和掉电;2、计算PLL设置值:假设有一个基于LPC2114的系统,所使用的晶振为11.0592MHZ石英晶振.请计算出最大的系统时钟〔ccls〕频率为多少MHZ?此时PLL的M值和P值各为多少?请列出计算公式,并编写设置PLL的程序段.3、存储器重影射:〔1〕LPC2210具有〔 4 〕种存影射模式.①3 ②5 ③1 ④4〔2〕当程序已固化到片内Flash,向量表保存在0x00000000起始处,如此MAP〔1:0〕的值应该为〔 2 〕.①00 ②01 ③10 ④11〔3〕LPC2000系列APM7微控制器ccq重影射的目标起始地址为〔〕,共有〔〕个字.①0x00000000,8 ②0x40000000,8③0x00000000,16 ④0x7FFFE000,84、外部中断唤醒掉电设计:以下代码是初始化外部中断0,用它来唤醒掉电的LPC2114,请填空.PINSEL0=0x00000000;PINSELI = <PINSEL1&0XFFFFFFFC>|0X01; //设置I/O连接,PO.16设置为EINTO EXTMODE =0X00; //设置EINT0为电平触发模式EXTPOLAR=0X00; //设置EINT0为低电平触发EXTWAKE =0X01; //允许外部中断0唤醒掉电的CPUEXTINT=0x0F; //去除外部中断标识第四章程序清单4.1存放器相加;文件名:TESTI.S;功能:实现两个存放器相加;说明:使用ARMulate软件仿真调试AREA Examplel,CODE,READONLY ;声明代码段ExamplelENTRY ;标识程序入口CODE32 ;声明32位ARM指令START MOV R0,#0 ;设置参数MOV R1,#10LOOP BL ADD_SUB ;调用子程序ADD_SUBB LOOP ;跳转到LOOPADD_SUBADDS R0,R0,R1 ;R0=R0+R1MOV PC,LR ;子程序返回END ;文件完毕程序清单4.2 读取SMI立即数T_bit EQU 0X20SWI_HandlerSTMFD SP!,{R0_R3,R12,LR} ;现场保护MRS R0,SPSR ;读取SPSRSTMED SP!,{R0} ;保存SPSRTST R0,#T_bit ;测试T标志位LDRNEH R0,[LR,#_2] ;假如是Thumb指令,读取指令码〔16位〕BIE R0,R0,,#0xFF00 ;取得Thumb指令的8位立即数LDREQ R0,[LR,#_4] ;假如是ARM指令,读取指令码〔32位〕BICEQ R0,R0,#0Xff000000 ;取得ARM指令的24位立即数……LDMFD SP!,{ R0_R3,R12,PC};SWI异常中断返回程序清单4.3使用IRQ中断ENABLE_IRQMRS R0,CPSRBIC R0,R0,#0x80MSR CPSR_C,R0MOV PC,LR程序清单4.4禁能IRQ中断DISABLE_IRQMRS R0 CPSRORR R0,R0,#0x80MSR CPSR_C,R0MOV PC,LR程序清单4.5堆栈指令初始化INTSTACKWOV R0,LR ;保存返回地址;设置管理模式堆栈MSR CPSR_C,#0xD3LDR SP,stacksvc;设置中断模式堆栈MSR CPSR_C,#0xD2LDR SP,Stacklrq……程序清单4.6小X围地址的加载……ADR R0,DISP_TAB ;加载转换表地址LDRB R1,[R0,R2] ;使用R2作为参数,进展查表……DISP_TABDCB 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90 程序清单4.7中等X围地址的加载……ADR LR,RETURNIADRL R1,Thumb_sub+1BX R1RETURNI……CODE 16Thumb_subMOV R1,#10……程序清单4.8加载32位立即数……LDR R0,=IOPIN ;加载GPIO的存放器IOPIN的地址LDR R1,[R0] ;读取IOPIN存放器的值……LDR R0,=IOSETLDR R1,=0x00500500STR R1,[R0] ;IOSET=0x00500500……程序清单4.9软件延时……DELAYINOPNOPNOPSUBS R1,R1,#1BNE DELAYI……程序清单4.10 ARM到Thumb的状态切换;文件名:TEST8.S;功能:使用BX指令切换处理器状态;说明:使用ARMulate软件仿真调试AREA Example8,CODE,READONLYENTRYCODE32ARM_CODE ADR R0,THUMB_CODE+1BX R0 ;跳转并切换处理器状态 CODE16THUMB_CODEMOV R0,#10 ;R0=10MOV R1,#20 ;R1=20ADD R0,R1 ;R0=R0+R1BEND。
嵌入式Arm和Linux学习_第二章和第三章系统答案
2-6 根据要求编写Makefile文件。
五个文件分别是main.c、display1.h、display1.c、display2.h、display2.c,具体的代码如下:#include "stdio.h"int main(int argc,char **argv){display1 ("hello");display2("hello");}display1.hvoid display1 (char *print_str);display2.hvoid display2 (char *print_str);display1.c#include "display1.h"void display1(char *print_str){printf("This is display1 print %sn",print_str);}display2.c#include "display2.h"void display2 (char *print_str){printf("This is display2 print %sn",print_str);}(1)如果上述文件在同一个目录,请编写Makefile文件。
(2)如果按照下面的目录结构存放文件,请编写Makefile文件。
|---bin 存放生成的可执行文件|---obj 存放.o文件|---include 存放display1.h和display2.h文件|---src 存放main.c、display1.c、display2.c和Makefile(3)如果按照下面的目录结构存放文件,请编写Makefile文件。
|---bin 存放生成的可执行文件|---obj 存放.o文件|---include 存放display1.h和display2.h文件|---src 存放main.c和Makefile|---src/display1 存放display1.c和Makefile|---src/display2 存放display2.c和Makefilesrc下面的makefileSRC_DIR=.INC_DIR=../includeOBJ_DIR=../objBIN_DIR=../bininclude $(SRC_DIR)/test/makefileinclude $(SRC_DIR)/test1/makefiledisplay1下面的makefileall:$(OBJ_DIR)/display1.o $(OBJ_DIR)/display1.ogcc -o $(BIN_DIR)/display1 $^display2下面的makefile$(OBJ_DIR)/ display2.o:$(SRC_DIR)/ display2/display.cgcc -c $< -o $@3-1答:1.建立宿主机开发环境,包括操作系统及编译器等2.配置宿主机相关服务及软件,如minicom、网络等3.建立引导加载程序BootLoader4.移植内核kernel5.建立根文件系统root6.建立应用程序的Flash磁盘分区7.开发应用程序8.烧写内核、根文件系统和应用程序9.发布产品3-2答:Stage1:(1)硬件设备初始化。
ARM嵌入式技术原理与作用第二章答案
作业21.ARM7和ARM9各采用几级流水线?各采用什么样的存储器结构?ARM7处理器采用3级流水线的冯·诺伊曼结构;而ARM9采用5级流水线的哈佛结构。
2.ARM处理器支持的数据类型有哪些?ARM微处理器支持字节(8位)、半字(16位)、字(32位)3种数据类型,可以表示有符号数和无符号数3.ARM使用哪些工作状态和工作模式?工作状态:⏹ARM状态:32位,ARM状态执行字对齐的32位ARM指令⏹Thumb状态:16位,执行半字对齐的16位指令工作模式:●用户模式(USR):正常程序执行模式,不能直接切换到其他模式●系统模式(SYS):运行操作系统的特权任务,与用户模式类似,但具有可以直接切换到其他模式等特权●快中断模式(FIQ):支持高速数据传输及通道处理,FIQ异常响应时进入此模式●中断模式(IRQ):用于通用中断处理,IRQ异常响应时进入此模式●管理模式(SVC):操作系统保护模式,系统复位和软件中断响应时进入此模式(由系统调用执行软中断SWI命令触发)●中止模式(ABT):用于支持虚拟内存和/或存储器保护,在ARM7TDMI没有大用处●未定义模式(UND):支持硬件协处理器的软件仿真,未定义指令异常响应时进入此模式4.ARM使用的工作模式中,哪些是特权?哪些是异常模式?5.ARM微处理器共有37个寄存器,其中哪个寄存器用作PC?哪个用作SP?那个用作LR?R15用作PC,R13用作SP,R14用作LR6.CPSR各位的意义是什么?7.中断向量表位于存储器的什么位置?默认:0x0也可配置成:0xFFFF00008.IRQ或FIQ异常的返回指令是什么?PC=IR-49.什么类型的中断优先级最高?复位异常(Reset)10.什么指令可以放在中断向量表?跳转指令,给PC赋值的指令,B,LDR,MOV11.FIQ的什么特点使得它处理的速度比IRQ快?1)FIQ优先级比IRQ高,不会被中断2)FIQ有自己的专属寄存器:r8~r12,不用对通用寄存器入栈保护,可以加快速度3)FIQ位于异常向量表的末尾0x1c,故无需跳转,可以在这里直接放置异常处理函数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第2章ARM技术与ARM体系结构
1.简述ARM处理器内核调试结构原理
答:ARM处理器一般都带有嵌入式追踪宏单元ETM(Embedded Trace Macro),它是ARM 公司自己推出的调试工具。
ARM处理器都支持基于JTAG(Joint Test Action Group 联合测试行动小组)的调试方法。
它利用芯片内部的Embedded ICE来控制ARM内核操作,可完成单步调试和断点调试等操作。
当CPU处理单步执行完毕或到达断点处时,就可以在宿主机端查看处理器现场数据,但是它不能在CPU运行过程中对实时数据进行仿真。
ETM解决了上述问题,能够在CPU运行过程中实时扫描处理器的现场信息,并数据送往TAP(Test Access Port)控制器。
上图中分为三条扫描链(图中的粗实线),分别用来监视ARM 核,ETM,嵌入式ICE的状态。
1.分析ARM7TDMI-S各字母所代表的含义。
答:ARM7 T D M I – S 中
ARM是Advanced RISC Machines的缩写
7是系列号;
T:支持高密度16位的Thumb指令集;
D:支持JTAG片上调试;
M:支持用于长乘法操作(64位结果)ARM指令,包含快速乘法器;;
I:带有嵌入式追踪宏单元ETM,用来设置断点和观察点的调试硬件;
S:可综合版本,意味着处理器内核是以源代码形式提供的。
这种源代码形式又可以编译成一种易于EDA工具使用的形式。
2.ARM处理器的工作模式有哪几种,其中哪些为特权模式,哪些为异常模式,并指出处
理器在什么情况下进入相应的模式。
答:ARM技术的设计者将ARM处理器在应用中可能产生的状态进行了分类,并针对同一类型的异常状态设定了一个固定的入口点,当异常产生时,程序会自动跳转到对应异常入口处进行异常服务。
⏹1.用户模式:非特权模式,也就是正常程序执行的模式,大部分任务在这种模式下
执行。
在用户模式下,如果没异常发生,不允许应用程序自行改变处理器的工作模式,如果有异常发生,处理器不会自动切换工作模式
⏹2.FIQ模式:也称为快速中断模式,支持高速数据传输和通道处理,当一个高优先
级(fast)中断产生时将会进入这种模式。
⏹3.IRQ模式:也称为普通中断模式,:当一个低优先级(normal)中断产生时将会进入
这种模式。
在这模式下按中断的处理器方式又分为向量中断和非向量中断两种。
通常的中断处理都在IRQ模式下进行。
⏹4.SVC模式:称之为管理模式,它是一种操作系统保护模式。
当复位或软中断指令
执行时处理器将进入这种模式。
⏹5.中止模式:当存取异常时将会进入这种模式,用来处理存储器故障、实现虚拟存
储或存储保护。
⏹6.未定义指令异常模式:当执行未定义指令时会进入这种模式,主要是用来处理未
定义的指令陷阱,支持硬件协处理器的软件仿真,因为未定义指令多发生在对协处理器的操作上。
⏹7.系统模式:使用和User模式相同寄存器组的特权模式,用来运行特权级的操作
系统任务。
⏹在这7种工作模式中,除了用户模式以外,其他6种处理器模式可以称为特权模式,
在这些模式下,程序可以访问所有的系统资源,也可以任意地进行处理器模式的切换。
⏹在这6种特权模式中,除了系统模式外的其他5种特权模式又称为异常模式,每种
异常都对应有自己的异常处理入口点。
3.分析程序状态寄存器(PSR)各位的功能描述,并说明C,Z,N,V在什么情况下进行置位
和清零。
答:
⏹条件位:
⏹N = 1-结果为负, 0-结果为正或0
⏹Z = 1-结果为0, 0-结果不为0
⏹ C =1-进位,0-借位
⏹V =1-结果溢出,0结果没溢出
⏹Q 位:
⏹仅ARM 5TE/J架构支持
⏹指示增强型DSP指令是否溢出
⏹中断禁止位:
⏹I = 1: 禁止IRQ.
⏹ F = 1: 禁止FIQ.
⏹T Bit
⏹仅ARM xT架构支持
⏹T = 0: 处理器处于ARM 状态
⏹T = 1: 处理器处于Thumb 状态
⏹Mode位(处理器模式位):
⏹0b10000User
⏹0b10001FIQ
⏹0b10010IRQ
⏹0b10011Supervisor
⏹0b10111Abort
⏹0b11011Undefined
⏹0b11111System
4.简述ARM处理器异常处理和程序返回的过程。
答:只要正常的程序流被暂时中止,处理器就进入异常模式。
例如响应一个来自外设的中断。
在处理异常之前,ARM7TDMI内核保存当前的处理器状态,这样当处理程序结束时可以恢复执行原来的程序。
如果同时发生两个或更多异常,那么将按照固定的顺序来处理异常。
在异常发生后,ARM7TDMI内核会作以下工作:
1.在适当的LR中保存下一条指令的地址
2.将CPSR复制到适当的SPSR中;
3. 将CPSR模式位强制设置为与异常类型相对应的值;
4.强制PC从相关的异常向量处取指。
ARM7TDMI内核在中断异常时置位中断禁止标志,这样可以防止不受控制的异常嵌套。
注:异常总是在ARM状态中进行处理。
当处理器处于Thumb状态时发生了异常,在异常向量地址装入PC时,会自动切换到ARM状态。
当异常结束时,异常处理程序必须:
1.将LR中的值减去偏移量后存入PC,偏移量根据异常的类型而有所不同;
2.将SPSR的值复制回CPSR;
3.清零在入口置位的中断禁止标志。
注:恢复CPSR的动作会将T、F和I位自动恢复为异常发生前的值。
5.ARM处理器字数据的存储格式有哪两种?并指出这两种格式的区别。
答:ARM7TDMI处理器可以将存储器中的字以下列格式存储
▪大端格式(Big-endian)
▪小端格式(Little-endian)
▪小端存储器系统:
在小端格式中,高位数字存放在高位字节中。
因此存储器系统字节0连接到数据线7~0。
▪大端存储器系统:
在大端格式中,高位数字存放在低位字节中。
因此存储器系统字节0连接到数据线31~24。
6.分析带有存储器访问指令(LDR)的流水线运行情况,并用图示说明流水线的运行机制。
答:存储器访问指令LDR 流水线举例
取指的存储器访问和执行的数据路径占用都是不可同时共享的资源,对于多周期指令来说,如果指令复杂以至于不能在单个时钟周期内完成执行阶段,就会产生流水线阻塞。
对存储器的访问指令LDR是非单周期指令
LDR指令的执行,访问存储器,回写寄存器(占用了3个周期)。
造成了MOV指令的执行被阻断。
7.简述ARM9的5级流水线每一级所完成的功能和实现的操作。
答:ARM920在指令操作上采用5级流水线.
取指:从指令Cache中读取指令。
译码:对指令进行译码,识别出是对哪个寄存器进行操作并从通用寄存器中读取操作数。
执行:进行ALU运算和移位操作,如果是对存储器操作的指令,则在ALU中计算出要访问的存储器地址。
存储器访问:如果是对存储器访问的指令,用来实现数据缓冲功能(通过数据Cache)。
寄存器回写:将指令运算或操作结果写回到目标寄存器中。
8.什么叫流水线互锁?应如何来解决,举例说明。
答:互锁:当前指令的执行需要前面指令的执行结果,但前面的指令没有执行完毕,引起流水线的等待。
互锁发生时,硬件会停止指令的执行,直到数据准备好。
上边程序中ORR指令执行时需要使用LDR指令加载后的R4寄存器,因此造成了ORR指令的等待。
编译器以及汇编程序员可以通过重新设计代码的顺序或者其他办法来减少互锁的数量。