文档库 最新最全的文档下载
当前位置:文档库 › ARM嵌入式体系结构与接口技术(Cortex-A9版)-习题答案

ARM嵌入式体系结构与接口技术(Cortex-A9版)-习题答案

ARM嵌入式体系结构与接口技术(Cortex-A9版)-习题答案
ARM嵌入式体系结构与接口技术(Cortex-A9版)-习题答案

第一章

1.简述ARM可以工作的几种模式。

答:ARMv7-A架构处理器共有8种工作模式,即用户模式(User)、快速中断模式(FIQ)、外部中断模式(IRQ)、特权模式(Supervisor)、数据访问中止模式(Abort)、未定义指令中止模式(Undef)、系统模式(System)、监控模式(Monitor)

2.ARM 核有多少个寄存器?

答:ARM处理器有40个32位长的寄存器

3.什么寄存器用于存储PC和LR寄存器?

答:R15和R14寄存器

4.R13通常用来存储什么?

答:R13通常用来存储堆栈指针

5.哪种模式使用的寄存器最少?

答:用户模式(User)和系统模式(System),因为这两种模式下没有SPSR寄存器6.CPSR 的哪一位反映了处理器的状态?

答:T位是处理器的状态控制位

第二章

1.熟悉 Eclipse 开发环境。

答:略,参照第2.3节

2.新建一个工程,编写一个汇编程序实现3+13=16的操作。

答:略,参照第2.6节

第三章

1.用 ARM 汇编实现下面列出的操作。

R0=15

R0=R1/16(有符号数)

R1=R2*3

R0=?R0

答:R0=15 -- MOV R0,#15

R0=R1/16 -- MOV R0,R1,ASR #4

BIC R0, R0, #0x78000000

R1=R2*3 -- MOV R3, #3

MUL R1,R2,R3

R0=?R0 -- MOV R1, #-1

MOV R2, R0

MUL R0,R1,R2

2.BIC 指令的作用是什么?

答:将一个寄存器中的某一位或者某几位清零

3.执行 SWI 指令时会发生什么情况?

答:执行SWI指令时ARM处理器会自动将CPSR拷贝到SVC模式下的SPSR,然后修改CPSR 寄存器的T位使处理器进入ARM状态,修改CPSR寄存器的低五位模式位使处理器进入SVC

模式,修改CPSR寄存器的I位禁止IRQ中断,保存当前SWI指令下一条指令的地址到SVC 模式下的LR寄存器,然后PC的值改为异常向量表中偏移地址为0x08的地址。

4.B、BL、BX 指令的区别有哪些?

答:B与BL都可以使程序跳转到指定的地址(label)处执行程序

B 跳转指令pc←label

BL 带返回的连接跳转 pc←label,同时将BL下一条指令地址保存到LR BX使程序跳转到指令中指定的地址执行程序,并将的第0位复制到CPSR 中T位,BX

BX 跳转并切换状态 pc←Rm&0xfffffffe,T←Rm[0]

5.下面哪个数据可以作为数据操作指令的有效立即数?

0x101 0x1f8 0xf000000f 0x08000012 0x104

答:0x1f8、0xf000000f、0x104

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

答:特权模式下才能修改CPSR寄存器,即快速中断模式(FIQ)、外部中断模式(IRQ)、特权模式(Supervisor)、数据访问中止模式(Abort)、未定义指令中止模式(Undef)、系统模式(System)、(Cortex-A系列)监控模式(Monitor)

7.写一个程序,如果 R0 的值大于 0x50,则将 R1 的值减去 0x10,并把结果送给 R0。

答:CMP R0, #0x50

SUBGT R0,R1,#0x10

8.编写一段 ARM 汇编程序,实现数据块复制,将 R0 指向的 8 个字的连续数据保存到 R1 指向的一段连续的内存单元中。

答:

LDMIA R0!,{R2-R9}

STMIA R1!,{R2-R9}

第四章

1.在 ARM 汇编中如何定义一个全局的数字变量?

答:使用.global伪操作

语法格式:.global 全局变量名并且被初始化为0

2.ADR 和 LDR 的用法有什么区别?

答:ADR 伪指令的功能是把标签所在的地址加载到寄存器中

LDR伪指令用于装载一个32位的常数或地址到寄存器中

3.AAPCS 中规定的 ARM 寄存器的使用规则是什么?

答:AAPCS 中定义了 ARM 寄存器使用规则如下。

(1)在进行子函数调用时,当子函数中有参数时,子程序间通过寄存器 R0、R1、

R2、R3 来传递参数,如果参数多于 4 个,则多出的部分用堆栈传递,被调用的子程序在返回前无须恢复寄存器 R0~R3 的内容。

(2)在子程序中,使用寄存器 R4~R11 来保存局部变量。如果在子程序中使用到了R4~R11 中的某些寄存器,子程序进入时必须保存这些寄存器的值,在返回前必须恢复这些寄存器的值;对于子程序中没有用到的寄存器则不必进行这些操作。在 Thumb 程序中,通常只能使用寄存器R4~R7 来保存局部变量。

(3)寄存器 R12 用作子程序间 scratch 寄存器(用于保存 SP,在函数返回时使用该寄存器出栈),记作 ip。在子程序间的连接代码段中常使用这种规则。

(4)寄存器 R13 用作数据栈指针,记作 sp,sp 中存放的是当前使用的栈的栈顶的地址。在子程序中寄存器 R13 不能用作其他用途。寄存器 sp 在进入子程序时的值和退出子程序时的值必须相等。

(5)寄存器 R14 称为连接寄存器,记作 lr。它用于保存子程序的返回地址。如果在子程序中保存了返回地址,寄存器 R14 则可以用作其他用途。

(6)寄存器 R15 是程序计数器,记作 pc。它不能用作其他用途。

4.什么是内联汇编?

答:在C代码中插入汇编语言的方法称为内联汇编。

5.汇编代码中如何调用 C 代码中定义的函数?

答:

(1)调用的C带有参数,需要使用R0~R3寄存器进行参数的传递,如果参数多于四个多出来的部分使用堆栈传递。

(2)调用C程序时,使用BL跳转指令,格式为: BL 函数名

(3)如果C程序带有返回值,使用寄存器R0传递。

第五章

1.什么是 GPIO?

答:GPIO 的英文全称为 General-Purpose IO ports,也就是通用 IO 接口。2.Exynos4412 有几组 GPIO 端口?

答:Exynos4412有37组GPIO端口

3.编程实现利用 Exynos4412 的 GPIO 控制 LED3 闪烁。

答:

.text @定义一个代码段

.global _start @定义一个全局的标号 _start

_start: @汇编的入口,相当于c的main函数

ldr r0, =0x11000c20 @配置引脚的功能,将GPX1CON寄存器的[3:0]这个位于设置为0x1

ldr r4, [r0]

bic r4, #0xf

orr r4, #0x1

str r4, [r0]

loop:

bl led_on @点亮LED3

bl delay @延时

bl led_off @熄灭LED3

bl delay @延时

b loop @相当于C程序中的while(1), 防止程序跑飞

led_on:

ldr r1, =0x11000c24 @配置GPX1_0引脚输出高电平

ldr r5, [r1]

orr r5, #0x1

str r5, [r1]

mov pc, lr

led_off:

ldr r1, =0x11000c24 @配置GPX1_0引脚输出低电平

ldr r5, [r1]

bic r5, #0x1

str r5, [r1]

mov pc, lr

delay: @延时函数

mov r7, #0x10000000

ms:

sub r7, #1

cmp r7, #0

moveq pc, lr

b ms

.end @代表汇编的结束

第六章

1.异常向量表位于存储器的什么位置?

答:存储器映射地址 0x00000000 是为向量表(一组 32 位字)保留的。也可通过设置CP15 的C12寄存器将异常向量表的首地址设置在任意地址

2.IRQ 或 FIQ 异常的返回指令是什么?

答;SUBS PC, LR, #4

3.什么类型的异常优先级最高?

答:RESET异常

4.什么指令可以放在中断向量表

答:跳转指令(B Lable)

LDR指令(LDR PC,Lable地址)

5.ARM 中断控制器有什么作用?

答:ARM 内核只有两个外部中断输入信号nFIQ和nIRQ。但对于一个系统来说,中断源可能多达几十个。为此,在系统集成时,一般都会有一个中断控制器来处理异常信号。这时候用户程序可能存在多个IRQ/FIQ的中断处理函数。为了使从向量表开始的跳转始终能找到正确的处理函数入口,需要设置处理机制和方法。不同的中断控制器处理方法不同。6.编程实现按键 K3 的中断检测,当按键按下时打印相应信息。

答:

#include "exynos_4412.h"

#include "uart.h"

/* 中断处理函数 */

void do_irq()

{

int irq_num;

/* 读中断号 */

irq_num = CPU0.ICCIAR & 0x3ff;

/* 判断是哪个中断发生了 */

switch (irq_num)

{

//case 57:

case 58:

//key3按下了

/* 清中断挂起位*/

EXT_INT41_PEND = 0x4;

printf("The KEY3 is pressed!!!\n");

break;

//case 59:

//case 60:

default:

break;

}

/* 把当前发生的中断的中断号写回到EOIR寄存器,表示对当前中断已经处理完成,可以响应下一个中断 */

CPU0.ICCEOIR = CPU0.ICCEOIR & (~(0x3ff << 0)) | irq_num;

}

void interrupt_init()

