嵌入式系统原理arm复习.docx

上传人:b****7 文档编号:8604276 上传时间:2023-02-01 格式:DOCX 页数:15 大小:154.42KB
下载 相关 举报
嵌入式系统原理arm复习.docx_第1页
第1页 / 共15页
嵌入式系统原理arm复习.docx_第2页
第2页 / 共15页
嵌入式系统原理arm复习.docx_第3页
第3页 / 共15页
嵌入式系统原理arm复习.docx_第4页
第4页 / 共15页
嵌入式系统原理arm复习.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

嵌入式系统原理arm复习.docx

《嵌入式系统原理arm复习.docx》由会员分享,可在线阅读,更多相关《嵌入式系统原理arm复习.docx(15页珍藏版)》请在冰豆网上搜索。

嵌入式系统原理arm复习.docx

嵌入式系统原理arm复习

注:

答案在答案处,请先对照复习提纲做完后再来对照答案

1嵌入式系统基础知识

1.1嵌入式的定义

1.1.1嵌入式系统是以为中心,以为基础,软硬件可裁剪,适应应用系统对、、

、、、等严格要求的专用计算机系统。

答案:

1.2三要素:

、、

1.3答案:

1.4软硬件组成:

1.4.1硬件:

由、组成

1.4.2软件:

包括和

2答案:

3ARM技术概述

3.1两套指令集(两种工作状态):

、,ARM上电时处於状态。

答案:

3.2ARM的基本数据类型:

、、

答案:

字、半字、字节

3.3存储器大/小端:

3.3.1大端模式(big-endian):

数据的字节存放在内存的地址

3.3.2小端模式(little-endian):

数据的字节存放在内存的地址

答案:

3.4流水线:

3.4.1假设某嵌入式处理器有3级流水线,每级流水线所耗时间均为为2ms,则执行25条指令需要耗费时间?

答案:

3.4.2影响流水线性能的因素:

3.4.2.1哪些指令能影响流水线?

 

答案:

3.5ARM920T工作模式

3.5.1除模式外,其余6种模式为权模式,除了

和模式外,其余5种模式为异常模式。

答案:

3.5.2arm有个寄存器,个通用寄存器,个状态寄存器(分别是),未分组寄存器包括,分组寄存器包括。

寄存器在ARM处理器中常用作堆栈指针,称为SP;

寄存器又被称为连接寄存器,称为LR;

寄存器被称为程序计数器,又称PC.

答案:

4ARM的指令系统

4.1根据使用的指令类型不同,指令的寻址方式分为

和。

答案:

4.2CPU指令所需要的操作数可以去哪些地方寻找呢?

4.2.1指令当中;

4.2.2存储单元中:

寄存器当中;内存单元当中

4.3ARM指令集可以分为6类:

4.3.1跳转指令(b\bx\bl\blx)

4.3.2数据处理指令:

4.3.2.1寻址方式;

4.3.2.2寻址方式;

4.3.2.3寻址方式。

答案:

4.3.3程序状态寄存器传输指令

4.3.4Load/Store指令(访问内存的如str和ldr,“!

”表示完成数据传输后要更新基址寄存器)

4.3.5协处理器指令

4.3.6异常中断产生指令。

5ARM汇编语言程序设计

5.1ARM标准APCS寄存器使用规则

5.1.1参数不超过4个时,可以使用寄存器来传递参数,当参数超过4个时,还可以使用来传递参数。

答案:

5.1.2结果为一个32位整数时,可以通过寄存器返回

答案:

5.1.3结果为一个64位整数时,可以通过寄存器R0和R1返回,依次类推。

5.1.4寄存器R13用于数据栈指针,记作SP。

寄存器SP在进入子程序时的值和退出子程序时的值必须相等。

5.1.5寄存器R14称为链接寄存器,记作LR。

它用于保存子程序的返回地址。

5.2寄存器R15是程序计数器,记作pc。

它不能用作其他用途。

5.2.1数据定义伪操作

5.2.1.1DCB

答案:

5.2.1.2DCW(DCWU)用于分配一片连续的半字存储单元并用指定的数据初始化

5.2.1.3DCD(DCDU)用于分配一片连续的字存储单元并用指定的数据初始化

