好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

周国运版ARM9题解.docx

10页
  • 卖家[上传人]:hs****ma
  • 文档编号:495264512
  • 上传时间:2023-05-31
  • 文档格式:DOCX
  • 文档大小:26.81KB
  • / 10 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • ARM9第三章习题解答第一章1 .嵌入式系统:“以应用为中心,以计算机技术为基础,软硬件可裁减,适用于应 用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统”2 .嵌入式系统与通用PC机的区别:1、通用计算机 沿着“高运算速度、高存储量” 方向发展,因此,通用微处理器是沿着以Intel公司产品为主导的8086、80286、80386、 80486、Pentium> Pentium II、Pentium III 、Pentium 4 的路线发展,其主频从几 MH改展到现在的3GHz字长从8位发展到64位,内存从几十KB到现在的GB存 储容量从从几十KB到现在的数百GB2、嵌入式系统 根据应用的要求,沿着“体积小、低功耗、高可靠”方向发展,对 运算速度、存储容量没有统一要求三要素:嵌入、专用、计算机3 .嵌入式系统有哪些部分组成:粗略划分:嵌入式处理器、外围设备、嵌入式操作 系统(可选)、嵌入式应用软件 稍细划分:嵌入式处理器、外围设备、驱动程序、嵌 入式操作系统、应用接口、嵌入式应用软件4 .嵌入式系统特点:①嵌入式系统是面向具体应用的产品②嵌入式系统软件、硬件 生命周期都比较长,有继承性③需要软硬件开发工具和系统软件④需要应用专家参 与开发⑤嵌入式系统分散而不可垄断。

      5 .嵌入式系统分类:按表现形式(硬件范畴):芯片级嵌入(含程序和算法的处理器、 单片机);模块级嵌入(系统中的某个核心模块);系统级嵌入(系统中的电路板) 按实时性要求(软件范畴):非实时系统(PDA ;软实时系统(消费类产品); 硬实时系统(导引头等工业和军工系统)6 .嵌入式微处理器(MPU :就是和通用计算机的处理器对应的 CPU可以认为是 “增强型”通用微处理器 嵌入式微控制器(MCU :就是将整个计算机系统的主要硬件集成到一块芯片中,芯片内部集成 ROM/EPROMRAM总线,总线逻辑、定时/ 计数器、Watchdog I/O、用行口、A/D等各种必要功能和外设嵌入式片上系统(SOC : 是追求产品系统最大包容的集成器件绝大多数系统构件都在一个系统芯片内部嵌入式可编程片上系统(SOPC :是用可编程逻辑技术把整个系统放到一块硅片上 嵌入式DSP是专门用于信号处理方面的处理器,在系统结构和指令算法方面进行了 特殊设计,具有很高的编译效率和指令执行速度弟■早1 .ARM是Advance RISC Machine的缩写,既可以认为是一个公司的名字,也可以 认为是对一类微处理器的通称,还可以认为是一种技术的名字。

      2 .在ARM9TDMI “9TDMI的含义:9:采用版本为9的ARMS处理器T:支持16为 压缩指令集Thumb称为T变种具D:支持片上Debug称为D变种M:内嵌硬件乘 法器Multiplier ,称为M变种I :嵌入式ICE,支持片上断点和调试,称为I变种3 .ARMM种工作状态:ARM犬态,处理器执行32位的字对齐的ARMtt令;Thumb犬 态:处理器执行16位的半字对齐的Thumb旨令7种工作模式:用户模式(usr)、 快速中断模式(巾q )、外部中断模式(irq )、管理模式(svc)、中止模式(abt)、 未定义模式(und)、系统模式(sys)特权模式:除usr之外的其它的六种工作 模式都是持权模式异常模式:除 usr和sys之外的其它的五种工作模式都是持权 模式4 .ARM箭存器分成哪几类?各类有哪些寄存器?寄存器 LR有什么用途?分两类:31个通用寄存器和6个状态寄存器6.ARM9异常响应过程(进入异常)执行哪些操作①保存返回地址、②保存当前状态寄存器 CPSR勺内容、③设置当前状态寄存器CPSR 中的相应位、④转去执行中断处理程序1、ARM指令中的第二操作数 “operand菊哪些具体形式?解:有三种:寄存器、寄存器移位、 8位位图立即数。

      2、对于 ARM的变址寻址方式,有基地址和偏移地址两部分组成 (1)基地址可以是哪些寄存器? ( 2)偏移地址可以有哪些形式? ( 3)总地址的计算方法有哪些? ( 4)变址寻址应用 于哪些指令?解:(1)基地址可以是通用寄存器 R0---R15中的任意一个2)偏移地址可以有三种形式: 12位立即数、寄存器、寄存器移位3)总地址的计算方法有三种:前变址(前索引) 、后变址(后索引)、自动变址 前变址偏移:即先使用偏移传送数据;不修改基地址如:LDR Rd, [Rn, #m]- 后变址偏移:即先传送数据;后使用偏移修改基地址如:STR Rd, [Rn] , #m- 自动变址:即先使用偏移传送数据;再用偏移修改基地址如:LDR Rd, [Rn, #m ]!(4)变址寻址有 4条指令: LDR、STR、LDM、STM3、编写程序,将存储器从 0x400000开始的200个字节的数据,传送到 0x400800开始的区域解: MOVLDRMOVLP LDRBSTRBSUBS BNER0, #0x400000R1 , =0x400800R7, #200R2 , [R0] , #1R2 , [R1] , #1R7 , R7 , #1 LPHEREB HERE3、编写程序,将存储器从 0x400000开始的200个字数据,传送到 0x400800开始的区域,并且将它们相加,将其和存放在最后面。

      解: MOVLDRMOVMOVMOVLP LDRSTRADDS ADCSUBSBNESTRR0, #0x400000R1 , =0x400800R7 , #200R3 , #0R4, #0R2 , [R0] , #4R2 , [R1] , #4R3, R3, R2R4 R4 #0R7 R7 #1LPR3 [R1] #4STRR4, [R1]HERE B HERE4、编写程序,比较存储器中 0x400000和0x400004两无符号字数据的大小,并且将比较结0,若前者大于后者其结果记为 1,若前者小于解:MOVR0,#0x400000LDRR1 ,[R0],#4LDRR2[R0],#4CMPR1R2MOVHIR1# 1MOVLOR1# -1MOVEQR1# 0果存于0x400008的字中,若两数相等其结果记为 后者其结果记为-1STR R1 , [R0]取第1个数取第2个数 两个数相比较R1大R1小两个数相等5、存储器从0x400000开始的100个单元中存放着字母转换成大写字母,对其它的 ASCII码不做变换ASCII码,编写程序,将其所有的小写解:MOVMOVLP LDRBCMPBLOCMPSUBLOSTRBLONEXTADDCMPBNER0, #0x400000R1 , #0R2, [R0,R1]R2, #0x61NEXTR2, #0x7BR2 R2 #0x20R2, [R0,R1]R1 R1 #1R1 #100LP;0x7A 为 zMOVR0,#0x400000MOVR7#100;控制循环父量MOVR1#0;存0的数目LPLDRR2[R0] , #4;取数CMPR2#0;比较为0ADDEQR1R1 #1;为0力口 1SUBSR7R7 #1;修改控制变量BNELPSTRR1[R0];保存0的数目6、编写一程序,查找存储器从 0x400000开始的100个字中为0的数目,将其结果存到0x400190 中。

      解:HEREB HERE7、编写一程序,存储器中从 0x400200开始有一个64位数1)将取反,再存回原处;(2)求其补码,存放到0x400208处解:LDRR0, =0x400200LDRR2, =0xFFFFFFFFLDRR1 , [R0];取低32位数EORR1 , R1,R2 ;取反STRR1 , [R0];存低32位反码ADDSR1 , R1,#1 ;又加1为求补STRR1 , [R0 ,#8] ;存低32位补码LDRR1 , [R0 ,#4] ;取高32位数EORR1 , R1,R2 ;取反STRR1 , [R0 ,#4] ;存高32位反码ADCR1 , R1,#0 ;高32位求补STRR1 , [R0 ,#12] ;存高32位补码1+2+ - +100 的运算R1中为累加和;R2控制循环8、编写一 ARM汇编程序段,实现 解:MOV R2, #100MOV R1 , #0LOOPADD R1 , R1, R2SUBS R2, R2, #1BNE LOOP4、相对偏移变址方式——以PC值为基地址,以偏移量为变地址(由编译器计算) ,PC值加偏移为访问地址做数据传送不修改基地址(PC)值。

      实际是以 PC值为基地址、立即数为变址的前变址方式格式:LDR/STR Rd, LABEL (标号)例如:STR R1 , LABEL1LDR R2 , LABEL2ARM9第四章习题解答11、编写一程序,用查询的方式,对 S3c2410X的A/D转换器的第0通道连续 进行100次A/D转换,然后将其结果求平均值设f pclk=50MHz注意:A/D转换 器有独立的模拟信号输入引脚 AIN0---AIN7 ) 解:(1)计算预分频值由于A/D转换器的最高输入时钟为2.5MHz,取为1MHz,则预分频值+1 = 50M/1M = 50所以 预分频值=49(2)程序如下:#define rADCCON (*(volatile unsigned *)0x58000000)#define rADCDAT0 (*(volatile unsigned *)0x5800000c)#define pref 49#define ch 0int adc(int chan) {rADCCON=(1<<14)|(pref<<6)|(ch<<3)[1 //设置预分频、通道、启动转换while(rADCCON&0x8000==0); //查询转换结束否return rADCDAT0&0x3ff; //读取并返回转换结果} main(void) { int i,val=0;for(i=0;i<100;i++)val + = adc(ch);val / = 100; }14、编写一程序,使用外部中断EINT0,用中断方式对端口 C做数据输入。

      注 意对中断系统和相关引脚进行初始化)提示:C语言指向特定。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.