{

/* 1. 配置GPX1_2引脚作为中断功能 */

GPX1.CON = GPX1.CON & (~(0xf << 8)) | (0xf << 8);

/* 2. 设置中断的触发方式--下降沿触发 */

EXT_INT41_CON = EXT_INT41_CON & (~(0x7 << 8)) | (0x2 << 8);

/* 3. 打开GPIO控制器上的使能开关,让中断能到达GIC */

EXT_INT41_MASK = EXT_INT41_MASK & (~(0x1 << 2));

/*GIC*/

/* 4. 打开58号中断在GIC中对应的开关 */

ICDISER.ICDISER1 = ICDISER.ICDISER1 | (0x1 << 26);

/* 5. 把58号中断分发给CPU0来处理 */

ICDIPTR.ICDIPTR14 = ICDIPTR.ICDIPTR14 & (~(0xff << 16)) | (0x1 << 16);

/* 6. 打开分发使能的总开关,让58号中断能到达CPU接口 */

ICDDCR = ICDDCR | (0x1 << 0);

/* 7. 打开CPU接口到达所连接的处理器的总开关 */

CPU0.ICCICR = CPU0.ICCICR | (0x1 << 0);

/* 8. 设置优先级的门限,为了让所有中断都通过,把优先级设最低(值最大) */

CPU0.ICCPMR = CPU0.ICCPMR & (~(0xff << 0)) | (0xff << 0);

}

int main()

{

//初始化按键中断

interrupt_init();

//初始化串口

uart_init();

while(1);

return 0;

}

第七章

1.串行通信与并行通信的概念是什么?

答:串行通信是指计算机与 I/O 设备之间数据传输的各位是按顺序依次一位接一位进行传送。并行通信是指计算机与 I/O 设备之间通过多条传输线交换数据,数据的各位同时进行传送。

2.同步通信与异步通信的概念及区别是什么?

答:概念:

异步通信,是指数据传送以字符为单位,字符与字符间的传送是完全异步的,位与位之间的传送基本上是同步的。

同步通信,是指数据传送是以数据块(一组字符)为单位,字符与字符之间、字符内部的位与位之间都同步。

区别:

异步通信:

(1)以字符为单位传送信息。

(2)相邻两字符间的间隔是任意长。

(3)因为一个字符中的波特位长度有限,所以需要的接收时钟和发送时钟只要相近就可以。

(4)异步方式特点就是:字符间异步,字符内部各位同步。

同步通信:

(1)以数据块为单位传送信息。

(2)在一个数据块(信息帧)内,字符与字符间无间隔。

(3)因为一次传输的数据块中包含的数据较多,所以接收时钟与发送时钟严格同步,通常要有同步时钟。

3.RS-232C 串口通信接口规范是什么?

答:略,参照本书7.1.7节

4.在 Exynos4412 串口控制器中,哪个寄存器用来设置串口波特率?

答:UBRDIVn和UFRACVALn

第八章

1.PWM 输出波形的特点是什么?

答:若令频率不变,直接改变脉冲的宽度,亦即控制开关元件的导通时间;比如现在是高电平导通,那么高电平时间越长,低电平时间越短,导通时间就长;否则就越短。2.编程实现输出占空比为 2︰1、波形周期为 9ms 的 PWM 波形。

答:

#include "exynos_4412.h"

int main()

{

/* 1. 配置GPD0_0引脚作为PWM的输出功能 */

GPD0.CON = GPD0.CON & (~(0xf << 0)) | (0x2 << 0);

/* 2. 设置一级分频系数和二级分频系数 ,周期为1us */

PWM.TCFG0 = PWM.TCFG0 & (~(0xff << 0)) | (99 << 0);

PWM.TCFG1 = PWM.TCFG1 & (~(0xf << 0));

/* 3. 设置PWM输出脉冲的周期和占空比 */

PWM.TCNTB0 = 9000;

PWM.TCMPB0 = 3000;

/* 4. 打开手动更新,更新TCNTB的值到递减计数器 */

PWM.TCON = PWM.TCON | (1 << 1);

/* 5. 关闭手动更新,打开自动重装载功能 */

PWM.TCON = PWM.TCON | (1 << 3);

/* 6.将手动装载关闭*/

PWM.TCON = PWM.TCON & (~(1 << 1));

/* 7. 开启PWM */

PWM.TCON |= (0x1<<0);

while(1);

return 0;

}

第九章

1.在控制系统中为何要加入看门狗功能?

答:检测程序的正常运行,当程序跑死后,看门狗产生一个强制系统复位。这样可以使程序重新运行,减小程序跑死的危害。

2.编程实现看门狗定时器作为普通 16 为定时器功能,定时 1s 循环打印信息。

#include "exynos_4412.h"

/* 中断处理函数 */

void do_irq()

{

int irq_num;

/* 读中断号 */

irq_num = CPU0.ICCIAR & (0x3ff << 0);

/* 判断是哪个中断发生了 */

switch (irq_num)

{

case 75: //1S定时时间到

/* 清中断 */

WDT.WTCLRINT = 1;

ICDICPR.ICDICPR2 = ICDICPR.ICDICPR2 | (0x1 << 11);

printf("The WDT_Timer 1S!\n");

break;

default:

break;

}

/* 把当前发生的中断的中断号写回到EOIR寄存器,表示对当前中断已经处理完成,可以响应下一个中断 */

CPU0.ICCEOIR = CPU0.ICCEOIR & (~(0x3ff << 0)) | irq_num;

}

void interrupt_init()

{

/*GIC*/

/* 1. 打开75号中断在GIC中对应的开关 */

ICDISER.ICDISER2 = ICDISER.ICDISER2 | (0x1 << 11);

/* 2. 把75号中断分发给CPU0来处理 */

ICDIPTR.ICDIPTR18 = ICDIPTR.ICDIPTR18 & (~(0xff << 24)) | (0x1 << 24);

/* 3. 打开分发使能的总开关,让75号中断能到达CPU接口 */

ICDDCR = ICDDCR | (0x1 << 0);

/* 4. 打开CPU接口到达所连接的处理器的总开关 */

CPU0.ICCICR = CPU0.ICCICR | (0x1 << 0);

/* 5. 设置优先级的门限,为了让所有中断都通过,把优先级设最低(值最大) */

CPU0.ICCPMR = CPU0.ICCPMR & (~(0xff << 0)) | (0xff << 0);

}

void wdt_init(void)

{

/*1.设置一级预分频值 = 100000000 / (249 + 1) = 400000HZ*/

WDT.WTCON = WDT.WTCON | (249 << 8);

/*2.设置二级预分频值 = 400000 / 128 = 3125HZ*/

WDT.WTCON = WDT.WTCON | (0x3 << 3);

/*3.禁止看门狗定时器复位功能*/

WDT.WTCON = WDT.WTCON & (~0x1);

/*4.使能看门狗定时器能够中断信号*/

WDT.WTCON = WDT.WTCON | (0x1 << 2);

/*5.给递减计数器赋初值喂狗*/

WDT.WTDAT = 3125;

WDT.WTCNT = 3125;

/*6.打开看门狗定时器*/

WDT.WTCON = WDT.WTCON | (1 << 5);

}

void main(void)

{

wdt_init();

interrupt_init();

while(1)

{

}

}

3.编程实现 1s 内不对看门狗实现喂狗操作,看门狗会自动复位。

答:

#include "exynos_4412.h"

void main(void)

{

unsigned int i = 0;

/*1.设置一级预分频值 = 100000000 / (249 + 1) = 400000HZ*/ WDT.WTCON = WDT.WTCON | (249 << 8);

/*2.设置二级预分频值 = 400000 / 128 = 3125HZ*/

WDT.WTCON = WDT.WTCON | (0x3 << 3);

/*3.使能看门狗定时器能够产生复位信号*/

WDT.WTCON = WDT.WTCON | 1;

/*4.给递减计数器赋初值喂狗*/

WDT.WTCNT = 3125;

/*5.打开看门狗定时器*/

WDT.WTCON = WDT.WTCON | (1 << 5);

while(1)

{

/*1s 内不对看门狗实现喂狗操作,看门狗会自动复位*/ }

}

第十章

1.编程实现 RTC 的定时中断功能。

答:

#include "exynos_4412.h"

/* 中断处理函数 */

void do_irq()

{

int irq_num;

/* 读中断号 */

irq_num = CPU0.ICCIAR & (0x3ff << 0);

/* 判断是哪个中断发生了 */

switch (irq_num)

{

case 77: //1S定时时间到

/* 清中断 */

RTCINTP = RTCINTP | 0x1;

ICDICPR.ICDICPR2 = ICDICPR.ICDICPR2 | (0x1 << 13);

printf("The RTC-TIC INT!\n");

break;

default:

break;

}

/* 把当前发生的中断的中断号写回到EOIR寄存器,表示对当前中断已经处理完成,可以响应下一个中断 */

CPU0.ICCEOIR = CPU0.ICCEOIR & (~(0x3ff << 0)) | irq_num;

}

void interrupt_init()

{

/*GIC*/

/* 1. 打开77号中断在GIC中对应的开关 */

ICDISER.ICDISER2 = ICDISER.ICDISER2 | (0x1 << 13);

/* 2. 把77号中断分发给CPU0来处理 */

ICDIPTR.ICDIPTR19 = ICDIPTR.ICDIPTR19 & (~(0xff << 8)) | (0x1 << 8);

/* 3. 打开分发使能的总开关,让75号中断能到达CPU接口 */

ICDDCR = ICDDCR | (0x1 << 0);

/* 4. 打开CPU接口到达所连接的处理器的总开关 */

CPU0.ICCICR = CPU0.ICCICR | (0x1 << 0);

/* 5. 设置优先级的门限,为了让所有中断都通过,把优先级设最低(值最大) */

CPU0.ICCPMR = CPU0.ICCPMR & (~(0xff << 0)) | (0xff << 0);

}