5.2.1.4SPACE用于分配一片连续的存储单元

5.2.1.5MAP用于定义一个结构化的内存表首地址

5.2.1.6FIELD用于定义一个结构化的内存表的数据

5.2.2杂项伪操作

5.2.2.1AREA用于定义一个代码段或数据段。

5.2.2.2ENTRY用于指定程序入口点。

5.2.2.3END用于指示源程序结束。

5.2.2.4EQU用于定义字符名称。

5.2.2.5EXPORT(或GLOBAL)

答案:

5.2.2.6IMPORT

答案:

6GPIO

6.1S3C2410芯片上共有个多功能的输入/输出引脚,它们分为组I/O端口

1个23位的输出端口(端口A)

2个11位的输入/输出端口(端口B、H)

4个16位的输入/输出端口(端口C、D、E、G)

1个8位的输入/输出端口(端口F)

答案:

7串行通信接口(UART)

7.1发送数据的组成:

7.1.11位起始位,规定为;

7.1.25~8位数据位,即要传送的有效信息;

7.1.31位奇偶校验位;

7.1.41~2位停止位,规定为;

7.1.5空闲位持续为。

答案:

7.2S3C2410串行通信接口的结构

7.2.1主要由4部分构成:

、、

、。

7.2.1.1:

将总线上的数据通过TXDn引脚串行移出;

7.2.1.2:

将RXDn引脚上收到的数据送入数据总线;

7.2.1.3:

为数据的收发提供参考时钟信号;

7.2.1.4:

控制数据收发的速率,发送器、接收器的工作模式。

答案:

 

 

7.3波特率计算公式:

UBRDIVn = (int)(PLK/(bps × 16)) –1

7.3.1例:

UCLK或者PCLK等于40MHz,当波特率为115200时,UBRDIV0的值为:

 

 

答案:

8S3C2410时钟体系结构

8.1S3C2410的时钟控制逻辑给整个芯片提供4种时钟信号:

用于CPU内核;

用于AHB总线上的设备,如:

中断控制器、存储器控制器、LCD控制器、Nandflash、DMA控制器等;

用于APB总线上的设备,如:

UART、IIC、IIS、SPI、WATCHDOG、PWM定时器、ADC、GPIO、RTC等;

UCLK:

用于USB设备。

答案:

9ARM异常中断处理及编程

9.1S3C2410X的中断控制器可以接受多达个中断源的中断请求,其中有个一级中断。

答案:

9.2一级中断源通过就可以确定;

对于一级中断源的开中断,只需对清0;

对于一级中断源的中断清除,需要对要写1清0

答案:

INTOFFSET;INTMASK;INTPND、SRCPND

9.311个片上外围电路需要通过INTOFFSET和SUBSRCPND才可以确定;

20个外部二级可扩展的外部中断源需要通过INTOFFSET和EINTPEND确定;

对于二级中断源的开中断,需要对SUBMASK、INTMASK或EINTMASK、INTMASK清0;

对于二级中断源的中断清除,除了INTPND、SRCPND要写1清0外,SUBSRCPND和EINTPEND也需要写1清0。

9.4外部中断的使用方法:

9.4.1设置I/O管脚为EINTn功能(GPnCON)

9.4.2设置外部中断的触发方式(EXINTn)

9.4.3设置中断模式FIQ/IRQ(INTMOD)

9.4.4设置中断优先级(PRIORITY)

9.4.5清除外部中断悬挂指示寄存器(EINTPEND)

9.4.6清除中断源悬挂指示寄存器(SRCPND)

9.4.7清除中断悬挂指示寄存器(INTPND)

9.4.8打开外部中断(EINTMASK、INTMSK)

9.4.9判断产生的中断是哪个EINTn(INTOFFSET、EINTPEND)

9.4.10处理完毕后,清除中断指示寄存器(EINTPEND、SRCPND、INTPND)

10RTC(RealTimeClock)

10.1RTC功能与结构

10.1.1S3C2410RTC三大主要功能:

为系统提供、

产生(闹钟中断)、产生(滴答中断或节拍时间中断)。

答案:

10.1.2S3C2410RTC使用时钟信号源,振荡电路只需外接2个20P左右的小电容、32.768KHz的晶振即可。

答案:

自己的独立

10.2S3C2410的RTC主要有5部分构成:

、(时分秒年月日星期)、

、等部分。

如下图所示。

答案:

10.2.1RTC节拍时间用于中断请求,TICNT寄存器有一个中断使能位和一个相关的计数器值,当节拍中断发生时,计数器值到达0。

中断时长如下:

Period=(n+1)/128;

以秒作为单位,n为节拍时间计数值,范围为1~127。

10.3RTC三大功能使用编程方法:

10.3.1初始化中断控制器;

10.3.2清除悬挂指示寄存器(SRCPND、INTPND)

10.3.3去除对相应中断的屏蔽(INTMSK)

10.3.4使能节拍中断,设置节拍时间中断时长(TICNT);

10.3.5使能报警中断(RTCALM);

10.3.6使能RTC寄存器写操作(RTCCON),设置当前时间(BCDSEC-BCDYEAR),禁止RTC寄存器写操作(RTCCON);

10.3.7使能RTC寄存器写操作(RTCCON),设置报警时间(ALMSEC-ALMYEAR),禁止RTC寄存器写操作(RTCCON);

10.3.8中断发生后,判断中断类型(INTOFFSET),进行中断处理;

10.3.9处理完毕后,再次清除悬挂指示寄存器(SRCPND、INTPND),返回

11看门狗定时器

11.1看门狗增强系统稳定性原理

 

答案:

 

11.2看门狗定时器的结构与工作原理

11.2.1S3C2410看门狗的功能

11.2.1.1定时器功能:

可以作为常规定时器使用,它是一个十六位的定时器,并且可以产生中断,中断名为INT_WDT,中断号是0x09。

11.2.1.2复位功能:

作为看门狗定时器使用,当时钟计数减为0(超时)时,它将产生一个128个PCLK时钟周期的复位信号。

11.2.2S3C2410ARM9的看门狗主要由五部分构成:

、、、、。

答案:

11.3S3C2410看门狗定时时间

预分频器为8位,其值为:

0--255

再分频器可选择值为:

16、32、64、128

输入到计数器的时钟周期为:

T_wtd=1/[PCLK/(Prescaler+1)/Division_factor]

看门狗的定时周期为:

T=WTDAT×T_wtd

11.4例:

设PCLK为50MHz,则如何设置可使2410的看门狗定时器工作时钟频率约为10KHz?

在此时钟频率下让看门狗定时器定时半秒钟,又如何设置呢?

 

11.5S3C2410的看门狗控制器编程步骤

11.5.1初始化看门狗控制器

11.5.1.1时钟设置、输出类型设置:

给WTCON相应位赋值;

11.5.1.2计数器初始值设定:

给WTCNT相应位赋值;

11.5.1.3数据寄存器赋值:

给WTDAT相应位赋值;

11.5.2如果把看门狗作为一个普通的定时器使用,还必须把看门狗定时中断处理程序填入中断向量表中,并把相关的中断控制寄存器初始化;

11.5.3使能看门狗控制寄存器:

给WTCON相应位赋值

 

12PWM定时器

12.1构成

12.1.1S3C2410芯片内部拥有个16位的Timer部件

12.1.2具有脉宽调制(pwm)功能,具有PWM脉冲输出引脚;

12.1.3仅作定时器用,不具有PWM功能,没有输出引脚;

12.1.4有一个死区(deadzone)发生器。

答案:

12.2

12.2.1每个Timer部件所需的计数时钟信号均需系统提供的pclk时钟两次“变速”(预分频和再分频)所得。

12.2.2Timer0、Timer1共享一个8位的预分频器,共享一个4位的再分频器;

12.2.3Timer2、Timer3、Timer4共享另一个8位预分频器,共享另外一个4位的再分频器;

12.35个Time部件最核心的东西是一个

答案:

12.4请描述S3C2410PWMTimer的操作

 

答案:

13S3C2410启动代码分析

13.1安装中断向量表:

保证异常中断发生时能够正确执行中断处理程序;

13.2初始化硬件

13.2.1关闭看门狗:

防止处理器不断复位