int main()

{

interrupt_init();

RTCCON |= 0x1 << 8;

TICCNT = 32768;

while (1)

{

}

return 0;

}

2.编程实现 RTC 定时器系统定时器功能。

#include "exynos_4412.h"

/* 中断处理函数 */

void do_irq()

{

int irq_num;

/* 读中断号 */

irq_num = CPU0.ICCIAR & (0x3ff << 0);

/* 判断是哪个中断发生了 */

switch (irq_num)

{

case 76: //定时时间到

/* 清中断 */

RTCINTP = RTCINTP | 0x2;

ICDICPR.ICDICPR2 = ICDICPR.ICDICPR2 | (0x1 << 12);

printf("The RTC-timer INT!\n");

break;

default:

break;

}

/* 把当前发生的中断的中断号写回到EOIR寄存器,表示对当前中断已经处理完成,可以响应下一个中断 */

CPU0.ICCEOIR = CPU0.ICCEOIR & (~(0x3ff << 0)) | irq_num;

}

void interrupt_init()

{

/*GIC*/

/* 1. 打开76号中断在GIC中对应的开关 */

ICDISER.ICDISER2 = ICDISER.ICDISER2 | (0x1 << 12);

/* 2. 把76号中断分发给CPU0来处理 */

ICDIPTR.ICDIPTR19 = ICDIPTR.ICDIPTR19 & (~(0xff << 0)) | (0x1 << 0);

/* 3. 打开分发使能的总开关,让75号中断能到达CPU接口 */

ICDDCR = ICDDCR | (0x1 << 0);

/* 4. 打开CPU接口到达所连接的处理器的总开关 */

CPU0.ICCICR = CPU0.ICCICR | (0x1 << 0);

/* 5. 设置优先级的门限,为了让所有中断都通过,把优先级设最低(值最大) */

CPU0.ICCPMR = CPU0.ICCPMR & (~(0xff << 0)) | (0xff << 0);

}

void RTC_init()

{

RTCCON = 0x1; // 使能RTC控制

RTC.BCDSEC = 0x11;

RTC.BCDMIN = 0x19;

RTC.BCDHOUR = 0x16;

RTC.BCDDAY = 0x23;

RTC.BCDWEEK = 0x04;

RTC.BCDMON = 0x02;

RTC.BCDYEAR = 0x17;

RTCCON = 0x0; // 禁止RTC控制

}

void rtc_alarm_init()

{

//设置xx:xx:20产生一次闹钟

RTCALM.ALM = 1;

RTCALM.SEC = 0x20;

RTCALM.ALM |= 1<<6;// 使能闹钟

}

int main()

{

int old_sec;

RTC_init();

interrupt_init();

rtc_alarm_init();

old_sec = RTC.BCDSEC;

while (1)

{

if (old_sec != RTC.BCDSEC)

{

printf("20%x-%x-%x 星期:%x\n", RTC.BCDYEAR, RTC.BCDMON, RTC.BCDDAY, RTC.BCDWEEK);

printf("%x:%x:%x\n", RTC.BCDHOUR, RTC.BCDMIN, RTC.BCDSEC);

old_sec = RTC.BCDSEC;

}

}

return 0;

}

第十一章

1.A/D 转换器选型时需要考虑哪些指标?

答:分辨率、转换速率、量化误差、偏移误差、满刻度误差、线性度等。

2.根据 A/D 的基本原理,可以将 A/D 控制器分为哪些种类?

答:积分型A/D转换器、逐次逼近性A/D、并行比较/串行比较A/D、电容阵列逐次比较型、压频变换型。

3.在 PCLK为50MHz 的情况,如何设置Exynos4412的 A/D 控制器来实现采集速度为100Ksps?

答:ADCCON = ADCCON & (~(0xff << 6)) | (99 << 6);

4.编程实现采集一个范围在 0~3.3V 的电压的测试程序。

答:因为该处理器能够测量电压的范围为0-1.8V,所以这里可以使用两个相同的电阻对测量电压进行分压,然后测量两个电阻的中间节点的电压,即0-1.65V,将测量出来的电压,在程序中乘以2就是实际测量的电压,程序如下:

#include "exynos_4412.h"

#include "uart.h"

//编写延时函数

void Delay_Ms(unsigned int ms)

{

unsigned int i,j;

for (i = 0;i < ms;i++)

for(j = 0;j < 2500;j++);

}

//初始化ADC

void ADC_Init(void)

{

//设置ADC通道为AIN3

ADCMUX = ADCMUX & (~0xf) | 0x3;

//设置ADC分辨率12位

ADCCON |= 1 << 16;

//使能预分频器

ADCCON |= 1 << 14;

//设置预分频值, A/D转换时钟频率 = PCLK / (N + 1)

ADCCON = ADCCON & (~(0xff << 6)) | (99 << 6);

//设置ADC位工作模式

ADCCON &= ~(1 << 2);

//设置A/D开始转化的触发方式

ADCCON &= ~(1 << 1);

}

//读取模拟电压值

unsigned int Read_AD_Value(void)

{

unsigned int AD_value;

//开启AD转换

ADCCON |= 0x1;

//判断AD转换是否结束

while(!(ADCCON & (1 << 15)));

//读取AD转换后的结果

AD_value = ADCDAT & 0xfff;

//将AD值转换成实际的电压值: Voltage(Mv) = AD_value * 1800 / 4096 AD_value = AD_value * 0.44;

return AD_value;

}

void main()

{

uart_init();

ADC_Init();

while(1)

{

unsigned int Valtage_Value;

//获取电压值

Valtage_Value = Read_AD_Value() * 2;

printf("Valtage = %dMv\n",Valtage_Value);

Delay_Ms(1000);

}

}

第十二章

1.请解释一下I2C总线的时序图。

答:

主机发送起始信号启用总线

主机发送一字节数据指明从机地址与下一字节传送方向

对应的从机应答

发送器发送一字节数据

接收方应答

… …

数据传送完成后,主机发送停止信号释放总线使用权

2.根据 MPU6050 芯片手册,编写实现连续读时序和连续写时序。

答:略

3.请讲讲 I2C 总线的特点和缺点。

答:

特点:

布线简单:一条串行数据线 SDA、一条串行时钟线 SCL。

每个连接到总线的器件都可以通过唯一的地址。

真正的多主机总线,支持冲突检测和仲裁,防止数据被破坏。

串行的 8 位双向数据传输位。

速率在标准模式下可达 100Kbit/s、快速模式下可达 400Kbit/s、高速模式下可达

3.4Mbit/s。

片上的滤波器可以滤去总线数据线上的毛刺波保证数据完整。

连接到相同总线的 IC 数量只受到总线的最大电容 400pF 限制。

缺点:半双工、传输速度低

第十三章

1.SPI总线和I2C 总线的区别是什么?

答:

从名称上:

SPI(Serial Peripheral Interface:串行外设接口);

I2C(INTER IC BUS:意为IC之间总线)

从硬件连接上:

SPI总线是四线制(MISO,MOSI,CLK,CS)如果主机和从机是一对一的可以省略CS片选线

IIC总线是两线制(SDA,CLK)

从通信方式上:

I2C是半双工,SPI是全双工

从传输速度上:

SPI的传输速度(8Mbit/s)高于IIC的传输速度(最快3.4Mbit/s)

2.编写 MCP2515 配置为回环模式,实现数据的自发自收程序。

spi.c文件:

#include "exynos_4412.h"

#include "uart.h"

void do_irq(){}

//编写延时函数

void Delay_Ms(unsigned int ms)

{

unsigned int i,j;

for(i = 0;i < ms;i++)

for(j = 0;j < 2100;j++);

}

//初始化GPIO控制器为SPI功能

//初始化SPI控制器

void SPI_Init()

{

//1.设置GPC1引脚为SPI功能模式

GPC1.CON = (GPC1.CON & (~0xffff0)) | 0x55550;

//2.配置SPI时钟

//6.0x6: 0x0110 = SCLKMPLL_USER_T 800M

CLK_SRC_PERIL1 = (CLK_SRC_PERIL1 & ~(0xf << 24)) | 0x6 << 24;

CLK_DIV_PERIL2 = 19 << 8 | 3; //SPI_CLK = 800 / (19 + 1) / (3 + 1) //3.软件复位4412的SPI控制器

Software_Reset();

//4.设置控制寄存器CF_CFG 设置为:主模式,极性CPOL=0,相位CPOA=0,接收/发送使能位禁止

SPI2.CH_CFG &= ~((0x1 << 4) | (0x1 << 3) | (0x1 << 1) | (0x3 << 0));

//5.设置模式配置寄存器MODE_CFG

SPI2.MODE_CFG &= ~((0x3 << 17) | (0x3 << 29));

//6.选择手动选择芯片

SPI2.CS_REG &= ~(0x1 << 1);

Delay(10);

}

void main()

{

unsigned char data = 0;

//初始化串口

uart_init();

SPI_Init();

printf("\n##########SPI TEST!##########\n");

while(1)

{

Reset_MCP2515();

Delay_Ms(10);

Bit_Modify_MCP2515(0x0f,0xe0,0x40);

}

}

Mcp2515.c文件:

#include "exynos_4412.h"

//延时函数

void Delay(unsigned int time)

{

unsigned int i,j;

for(i = 0;i < time;i++)

for(j = 0;j < 1000;j++);

}

/*

* 片选从机

*/

void Slave_Enable(void)

{

SPI2.CS_REG &= ~(0x1 << 0);

// Delay(3);

}

/*

* 取消片选从机

*/

void Slave_Disable(void)

{

SPI2.CS_REG |= 0x1;

// Delay(2);

}

/*

* 功能:向SPI总线上发送一个字节

* 返回值:无

* 参数:data 要发送的数据

*/

void Send_Byte(unsigned char data)

{

SPI2.CH_CFG |= 0x1; //使能 Tx通道

Delay(1);

SPI2.SPI_TX_DATA = data;

while(!(SPI2.SPI_STATUS & (0x1 << 25)));

SPI2.CH_CFG &= ~0x1; //禁止Rx通道

}

/*

* 功能:从SPI总线上读取一个字节

* 返回值:data, 从总线上读取的数据

* 参数:无

*/

unsigned char Recv_Byte(void)

{

unsigned char data;

SPI2.CH_CFG |= 0x1 << 1; //使能 Rx通道

Delay(1);

data = SPI2.SPI_RX_DATA;

Delay(1);

SPI2.CH_CFG &= ~(0x1 << 1);

return data;

}

/*

* 功能:复位4412的SPI控制器

* 返回值:无

* 参数:无

*/

void Software_Reset(void)

{

SPI2.CH_CFG |= 0x1 << 5;

Delay(1); //延时

SPI2.CH_CFG &= ~(0x1 << 5);

}

/*

* 功能mcp2515芯片复位指令,可以重新初始化MCP2515的内部寄存器,并设置配置模式

* 参数:无

* 返回值:无

*/

void Reset_MCP2515(void)

{

Software_Reset();

Slave_Enable();

Send_Byte(0xC0);

Slave_Disable();

}

/*

* 功能:请求发送命令

* 参数:无

* 返回值:无

*/

void Send_Req_MCP2515(void)

{

Software_Reset();

Slave_Enable();

Send_Byte(0x81);

Slave_Disable();

}

/*

* 功能:只修改寄存器中的某些位

* 返回值:无

* 参数:addr:寄存器地址;mask:屏蔽字为1时可以对当前位修改;dat:数据字节

*/

void Bit_Modify_MCP2515(unsigned char addr,unsigned char mask,unsigned char dat)

{

Slave_Enable();

Send_Byte(0x05);

Send_Byte(addr);

Send_Byte(mask);

Send_Byte(dat);

Slave_Disable();

}

/*

* 功能:从指定地址起始的寄存器中读取数据

* 返回值:从寄存器中读取的数据

* 参数:要读取寄存器的地址

*/

unsigned char Read_Byte_MCP2515(unsigned char addr)

{

unsigned char data;

Slave_Enable();

Send_Byte(0x03);

Send_Byte(addr);

data = Recv_Byte();

Slave_Disable();

return data;

}

/*

* 功能:向指定地址起始的寄存器中写入数据

* 返回值:无

* 参数:要写入寄存器的地址,要写入的数据

*/

void Write_Byte_MCP2515(unsigned char addr,unsigned char dat) {

Slave_Enable();

Send_Byte(0x02);

Send_Byte(addr);

Send_Byte(dat);

Slave_Disable();

}

嵌入式习题答案

嵌入式习题答案Last revision on 21 December 2020

第一章习题答案 1.什么是嵌入式系统请列举几个常见的嵌入式系统。 答:根据国际电气和电子工程师协会(IEEE)的定义,嵌入式系统是控制、监视或者辅助设备、机器和生产线运行的装置(Devices used to control, monitor, or assist the operation of equipment, machinery or plants)。这主要是从产品的应用角度加以定义的,由此可以看出嵌入式系统是软件和硬件的综合体,可以涵盖机械等附属装置。 目前被我国科学家普遍认同的定义是:嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁减,对功能、可靠性、成本、体积、功耗要求严格的专用计算机系统。 常见的嵌入式系统:手机,DVD,路由器,核磁共振仪,全自动洗衣机。 2.嵌入式系统与通用计算机有哪些区别 答:(1) 以应用为中心;(2) 以计算机技术为基础(3) 软件和硬件可裁减(4) 对系统性能要求严格(5)软件的固件化(6)需要专用的开发工具 3.嵌入式系统的发展分为哪几个阶段 答:第一阶段:无操作系统的嵌入算法阶段。第二阶段:以嵌入式CPU为基础,以简单操作系统为核心的嵌入式系统。第三阶段:以嵌入式操作系统为标志的嵌入式系统。第四阶段:以基于Internet为标志的嵌入式系统。 4.请列举嵌入式系统的主要应用领域。 答:(1)工业控制领域(2)交通运输领域(3)消费电子产品(4)家电领域(5)通信领域(6)商业和金融领域(7)环境监测领域(8)医疗领域(9)建筑领域(10)军事国防领域(11)航天航空领域

嵌入式系统设计题库

一、单项选择题 1、在CPU和物理内存之间进行地址转换时,(B )将地址从虚拟(逻辑)地址空间映射到物理地址空间。 A.TCB B.MMU C.CACHE D.DMA 2、进程有三种状态:(C )。 A.准备态、执行态和退出态B.精确态、模糊态和随机态 C.运行态、就绪态和等待态D.手工态、自动态和自由态 3、以下叙述中正确的是(C )。 A.宿主机与目标机之间只需要建立逻辑连接即可 B.在嵌入式系统中,调试器与被调试程序一般位于同一台机器上 C.在嵌入式系统开发中,通常采用的是交叉编译器 D.宿主机与目标机之间的通信方式只有串口和并口两种 4、中断向量是指(C )。 A.中断断点的地址B.中断向量表起始地址 C.中断处理程序入口地址D.中断返回地址 5、在微型计算机中,采用中断方式的优点之一是(C )。 A.简单且容易实现B.CPU可以不工作 C.可实时响应突发事件D.传送速度最快 6、在ARM处理器中,(A )寄存器包括全局的中断禁止位,控制中断禁止位就可以打开或者关闭中断。 A.CPSR B.SPSR C.PC D.IR 7、嵌入式系统的三要素下面哪一个不是:(B )。 A、嵌入 B、存储器 C、专用 D、计算机 8、若R1=2000H,(2000H)=0x28,(2008H)=0x87,则执行指令LDR R0,[R1,#8]!后R0的值为()。 A、0x2000 B、0x28 C、0x2008 D、0x87 9、μCOS-II操作系统属于(B )。 A、顺序执行系统 B、占先式实时操作系统 C、非占先式实时操作系统 D、分时操作系统 10、ARM寄存器组有( C )个状态寄存器。 A、7 B、32 C、6 D、37 11、C++源程序文件的默认扩展名为(A )。 A、cpp B、exe C、obj D、lik 12、与十进制数254等值的二进制数是(A )。 A、B、 C、D、

嵌入式复习思考题(1)答案

嵌入式复习思考题及答案(1) 一、简答题 1、ARM9有哪几种工作模式?其中哪几种属于特权模式?哪几种属于几种异常模式? 答:有用户、系统、管理、中止、未定义、普通中断、快速中断。系统、管理、中止、未定义、普通中断、快速中断属于特权模式。管理、中止、未定义、普通中断、快速中断属于几种异常模式。 2、ARM9有哪2种工作状态?各自特点?实现状态切换指令的是什么? 答:ARM状态与Thumb状态。ARM状态指令是32位;Thumb状态指令是16位。切换指令是BX。 3、简述ARM9在不同工作模式下寄存器分布情况(用图表说明)。R13、R1 4、R15的固定用途;CPRS和SPRS名称及功能。 答:R13常作为堆栈指针SP、R14作为链接寄存器LR、R15作为程序计数器PC。CPRS是当前程序状态寄存器,包含条件代码、中断禁止位、当前处理器模式以及其他状态和控制信息。SPRS是程序状态保存寄存器,异常出现时用于保存CPRS的状态。 4 5 答:响应过程:1、将引起异常指令的下一条指令的地址保存到新的异常工作模式的R14中; 2、将CPSR的内容保存到将要执行的异常中断对应的SPSR中; 3、根据异常类型CPSR中的运行模式位; 4、将相应的矢量地址赋值给PC,开始执行异常处理程序。还可设中断禁止位。 返回过程: 1、将连接寄存器LR的值减去相应的偏移量后送到PC中; 2、将SPSR内容送回CPSR; 3、若在进入异常处理时设置了中断禁止位,要在此清除。 6、写出ARM9支持的寻址方式,各举一例。 答:略 7、写出指令LDRB/LDRH/LDR的区别。 答:LDRB将内存单元一个字节的数据扩展到32位装载到寄存器; LDRH将内存单元半字(两个字节)的数据扩展到32位装载到寄存器; LDR 将内存单元一个字的数据装载到寄存器。 8、写出LDM、STM指令用于数据块拷贝时对应的4种后缀以及用于堆栈操作对应的4种后缀。 解释各自的执行过程。 答:数据块拷贝后缀:IA操作后指针增;DA操作后指针减; IB操作前指针增;DB操作前指针减。 堆栈操作后缀:FD满递减;ED空递减;FA满递增;EA空递增。 9、ARM和Thumb两种状态下各自堆栈的生成方式有何不同?写出各自对应的入栈、出栈指令。答:ARM堆栈有4种生成方式满递增、满递减、空递增、空递减; 入栈指令:STM(FD\ED\FA\EA 4种后缀之一)出栈指令:LDM(FD\ED\FA\EA 4种后缀之一)Thumb堆栈采用满递减的生成方式。入栈指令:PUSH . 出栈指令:POP 10、写出条件代码NE、EQ的判断条件。 答:NE Z=0 (不相等);EQ Z=1 (相等) 11、B、BL及BX指令有何区别?写出无嵌套的子程序调用及返回指令。 答:B是简单的转移指令,实现向目的地址的简单的跳转;

嵌入式SQL习题答案

9.3.1 a) void closestMatchPC() { EXEC SQL BEGIN DECLARE SECTION; char manf[], SQLSTATE[6]; int targetPrice, float tempSpeed, speedOfClosest; char tempModel[4], modelOfClosest[4]; int tempPrice, priceOfClosest; EXEC SQL END DECLARE SECTION; EXEC SQL DECLARE pcCursor CURSOR FOR SELECT model, price, speed FROM PC; EXEC SQL OPEN pcCursor; EXEC SQL FETCH FROM pcCursor INTO :modelOfClosest, :priceOfClosest, :speedOfClosest; if(NOT_FOUND) /* print message and exit */ ; while(1) { EXEC SQL FETCH pcCursor INTO :tempModel, :tempPrice, :tempSpeed; if (NOT_FOUND) break; if(|tempPrice-targetPrice|<|priceOfClosest-targetPrice|) { modelOfClosest = tempModel; priceOfClosest = tempPrice; speedOfClosest = tempSpeed; } } EXEC SQL SELECT maker INTO :manf FROM Product WHERE model = :modelOfClosest; printf("manf=%s, model=%d, speed=%d\n", manf, modelOfClosest, speedOfClosest); EXEC SQL CLOSE CURSOR pcCursor; }