13.2.2屏蔽所有中断:

避免在启动过程中意外触发中断

13.2.3初始化时钟和PLL:

为ARM920T内核及片内外设提供不同频率的时钟信号

13.2.4初始化存储系统:

使处理器能够正常读写外部存储设备

13.3初始化系统堆栈:

为处理器提供不同工作模式下相应的堆栈空间

13.4初始化应用程序执行环境:

完成重定位及ZI段数清零

13.5跳转至主函数:

执行用户程序

 

一、填空题

1.ARM的完整拼写形式为,ARM处理器内部正在执行的指令和正在预取的指令相差条指令。

2.ARM处理器的arm状态以外的状态的指令的长度为位。

3.ARM三种最基本的寻址方式中,最快寻址方式是。

4.异步串行通信数据格式的特点是一个字符一个字符的传输,并且传送一个字符时总是以起始位开始,以停止位结束,其中起始位的逻辑值为,停止位的逻辑值为,空闲位的逻辑值为。

5.S3C2410串口控制器中,串口0的波特率由寄存器设置,其值与时钟信号PCLK、波特率Baud的关系式。

6.S3C2410PWM定时器最核心的部件是,其初始值可以通过初始化编程设置。

7.当S3C2410看门狗的定时器溢出的时候,可能会产生两路输出

和。

8.S3C2410的RTC控制器的功能提供实时时间、、。

9.APCS中规定子程序间传递参数,参数个数少于等于4个时,使用寄存器;参数个数多于4个时,使用。

10.在ARM处理器中,寄存器间传送数据的指令是,寄存器和内存单元间传送数据的指令是,寄存器和状态寄存器间传送数据的指令是。

11.S3C2410是以ARM920T为处理器核的SOC,其芯片内部的总线可以分为、,其中,看门狗控制器所连的总线为。

12.伪操作import的作用是。

伪操作“ldrr0,=label”的含义是。

二、简答题

1、ARM在哪些工作模式下可以修改CPSR寄存器?

 

2、ARM处理器共有七种工作模式,哪些工作模式属于特权模式?

哪些工作模式属于异常模式?

 

3、ARM处理器有哪些异常中断?

每种异常中断的入口地址分别是什么?

 

4、4.S3C2410中断控制器相关特殊功能寄存器各有什么作用?

 

5、中断发生时,处理器硬件完成了哪些工作?

程序员需要完成那些工作?

 

6、查询方式使用串口时,由哪个寄存器判断发送器是否空闲以及接收器是否收到数据?

 

7、FCLK、PCLK、HCLK、UCLK分别为哪些部件提供工作时钟?

 

8、PWM定时器中断信号传递到内核涉及哪些寄存器的配置?

 

9、PWM定时器输出信号TOUTn的占空比受哪些寄存器值的影响?

 

10、S3C2410PWM定时器操作过程?

 

11、S3C2410定时器计数器和比较器,是由哪个寄存器实现重载?

以及重载的方法有哪些?

 

12、S3C2410RTC的特殊功能寄存器中,时间相关的寄存器如何设置才能表示:

13年05月21日,星期二,17时10分20秒?

 

13、S3C2410启动代码执行哪些操作步骤?

各操作步骤的功能是什么?

 

14、假设某嵌入式处理器有5级流水线,每级流水线所耗时间均为为0.2ms,则执行30条指令需要耗费时间是多久?

写出简要计算过程。

 

15、S3C2410串口的结构主要有哪几部分?

画出S3C2410串口的结构模块图,并简要描述各模块的功能。

 

16、简述看门狗定时器增强系统稳定性的原理。

 

17、编写一段c语言和汇编语言的混合程序,在c语言函数中实现字符串拷贝(不许用字符串操作相关函数),函数原型如下:

voidstrcpy(char*src,char*dest)//即src所指向的字符串复制到dest中

{

//自己编写字符串拷贝代码

}

 

然后,在汇编语言程序通过调用strcpy完成字符串src到dest的复制!

areainit,code,readonly

entry

……;此处需将汇编代码补充完整

blstrcpy

b.

src

dcb“Whereisawill,whereisaway!

”,0

dest

space50

end

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 判决书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1