arm9嵌入式课后答案

arm9嵌入式课后答案 【篇一:arm嵌入式系统结构与编程习题答案(全)】ass=txt>第一章绪论 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是源码工卡的实时嵌入式系统内核,主要有以下特点:源码公开,可移植性强,可固化,可剪裁,占先式,多任务,可确定性,提供系统服务等。

嵌入式系统设计师练习题及答案解析

嵌入式系统设计师练习题及答案第一套 (1) 嵌入式系统设计师练习题及答案第二套 (5) 嵌入式系统设计师练习题及答案第三套 (16) 嵌入式系统设计师练习题及答案解析第四套 (27) 嵌入式系统设计师练习题及答案解析第五套 (45) 嵌入式系统设计师练习题及答案解析第六套 (59) 嵌入式系统设计师练习题及答案解析第七套 (67) 嵌入式系统设计师练习题及答案解析第八套 (75) 嵌入式系统设计师练习题及答案解析第九套 (81) 嵌入式系统设计师练习题及答案解析第十套 (90) 嵌入式系统设计师练习题及答案解析第十一套 (99) 嵌入式系统设计师练习题及答案解析第十二套 (106) 嵌入式系统设计师练习题及答案解析第十三套 (115) 嵌入式系统设计师练习题及答案解析第十四套 (126) 嵌入式系统设计师练习题及答案解析第十五套 (139) 嵌入式系统设计师练习题及答案解析第十六套 (154) 嵌入式系统设计师练习题及答案解析第十七套 (161) 嵌入式系统设计师练习题及答案解析第十八套 (169) 嵌入式系统设计师练习题及答案解析第十九套 (177) 嵌入式系统设计师练习题及答案解析第二十套 (189) 嵌入式系统设计师练习题及答案解析第二十一套 (199) 嵌入式系统设计师练习题及答案解析第二十二套 (212) 嵌入式系统设计师练习题及答案第一套 1、以下关于CPU的叙述中,错误的是 A.CPU产生每条指令的操作信号并将操作信号送往相应的部件进行控制

B.程序计数器PC除了存放指令地址,也可以临时存储算术/逻辑运算结果 C.CPU中的控制器决定计算机运行过程的自动化 D.指令译码器是CPU控制器中的部件 2、以下关于Cache的叙述中,正确的是 A.在容量确定的情况下,替换算法的时间复杂度是影响Cache命中率的关键因素 B.Cache的设计思想是在合理成本下提高命中率 C.Cache的设计目标是容量尽可能与主存容量相等 D.CPU中的Cache容量应大于cPu之外的Cache容量 3、风险预测从两个方面评估风险,即风险发生的可能性以及 A.风险产生的原因 B.风险监控技术 C.风险能否消除 D.风险发生所产生的后果 4、许多程序设计语言规定,程序中的数据都必须具有类型,其作用不包括 A.便于为数据合理分配存储单元 B.便于对参与表达式计算的数据对象进行检查 C.便于定义动态数据结构 D.使于规定数据对象的取值范围及能够进行的运算 5、在计算机系统中,对程序员是透明的。 A.磁盘存储器 B.高速缓存 C.RAM存储器 D.flash存储器

周立功-ARM嵌入式系统基础教程课后习题答案11

第一章 思考与练习 1、举出3个书本中未提到的嵌入式系统的例子。 答:红绿灯控制,数字空调,机顶盒 2、什么叫嵌入式系统 嵌入式系统:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系 统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 3、什么叫嵌入式处理器?嵌入式处理器分为哪几类? 嵌入式处理器是为完成特殊的应用而设计的特殊目的的处理器。 嵌入式微处理器(Embedded Microprocessor Unit, EMPU) 嵌入式微控制器(Microcontroller Unit, MCU) 嵌入式DSP 处理器(Embedded Digital Signal Processor, EDSP) 嵌入式片上系统(System On Chip) 4、什么是嵌入式操作系统?为何要使用嵌入式操作系统? 是一段在嵌入式系统启动后首先执行的背景程序,首先,嵌入式实时操作系统提高了系统的可靠性。 其次,提高了开发效率,缩短了开发周期。再次,嵌入式实时操作系统充分发挥了32 位CPU 的多任务潜力。 第二章 1、嵌入式系统项目开发的生命周期分哪几个阶段?各自的具体任务是什么? 项目的生命周期一般分为识别需求、提出解决方案、执行项目和结束项目4 个阶段。 识别需求阶段的主要任务是确认需求,分析投资收益比,研究项目的可行性,分析厂商所应具备的条件。 提出解决方案阶段由各厂商向客户提交标书、介绍解决方案。 执行项目阶段细化目标,制定工作计划,协调人力和其他资源;定期监控进展, 分析项目偏差,采取必要措施以实现目标。 结束项目阶段主要包括移交工作成果,帮助客户实现商务目标;系统交接给维护人员;结清各种款项。 2、为何要进行风险分析?嵌入式项目主要有哪些方面的风险? 在一个项目中,有许多的因素会影响到项目进行,因此在项目进行的初期,在客户和开发团队都还未投入大量资源之前,风险的评估可以用来预估项目进行可能会遭遇的难题。 需求风险;时间风险;资金风险;项目管理风险 3、何谓系统规范?制定系统规范的目的是什么? 规格制定阶段的目的在于将客户的需求,由模糊的描述,转换成有意义的量化数据。 4、何谓系统规划?为何要做系统规划 系统规划就是拟定一个开发进程,使项目在合理的进程范围中逐渐建构完成。其目地是让客户可以进一步地掌握系统开发的进程,并确定检查点,以让双方确定项目是否如预期中的进度完成。 5、为什么在项目结束前需要进行项目讨论? 项目的讨论一个项目进行的反馈机制。通过这一个程序,项目团队的经验才可以被记录 下来,也就是说,这是一个撰写项目历史的过程。 第三章 1、ARM7TDMI中的T、D、M、I的含义是什么? 64 位乘法指令(带M 后缀的)、支持片上调试(带D 后缀的)、高密度16 位的Thumb 指令机扩展(带T 后缀的)和EmbededICE 观察点硬件(带I 后缀的) 2、ARM7TDMI采用几级流水线?使用何种存储器编址方式? 三级流水线(取指译码执行);使用了冯·诺依曼(V on Neumann )结构,指令和数据共用一条 32 位总线。 3、ARM处理器模式和ARM处理器状态有何区别? 处理器模式指的是处理器在执行程序时在不同时刻所处的不同状态,处理器状态指的是处理器当前所执行的指令集。 4、分别列举ARM的处理器模式和状态。 状态: ARM 状态32 位,这种状态下执行的是字方式的ARM 指令

嵌入式习题答案

第一章习题答案 1.什么是嵌入式系统?请列举几个常见的嵌入式系统。 答:根据国际电气和电子工程师协会(IEEE)的定义,嵌入式系统是控制、监视或者辅助设备、机器和生产线运行的装置(Devices used to control, monitor, or assist the operation of equipment, machinery or plants)。这主要是从产品的应用角度加以定义的,由此可以看出嵌入式系统是软件和硬件的综合体,可以涵盖机械等附属装置。 目前被我国科学家普遍认同的定义是:嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁减,对功能、可靠性、成本、体积、功耗要求严格的专用计算机系统。 常见的嵌入式系统:手机,DVD,路由器,核磁共振仪,全自动洗衣机。 2.嵌入式系统与通用计算机有哪些区别? 答:(1) 以应用为中心;(2) 以计算机技术为基础(3) 软件和硬件可裁减(4) 对系统性能要求严格(5)软件的固件化(6)需要专用的开发工具 3.嵌入式系统的发展分为哪几个阶段? 答:第一阶段:无操作系统的嵌入算法阶段。第二阶段:以嵌入式CPU为基础,以简单操作系统为核心的嵌入式系统。第三阶段:以嵌入式操作系统为标志的嵌入式系统。第四阶段:以基于Internet 为标志的嵌入式系统。 4.请列举嵌入式系统的主要应用领域。 答:(1)工业控制领域(2)交通运输领域(3)消费电子产品(4)家电领域(5)通信领域(6)商业和金融领域(7)环境监测领域(8)医疗领域(9)建筑领域(10)军事国防领域(11)航天航空领域 第二章习题答案 1.简述简单嵌入式系统与复杂嵌入式系统的主要区别。 答:简单嵌入式系统很早就已经存在,这类嵌入式系统因为软硬件复杂度都很低,一般不使用操作系统,例如常用的单片机系统。对于复杂的嵌入式系统,它的开发模式发生了极大的改变。一个复杂的嵌入式系统不仅硬件系统的开发比单片机复杂了许多,更重要的是在该系统中采用了嵌入式操作系统,其应用软件的开发转变为使用操作系统标准接口的计算机工程领域的应用软件开发。复杂嵌入式系统具有更强大的功能,但是简单的嵌入式并不会随着复杂的嵌入式系统出现而消亡。2.简述嵌入式系统的体系结构。 答:嵌入式系统从组成上看,可分为嵌入式硬件系统与嵌入式软件系统两大部分。嵌入式硬件层由嵌入式微处理器、嵌入式存储器系统、通用设备和I/O接口等组成。嵌入式系统的软件层分为嵌入式操作系统和嵌入式应用软件两大部分。 3.嵌入式处理器分为哪几类? 答:嵌入式处理器可分为以下四种:嵌入式微控制器(MicroController Unit,MCU),嵌入式微处理器(Embedded Microprocessor Unit,EMPU),嵌入式DSP处理器(Embedded Digital Signal Processor,EDSP)和嵌入式片上系统(System on Chip,SoC)。 4.ARM中常用的嵌入式存储器都有哪些? 答:ARM系统的存储器可以分为片内存储器和片外存储器。片内一般以RAM或SRAM为主。片外通常以Flash和SDRAM为主。嵌入式系统中常用的几种内存有Flash、SRAM、SDRAM、DDRSDRAM

ARM嵌入式系统课后习题部分答案

A R M嵌入式系统课后 习题部分答案 SANY标准化小组 #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#

一填空题 嵌入式系统从大的方面分为(嵌入式系统硬件平台)和(嵌入式软件)两大部分。 驱动层程序一般包括(硬件抽象层HAL)、(板级支持包BSP)和(设备驱动程序)。 嵌入式系统核心是嵌入式处理器,可分为(嵌入式微处理器)、(嵌入式微控制器)、嵌入式DSP处理器和(嵌入式片上系统SoC)4大类。 处理器分为(ARM)和(Thumb)两种操作状态。 状态下,SP寄存器指的是(R13)、LR寄存器指的是(R14)、PC寄存器指的是(R15). 处理器支持的数据类型中,字节为(8)位、半字为(16)位、字为(32)位。 (-S)指令集包括(ARM)指令集和(Thumb)指令集。 指令用于从(存储器)中将一个32位的字数据传送到(目的寄存器)中。指出下面各条指令的寻址方式。 SUB R0,R1,R2 ;寻址方式:(寄存器寻址)。 SUBS R0,R0,#1 ;寻址方式:(立即寻址)。 MOV R0,R2,LSL#3 ;寻址方式:(寄存器移位寻址)。 SWP R1,R1,[R2] ;寻址方式:(寄存器间接寻址)。 LDR R2,[R3,#0x0C] ;寻址方式:(基址寻址)。 汇编语言源程序中语句一般有(指令)、(伪指令)、(伪操作)和宏指令组成。 对Flash存储器的编程可通过(JTAG仿真/调试器)、( ISP )和(IAP)3重方法来实现。 异常向量表可以来自4个不同的存储器区域,分别是(片内Flash )、(片内SRAM )、( Boot Block )和片外存储器。 系列的定时器主要用于3个方面:(对内部事件进行计数的间隔定时器)、(通过捕获输入实现脉宽解调器)、(自由运行的定时器)。二选择题 可以表示微控制器的缩略词是( B ) A. MPU B. MCU C. WDT 类存储器包括( ABD ) A. NOR Flash B. EPROM C. SRAM D. PROM 不属于ARM的系列是( D ) A. MCS-96 B. 80C51 C. LPC2000 处理器系列采用( A )级流水线。 A. 3 B. 5 C. 6 D. 8 下面ARM处理器模式中属于特权模式的有( BCD ) A. 用户模式 B. 中断模式 C. 系统模式 D. 管理模式 (或STM)指令允许一条指令最多传送( C )个寄存器。 A. 4 B. 8 C. 16 D. 24 指令限制在当前指令的( B )地址范围。

arm嵌入式系统课后习题部分答案

a r m嵌入式系统课后习题 部分答案 The pony was revised in January 2021

一填空题嵌入式系统从大的方面分为(嵌入式系统硬件平台)和(嵌入式软件)两大部分。 驱动层程序一般包括(硬件抽象层HAL)、(板级支持包BSP)和(设备驱动程序)。 嵌入式系统核心是嵌入式处理器,可分为(嵌入式微处理器)、(嵌入式微控制器)、嵌入式DSP处理器和(嵌入式片上系统SoC)4大类。处理器分为(ARM)和(Thumb)两种操作状态。 状态下,SP寄存器指的是(R13)、LR寄存器指的是(R14)、PC寄存器指的是(R15). 处理器支持的数据类型中,字节为(8)位、半字为(16)位、字为(32)位。 (-S)指令集包括(ARM)指令集和(Thumb)指令集。 指令用于从(存储器)中将一个32位的字数据传送到(目的寄存器)中。 指出下面各条指令的寻址方式。 SUB R0,R1,R2 ;寻址方式:(寄存器寻址)。

SUBS R0,R0,#1 ;寻址方式:(立即寻址)。 MOV R0,R2,LSL#3 ;寻址方式:(寄存器移位寻址)。 SWP R1,R1,[R2] ;寻址方式:(寄存器间接寻址)。 LDR R2,[R3,#0x0C] ;寻址方式:(基址寻址)。 汇编语言源程序中语句一般有(指令)、(伪指令)、(伪操作)和宏指令组成。 对Flash存储器的编程可通过(JTAG仿真/调试器)、( ISP )和(IAP)3重方法来实现。 异常向量表可以来自4个不同的存储器区域,分别是(片内Flash )、(片内SRAM )、( Boot Block )和片外存储器。 系列的定时器主要用于3个方面:(对内部事件进行计数的间隔定时器)、(通过捕获输入实现脉宽解调器)、(自由运行的定时器)。二选择题 可以表示微控制器的缩略词是( B ) A. MPU B. MCU C. WDT 类存储器包括( ABD )

《嵌入式》课后习题答案

第一章 1.简述嵌入式的定义 以应用为中心、以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 2.举例说明嵌入式系统的“嵌入性”、“专用性”、“计算机系统”的基本特征。 按照嵌入式系统的定义,嵌入式系统有3个基本特点,即“嵌入性”、“专用性”与“计算机”。 “嵌入性”由早期微型机时代的嵌入式计算机应用而来,专指计算机嵌入到对象体系中,实现对象体系的智能控制。当嵌入式系统变成一个独立应用产品时,可将嵌入性理解为内部嵌有微处理器或计算机。 “计算机”是对象系统智能化控制的根本保证。随着单片机向MCU、SoC发展,片内计算机外围电路、接口电路、控制单元日益增多,“专用计算机系统”演变成为“内含微处理器”的现代电子系统。与传统的电子系统相比较,现代电子系统由于内含微处理器,能实现对象系统的计算机智能化控制能力。 “专用性”是指在满足对象控制要求及环境要求下的软 硬件裁剪性。嵌入式系统的软、硬件配置必须依据嵌入对象

的要求,设计成专用的嵌入式应用系统。 3. 简述嵌入式系统发展各阶段的特点。 (1)无操作系统阶段:使用简便、价格低廉;(2)简单操作系统阶段:初步具有了一定的兼容性和扩展性,内核精巧且效率高,大大缩短了开发周期,提高了开发效率。 (3)实时操作系统阶段:系统能够运行在各种不同类型的微处理器上,具备了文件和目录管理、设备管理、多任务、网络、图形用户界面Graphic User Interface,GUI)等功能,并提供了大量的应用程序接口Application Programming Interface,API),从而使应用软件的开发变得更加简单。(4)面向Internet阶段:进入21世纪,Internet技术与信息家电、工业控制技术等的结合日益紧密,嵌入式技术与Internet技术的结合正在推动着嵌入式系统的飞速发展 4.简述嵌入式系统的发展趋势。 (1)新的微处理器层出不穷,精简系统内核,优化关键算法,降低功耗和软硬件成本。(2)Linux、Windows CE、Palm OS等嵌入式操作系统迅速发展。(3)嵌入式系统的开发成了一项系统工程,开发厂商不仅要提供嵌入式软硬件系统本身,同时还要提供强大的硬件开发工具和软件支持包。

ARM原理及应用复习题(附答案)

《ARM原理及应用》复习题 填空题 1.STM32F103是_32_位单片机,内核是ARM公司的___Cortex-M3___。 2.STM32F103最高工作频率___72MHz___。片内具有多种外设,它们分别是:_GPIO_、_USART_、_I2C_、_SPI_、_ADC_、_DAC_、_TIM_、_RTC_、_IWDG_、_WWDG_。 IWDG:独立看门狗 WWDG:窗口看门狗 3.STM32103的GPIO端口具有多种配置状态,输入有3种状态,它们分别是_模拟输入_、_浮空输入__和上拉/下拉输入;输出有4种状态,它们分别是_通用推挽输出_、_通用开漏输出_、_复用推挽输出_和_复用开漏输出_。 5.当STM32I/O端口配置为输入时,输出功能被_禁止_,施密特触发器被激活__。 6.STM32的所有端口都有外部中断能力。当使用外部中断线时,相应的引脚必须配置成 输入模式。 7.STM32具有单独的位设置或位清除能力。这是通过GPIOx->BSRR_和GPIOx->BRR寄存器来实现的。 8.STM32芯片内部集成的12位位ADC是一种逐次逼近(比较)型模拟数字转换器,具有18个通道,可测量16个外部和2个内部信号源。 9.STM32的NVIC管理着包括Cortex-M3核异常等中断,其和ARM处理器核的接口紧密相连,可以实现时延的中断处理,并有效地处理后到中断。 10.系统计时器(SysTick)提供了1个24位二进制递减计数器,具有灵活的控制机制11.STM32通用定时器TIM的16位计数器可以采用三种方式工作,分别为向上计数模式、向下计数模式和向上下计数模式。 12.STM32系列ARM Cortex-M3芯片支持三种复位形式,分别为上电复位、按键复位和备份复位。 简答题 1.什么是嵌入式系统?嵌入式系统一般由哪几部分构成?它与通用计算机有何区别? 答: 是一种嵌入受控器件内部,为特定应用而设计的专用计算机系统,具有“嵌入性”、“专用性”和“计算机系统”3个基本要素。//它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成。//嵌入式系统通常执行的是带有特定要求的预先定义的任务,强调控制能力与控制的可靠性;而通用计算机则可以通过安装各种软件执行各种不同的任务,强调高速、海量的数值计算。 2.ARM Cortex-M3有何特点? 答: 采用哈佛结构的32位处理器内核,具有高性能、实时功能、数字信号处理、低功耗与低电压操作特性,同时还保持了集成度高和易于开发的特点。 3.简述Cortex-M3系统滴答定时器的功能和作用。 答:

嵌入式系统模拟试题及答案

学习中心/函授站_ 姓名学号 西安电子科技大学网络与继续教育学 院 2014学年下学期 《嵌入式系统》期末考试试题 (综合大作业) 题号一二三四五总分 题分2010302020 得分 考试说明: 1、大作业于2014年12月25日下发,2015年1月10日交回; 2、考试必须独立完成,如发现抄袭、雷同均按零分计; 3、答案须手写完成,要求字迹工整、卷面干净。 一、问题简述(每小题4分,共20分) 1、简述嵌入式系统的定义和组成结构。 答:嵌入式系统是以应用为中心,以计算机技术为基础,并软硬件可剪裁、功能、 ,可靠性、体积、重量、成本、功耗、成本、安装方式等方面符合要求的专用计算机系统。 嵌入式系统一般由嵌入式微处理器、存储与I/O部分、外设与执行部分、嵌入式软件等四个部分组成。 2、简单说明ARM微处理器的特点。 答:(1) 体积小、低功耗、低成本、高性能。 (2) 支持Thumb(16位)/ARM(32位)双指令集,能很好地兼 容8位/16位器件。

(3) 大量使用寄存器,指令执行速度更快。 (4) 大多数数据操作都在寄存器中完成,通过Load/Store结 构在内存和寄存器之间批量传递数据。 (5) 寻址方式灵活简单,执行效率高。 (6) 指令长度固定。 3、简述嵌入式系统产品的设计和开发过程。 答:①在嵌入式系统的开发过程中,一般采用的方法是首先在通用PC机上的集成开发环境中编程;②然后通过交叉编译和链接,将程序转换成目标平台(嵌入式系统)可以运行的二进制代码;③接着通过嵌入式调试系统调试正确;④最后将程序下载到目标平台上运行。 要强调,选择合适的开发工具和调试工具,对整个嵌入式系统的开发都非常重要。 4、简述嵌入式系统设计中要考虑的因素。 答:在嵌入式系统的开发过程中,要考虑到实时性、可靠性、稳 定性、可维护性、可升级、可配置、易于操作、接口规范、抗干 扰、物理尺寸、重量、功耗、成本、开发周期等多种因素。 5、什么是BootLoader,了解其在嵌入式系统中作用。 答:就是启动载入或引导加载又叫自举装载。由于系统加电后需 要首先运行BootLoader这段程序,因此它需要放在系统加电后 最先取指令的地址上。嵌入式处理器的生产厂商都为其处理器预 先安排了一个在系统加电或复位后最先取指令的地址。 二、名词解释(每小题2分,共10分) 1、DSP(Digital Signal Processor),数字信号处理器,一种特别用于快速处理数字信号的微处理器。DSP处理器对系统结构和指令进行了特殊设计,使其适合于执行DSP算法,编译效率较高,指令执行速度也较高。 2、RTOS Real Time Operating System. 译为实时操作系统。实时系统是指一个能够在指定的或者确定的时间内,实现系统功能和对外部或内部、同步或异步事件作出响应的系统。 3、BSP设计板级支持包(BSP)的目的主要是为驱动程序提供访问硬件设备寄存器的函数包,从而实现对操作系统的支持。类似于PC机上的BIOS,是一个承上启下的软件层次。由嵌入OS和用户开发相结合取得。BSP一般是在嵌入式系统上固化存放。 4、总线竞争就是在同一总线上,同一时刻,有两个以上器件要通

嵌入式复习题含全部答案)

嵌入式系统复习题 一、填空题: 1、试列举三种主流的嵌入式处理器:( ARM )、( MIPS )、(PowerPC)。 2、ARM处理器共有(37)个寄存器,其中包括(31个通用寄存器)和(6个状态寄存器)。 3、寄存器R13在ARM指令中(堆栈指针SP )。R14也称(程序连接寄存器LR)在程序里的作用是(程序计数器PC的备份)。当发生中断或异常时,对应分组寄存器分别是(R14_svc、R14_irq、R14_fiq、R14_abt和R14_und用来保存R15的返回值)。 4、ARM微处理器支持两种指令集:(ARM)和(Thumb)。 5、寄存器R15用作(程序计数器PC)。该寄存器在ARM状态下,(位[1:0]为00),位[31:2]用于保存PC;在Thumb状态下,(位[0]为0),位[31:1]用于保存PC。 6、CPSR用作( 状态寄存器 ),CPSR可在任何运行模式下被访问。每一种运行模式下又都有一个专用的物理状态寄存器,称为(程序状态保存寄存器SPSR)。 7、Thumb状态下的寄存器集是ARM状态下寄存器集的一个子集,程序可以直接访问的通用寄存器是(R0—R7,PC,SP,LR,CPSR)。 8、ARM指令中条件执行功能是通过(指令中添加条件码)来实现的,包含的条件码位于指令的最高(四)位。 9、试列举五种以上常见的嵌入式操作系统:(μC/OS-II)、(Vxworks)、(WinCE)、(Linux/μCLinux)、(PalmOS)。 10、计算机结构中,哈佛结构和冯?诺依曼结构的主要区别是(指令与数据分开),ARM7采用(冯?诺依曼结构),ARM9采用(哈佛结构)。 11、ARM处理器采用(Thumb指令)操作来访问SFR。 12、在ARM汇编语言程序设计中,语句一般是由(指令操作码)、(指令的条件码)、(目标寄存器编码)和(包含第一个操作数的寄存器编码)组成。 二、名词解释: 1、ARM处理器:先进的RISC指令集处理器。广泛地使用在许多嵌入式系统设计。 2、交叉编译:在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码, 这个编译过程就叫交叉编译。 3、异常:异是导致程序中断运 行的一种指令流。(是指CPU在 执行指令时出现的错误,即不正 常的情况。异常是与当前所执行 的程序有关的,如存取数据或指 令错误、计算结果溢出等。) 4、大端格式:字数据的高字节 存储在低地址中,而字数据的低 字节则存放在高地址中。 5、小端格式:低地址中存放的 是字数据的低字节,高地址存放 的是字数据的高字节。 6、寻址方式:处理器根据指令 中给出的(地址)信息,寻找操 作数(物理地址)的方式。 7、嵌入式系统:广义上:凡是 不用于通用目的的可编程计算 机设备,就可以算是嵌入式计算 机系统。狭义上而言,嵌入式系 统是指以应用为核心,以计算机 技术为基础,软硬件可裁剪,对 功能、可靠性、成本、体积和功 耗严格要求的专用计算机系统。 8、GNU:GNU(GNU’s Not Unix), 它的目标是建立可自由发布和 可移植的类Unix操作系统。 9、伪指令:是汇编语言程序里 的特殊指令助记符,在汇编时被 合适的机器指令替代。 10、伪操作:为汇编程序所用, 在源程序进行汇编时由汇编程 序处理,只在汇编过程起作用, 不参与程序运行。 11、RTOS :实时系统,能够对 外部事件做出及时响应的系统。 12、微控制器:俗称“单片机", 它将整个计算机系统集成到一 块芯片中。 三、简答题: 1、请从广义和狭义两个方面简 述嵌入式系统的含义。 答:嵌入式系统:Embedded System 广义上:凡是不用于通用目 的的可编程计算机设备,就可以 算是嵌入式计算机系统。 狭义上:,嵌入式系统是指以 应用为核心,以计算机技术为基 础,软硬件可裁剪,对功能、可 靠性、成本、体积和功耗严格要 求的专用计算机系统。 2、简述采用RISC架构的ARM微 处理器的特点。 a.采用固定长度的指令格式, 指令规整,简单,基本寻址2~3 种。 b.使用单周期指令,便于流水 线操作。 c.大量使用寄存器,提高指令 的执行效率。 d.所有的指令都可以根据前 面的执行后,决定是否执行从而 提高指令的执行效率。 e.可以加载/存储指令,批量 传输数据,以提高数据的传输效 率。 3、选择嵌入式微处理器时,应 考虑那些因素? a, 调查市场上已有的CPU供应 商。 b, CPU的处理速度 c,技术指标。 d,处理器的低功耗。 e,处理器的软件支持工具。 f,处理器是否内置调试工具。 g,处理器供应商是否提供评估 板。 h,片内存储容量。 4、简述嵌入式系统的特点。 (1)软硬件一体化,集计算机 技术、微电子技术、行业技术于 一体; (2)需要操作系统支持,代码 少,执行速度快; (3)系统内核小、专用性强、 系统精简。 (4)高实时性的系统软件(OS) 是嵌入式软件的基本要求。 (5)嵌入式软件开发要想走向 标准化,就必须使用多任务的操 作系统。 (6)嵌入式系统开发需要开发 工具和环境。 5、画出当前主流嵌入式系统的 硬件组成结构框图。 6、比较ARM920T和ARM720T的 主要异同。 ARM9 5级流水线独立的指令 总线哈佛结构 ARM7 3级流水线数据与指令 一起冯·诺依曼结构 7、ARM9指令是几级流水线,各 阶段执行什么操作? 答:ARM9采用5级流水线。 取指:从指令Cache中读取 指令。 译码:对指令进行译码,识 别出是对哪个寄存器进行操作 并从通用寄存器中读取操作数。 执行:进行ALU运算和移位 操作,如果是对存储器操作的指 令,则在ALU中计算出要访问 的存储器地址。 数据缓冲:如果是对存储器 访问的指令,用来实现数据缓冲 功能(通过数据Cache) 回写:将指令运算或操作结 果写回到目标寄存器中。 8、写出不少于12类嵌入式产品 中的常用接口。 UART接口、SPI接口、I2C接口、 ADC和触摸屏接口、USB接口、 以太网接口、外存接口、LCD接 口、时钟接口、PWM接口、中断 接口、JTAG接口、VGA接口、音 频接口 9、若允许FIQ、IRQ中断,CPSR 如何设置? FIQ: CPSR[4:0]=0B10001 IRQ: CPSR[4:0]=0B10010 CPSR[5]=0 CPSR[6]=0 CPSR[7]=0 10、举例说明ARM的各种寻址方 式。 寄存器寻址:LDR R1,R2 寄存器间接寻址:LDR R1,[R2] 寄存器偏移寻址:LDR R1,[R2,-R4,LSL#3] 立即寻址:LDR,R3,#34 多寄存寻址:LDMIA R0,{R1,R3,R4,R5} 11、对比说明ADR、ADRL与LDR 的区别与联系。 ADR:小范围的地址读取伪指令。 ADRL:中等范围的地址读取伪指 令。 LDR:大范围的地址读取伪指令。 ADR伪指令功能:将基于PC相对 偏移的地址值或基于寄存器相 对偏移的地址值读取到寄存器 中。 ADRL伪指令功能:将基于PC相 对偏移的地址值或基于寄存器 相对偏移的地址值读取到寄存 器中,比ADR伪指令可以读取更 大范围的地址。 LDR伪指令功能:用于加载32位 立即数或一个地址值到指定的 寄存器。

ARM课后习题及答案_百度文库.

第一章思考与练习 1、举出3个书本中未提到的嵌入式系统的例子。答:红绿灯控制,数字空调,机顶盒 2、什么叫嵌入式系统嵌入式系统:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 3、什么叫嵌入式处理器?嵌入式处理器分为哪几类?嵌入式处理器是为完成特殊的应用而设计的特殊目的的处理器。嵌入式微处理器(Embedded Microprocessor Unit, EMPU 嵌入式微控制器(Microcontroller Unit, MCU 嵌入式DSP 处理器(Embedded Digital Signal Processor, EDSP 嵌入式片上系统(System On Chip 4、什么是嵌入式操作系统?为何要使用嵌入式操作系统?是一段在嵌入式系统启动后首先执行的背景程序,首先,嵌入式实时操作系统提高了系统的可靠性。其次,提高了开发效率,缩短了开发周期。再次,嵌入式实时操作系统充分发挥了 32 位 CPU 的多任务潜力。第二章 1、嵌入式系统项目开发的生命周期分哪几个阶段?各自的具体任务是什么?项目的生命周期一般分为识别需求、提出解决方案、执行项目和结束项目4 个阶段。识别需求阶段的主要任务是确认需求,分析投资收益比,研究项目的可行性,分析厂商所应具备的条件。提出解决方案阶段由各厂商向客户提交标书、介绍解决方案。执行项目阶段细化目标,制定工作计划,协调人力和其他资源;定期监控进展,分析项目偏差,采取必要措施以实现目标。结束项目阶段主要包括移交工作成果,帮助客户实现商务目标;系统交接给维护人员;结清各种款项。 2、为何要进行风险分析?嵌入式项目主要有哪些方面的风险?在一个项目中,有许多的因素会影响到项目进行,因此在项目进行的初期,在客户和开发团队都还未投入大量资源之前,风险的评估可以用来预估项目进行可能会遭遇的难题。需求风险;时间风险;资金风险;项目管理风险 3、何谓系统规范?制定系统规范的目的是什么?规格制定阶段的目的在于将客户的需求,由模糊的描述,转换成有意义的量化数据。 4、何谓系统规划?为何要做系统规划系统规划就是拟定一个开发进程,使项目在合理的进程范围中逐渐建构完成。其目地是让客户可以进一步地掌握系统开发的进程,并确定检查点,以让双方确定项目是否如预期中的进度完成。 5、为什么在项目结束前需要进行项目讨论?项目的讨论一个项目进行的反馈机制。通过这一个程序,项目团队的经验才可以被记录下来,也就是说,这是一个撰写项目历

嵌入式系统设计复习题

山东理工大学成人高等教育嵌入式系统设计复习题 一、简述题 1、画出MCS-51单片机的总线形成图,并写出地址线和数据线的数量 2、简述定时器/计数器方式1和方式2的最长定时器时间与最短定时时间(外部晶振为6MHz) 3、简述串行口的控制寄存器SCON中的SM0、SM1、SM2的含义 4、如果一个8位的D/A转换器满量程为5V,试分别确定当数字量为75H、0ACH时对应的模拟量。 5.MCS-51系列单片机三总线如何产生?说明各控制总线的名称及含义。 6.写出MCS-51单片机P3口的第二功能名称含义。 7.MCS-51单片机工作寄存器区字节地址范围是多少?若选择当前工作寄存器区为2区,应如何设置? 8.当中断控制寄存器IE的内容为92H时的含义是什么? 9.简述程序状态字PSW各位的含义。 10.MCS-51系列单片机内部有哪些主要逻辑部件组成? 11.P3口的第二功能是什么。 12.MCS-51单片机内部RAM如何分配的? 13.写出将片内RAM 30H单元、片外RAM 3000H单元的内容读入A中的指令。 14.位地址20H与字节地址20H有何区别?位地址20H具体在片内RAM中什么位置?15.写出特殊功能寄存器IE、IP、TMOD的名称及功能。 二、名词解释 1、A/D分辨率 2、中断

三、编程 1、定时器/计数器初始化编程 若要求T0作为定时器以方式1工作,定时时间为50ms; T1作为计数器以方式2工作,计3个脉冲溢出。设单片机晶振频率为12MHZ,编写初始化程序。 2、编程将片内RAM31H单元的高3位和30H单元的高5位合并为1个字节送片内RAM32H,要求31H的高3位在高位上。 3.以30H为起始地址的内部RAM中,连续存放8个单字节无符号数, 试编一程序,求其平均值送52H单元。 4.片内RAM的40H、41H单元存放2个压缩的BCD码,编制程序将其转换成七段码,并存入片内30H~33H单元中。已知七段码表的首地址为TAB。 四、设计 1、画出利用8255A管理LED3位静态显示的原理简图,并编写显示数字5、7、9的程序。 五、指令题 1.设片内RAM(30H)=0EH,执行下面程序后,(A)=?该程序完成何功能? MOV R0,#30H 答: MOV A,@R0 结果A= RL A 功能: MOV B,A RL A RL A ADD A,B RET 2.设(A)=40H,(R1)=23H,(40H)=05H。执行下列两条指令后,累加器A和R1以及内部RAM中40H单元的内容各为何值? (1)XCH A,R1 (2)XCHD A,@R1 3.设内部RAM中44H单元的内容为43H,执行下列程序后 MOV SP,#78H MOV R1,#44H

相关文档
相关文档 最新文档