当前位置:文档之家› 嵌入式复习重点

嵌入式复习重点

嵌入式复习重点
嵌入式复习重点

红色是答案,完整答案后面会陆续补上,不懂的问我

课本重点一二三六九章,关注章节课后习题

阅读以下说明和C 语言代码,回答问题1至问题3,将解答填入答题纸的对应栏内。 【说明】

在实时系统中,许多控制软件需要将数据封装到一个数据结构中,以节省存储空间。对于位操作,使用汇编语言实现其访问比较容易,但会增加编程难度,因此现在普遍采用C 语言实现。使用高级语言编程要特别注意结构的存储格式以及编译器的特性。本题所使用的编译器对变量按声明顺序分配地址。分析下面所示的C 语言代码,回答以下问题。

【问题1】

如果处理机按32位以大端方式(big_endian )编址,请在下图所示的存储器图表中填入myRadarData 数据的存储内容(十六进制表示)。

【问题2】

在上面的程序中,第22行的语句执行完成后,下列语句的结果是多少?请将应填入(n )处的内容写在答题纸的对应栏中。

q->X = (1) 0x00000001 q->Y = (2) 0x61626300 q->Z = (3) 0x00000200

若再执行一次q++,则下列语句的结果又是多少?请将应填入(n )处的内容写在答题纸的对应栏中。

q->X = (5) 0x00000002 q->Y = (6) 0x78797A00

1: typedef struct 2: { int A

3: char B : 8; 4: char C : 8; 5: char D : 8; 6: int F; 8: }radartype; 9: typedef struct

10: { unsigned int X; 11: unsigned int Y; 12: unsigned int Z; 14: } datatranstype;

15: radartype myRadarData[2]=

16: {{1, 'a ', 'b ', 'c ', 512}, {2, 'x ', 'y ', 'z ', 1024}}; 17:

18: void main(void)

19: { radartype *p; 20: datatranstype *q; 21: p = myRadarData;

22: q = (datatranstype *)p; 23: q++; 24: }

q->Z = (7) 0x00000400

【问题3】

内存空间常划分为代码段(text)、数据段(data)、bss段(bss)、堆区(heap)和栈区(stack),那么程序中myRadarData数组的存储空间应分配在哪个段中?指针变量p、q应分配在哪个段中?

数据段栈区

阅读以下关于嵌入式C语言编程方面的问题,回答问题1至问题3。

【说明】嵌入式C语言编程中常涉及位运算、宏定义的问题,以及大端方式、小端方式的访问问题。

问题1:嵌入式系统中常要求用户对变量或寄存器进行位操作。下面的两个函数分别为设置和清除变量a 的第10位。请使用下面的宏定义BIT10按要求对变量a进行相应的处理。在函数set_bit10中,设置变量a的第10位,在函数clear_bit10中,清除变量a的第10位。

#define BIT10 (0x01<<10)

static int a;

{

(1) ; /*设置变量a的第10位

}

(1)a|=BIT10 (2)a&=~BIT10

问题2:下面代码的设计意图是计算1—100各数的平方。该段代码运行后能得到应有的结果么?若不能,对程序进行修改,完成设计意图。

#define SQUARE(a) ((a)*(a))

int i;

int result;

i=1;

do{

result=SQUARE(i++);

printf(“result=%d\n”,result);

}while(i<101);

把 result=SQUARE(i++); 改成

result=SQUARE(i);

i++;

问题3:某嵌入式处理器工作在大端方式下,其中unsigned int 为32位,unsigned short 为16位,unsigned char 为8位。仔细阅读并分析下面的C语言代码。写出其打印输出的结果。

#include "stdio.h"

#include "stdlib.h"

void *MEM_ADDR;

void mem_test(void)

{

unsigned int *pint_addr=NULL;

unsigned short *pshort_addr=NULL;

unsigned char *pchar_addr=NULL;

MEM_ADDR=(void*)malloc(sizeof(int));

pint_addr=(unsigned *)MEM_ADDR;

pshort_addr=(unsigned *)MEM_ADDR;

pchar_addr=(unsigned *)MEM_ADDR;

*pint_addr=0x89ABCDEF;

printf("0x%x,0x%x\n",*pshort_addr,*pchar_addr); /*第一次输出*/

pshort_addr++;

*pshort_addr=0x1234;

printf("0x%x,0x%x\n",*pint_addr,*pchar_addr); /*第二次输出*/

pchar_addr--;

*pchar_addr=0x56;

printf("0x%x,0x%x\n",*pint_addr,*pshort_addr); /*第三次输出*/

}

第一次输出:0x89AB , 0x89 第二次输出:0x89AB1234, 0x89 第三次输出:0x89561234,0x1234

阅读以下说明和C 语言代码,回答问题1至问题3。

【说明】在嵌入式操作系统设备管理的实现上,常使用到C 语言的函数指针变量,由统一的管理函数调用不同的设备驱动程序。下面的一段C 语言代码是驱动管理程序manage_device 调用4个不同设备驱动程序,但没有用到函数指针变量。

【问题1】请使用C 语言的函数指针变量,manage_device 函数进行改造,完成下面C 语言代码中的(1),(2),(3)和(4)处的变量说明或语句。 type struct{ int _fd;

(1)函数指针变量说明;/*变量名用function */ }TYP_DEV_TAB;

TYP_DEV_TAB dev_tab[50]={{101,Dev_drv1},{99,Dev_drv2},{80,Dev_drv3},{120, ,Dev_drv4}};

void manage_device(int devid,int arg1,int arg2) {

int place; int ret;

(2)函数指针变量说明;/*变量名用dev_action*/ for(place=0;place<50;place++) if(dev_tab[place]._fd==devid)

(3)语句1;/* 利用局部变量,得到具体函数的入口地址*/ break;

if(place>=50) printf("NO DEVICE fd=%d\n",devid); (4)语句2; if(ret!=NORERROR) printf("DEVICE %d error!\n",devid);

C 语言代码

#include "stdio.h" #include "stdlib.h" extern int sys_status;

static int Dev_drv1(int arg1,int arg2); static int Dev_drv2(int arg1,int arg2); static int Dev_drv3(int arg1,int arg2); static int Dev_drv4(int arg1,int arg2); #define NOERROR 0

type struct{ int _fd;

}TYP_DEV_TAB;

TYP_DEV_TAB

dev_tab[50]={101,99,80,120,};

void manage_device(int devid,int arg1,int arg2) {

int place; int ret;

for(place=0;place<50;place++) if(dev_tab[place]._fd==devid) break; if(place>=50) printf("NO DEVICE fd=%d\n",devid);

switch(dev_tab[palce]._fd){

case 80; ret=Dev_drv3(int arg1,int arg2); break; case 99; ret=Dev_drv2(int arg1,int arg2); break; case 101; ret=Dev_drv1(int arg1,int arg2); break; case 120; ret=Dev_drv4(int arg1,int arg2); break; } if(ret!=NORERROR) printf("DEVICE%d error!\n",devid); }

int Dev_drv1(2)(3)(4)(int arg1,int arg2); {

/*局部变量声明,略*/ /*驱动程序代码,略*/ }

【问题2】在C语言程序中,常在某些变量的说明前加extern , 如本题在变量说明中的第一条加extern int sys_status; 说明加extern 与不加extern的区别,在进行编译时会有什么样的不同处理?

【问题3】函数的参数存放在什么地址空间中?说明其作用范围。

【问题4】

int Dev_drv1(int arg1,int arg2)

{

struct node{

int ID;

int action;

char name[100];

int range;

}

struct node *ptr;

/*其它局部变量声明,略*/

}

设int 为32位整数,char占8位。对指针ptr赋值为0x3751C0,若在执行一条“ptr++;”语句,此时ptr的值为多少?

int fun(int a)

{

int b=0;

static int c=3;

b++;

c++;

return (a+b+c);

}

void main()

{

Int a=2

int I;

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

printf(“%d”,fun(a);

}

void fun()

{

unsigned char size;

int a;

size=100;

while(size-- >=0) //循环多少次?

{

A+=size;

}

}

以下答案似乎有点小问题

嵌入式系统程序设计中,变量的定义至关重要,用变量a 给出下面的定义

a) 一个整型数;

b)一个指向整型数的指针;

c)一个指向指针的的指针,它指向的指针是指向一个整型数;

d)一个有10个整型数的数组;

e) 一个有10个指针的数组,该指针是指向一个整型数的;

f) 一个指向有10个整型数数组的指针;

g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数;

h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数;

a) int a; // An integer

b) int *a; // A pointer to an integer

c) int **a; // A pointer to a pointer to an integer

d) int a[10]; // An array of 10 integers

e) int *a[10]; // An array of 10 pointers to integers

f) int (*a)[10]; // A pointer to an array of 10 integers

g) int (*a)(int); // A pointer to a function a that takes an integer argument and returns an integer

h) int (*a[10])(int); // An array of 10 pointers to functions that take an integer argument and return an integer

试说明在嵌入式系统开发中,如何提高代码的可移植性

答:1)软件设计上采用层次设计和模块化设计。2)在体系结构上,在操作系统和应用程序之间引入一个虚拟机层,把一些通用的共性的操作系统API接口函数封装起来。3)将不可移植的部分局域化,集中在某个特定的文件中。4)在数据类型上,尽量不适用C语言的数据类型。

阅读以下说明和 C 语言代码,回答问题 1 至问题 3。

【说明】

有两个任务(编号分别为 0 和 1)需要访问同一个共享资源,为了解决竞争条件(race condition)的问题,我们需要实现一种互斥机制,使得在任何时刻只能有一个任务访问该共享资源。代码一给出了一种实现方法。

【代码一】

int flag[2]; /* flag 数组,初始化为 FALSE */

Enter_Critical_Section(int my_task_id, int other_task_id)

{

while (flag[other_task_id] == TRUE); /* 空循环语句 */

flag[my_task_id] = TRUE;

}

Exit_Critical_Section(int my_task_id, int other_task_id)

{

flag[my_task_id] = FALSE;

}

当一个任务要访问临界资源时,就可以调用代码一给出的这两个函数。代码二给出了任务0 的一个例子。【代码二】

Enter_Critical_Section(0, 1);

.... 使用这个资源 .....

Exit_Critical_Section(0, 1);

..... 做其他的事情 ..

【问题 1】什么是临界资源(critical resource)?请简要说明。

在多道程序系统中各进程可以共享各类资源但有些资源一次只能供一个进程使用。需要互斥访问的资源称为临界资源(critical resource)如打印机、共享变量和表格等。

【问题2】代码一所示的方法能够实现共享资源的互斥访问吗?请用举例说明。

【问题3】代码一采用了一种繁忙等待(busy waiting)的策略,这种策略的缺点是什么?请简要说明。

实验内容:

(1)设计一个具有两个参数的子函数,子函数将第一个指针参数中的各个元素进行从小到大排序,第二个参数传递的是第一个参数的元素个数;

(2)f2.c:设计一个具有两个参数的子函数,子函数将2参数值互换; (3)实现主函数,主函数中创建2个线程,线程1定义一个

10元素的数组,使用文件f1中定义的函数对数组排序并将结果输出;线程2定义2个整形变量,使用文件f2中定义的函数将两变量的值进行互换并将结果输出;

#include

#include

#include

#include

#include

int main(int argc, char **argv)

{

char table[10]={2,3,6,8,9,1,4,0,7,5};

unsigned int p1=30,p2=50;

char i=0;

char pid;

pid=fork();//create a process

if(pid==0){

NumberSort(table,10);

printf("After sort number");

for(i=0;i<10;i++){

printf("%d",table[i]);

}

printf("\n");

exit(0);

}

else if(pid>0)

{ pid=fork(); //create other process

if(pid==0){

printf("before exchange The Number p1,p2 is %d,%d.\n",p1,p2);

ExchangeNumber(&p1,&p2);

printf("after exchange The Number p1,p2 is %d,%d.\n",p1,p2);

}

}

}

子程序代码如下:

f1.c

#include

#include

void NumberSort(char *parg,char num)

{

char j,i,k;

char Value=0;

for(j=0;j

k=j;

for(i=j+1;i

if(*(parg+k)>*(parg+i)) k=i;

if(j!=k)

{

Value=*(parg+j);

*(parg+j)=*(parg+k);

*(parg+k)=Value;

k=j;

}

}

}

}

f2.c

# include

#include

void ExchangeNumber(unsigned int

*parg1,unsigned int *parg2)

{

unsigned int parg;

parg=*parg1;

*parg1=*parg2;

*parg2=parg;

}

实验内容:

(1) 设计一个具有一个整形参数的子函数,取出参数的低16位并且把低8位置一,将结果返回;

(2) f2.c:设计一个具有两个参数的子函数,子函数将2参数值互换;

(3)实现主函数,主函数中创建2个进程,进程1定义一个整形变量,调用文件f1中定义的函数求取结果并将结果和进程ID输出;进程2定义2个整形变量,调用文件f2中定义的函数将两变量的值进行互换并将结果和进程ID输出;

程序代码:

#include

#include

#include

#include

#include

int main(int argc, char **argv)

{

unsigned int FinalNumber,p=0xffff5689;

unsigned int p1=30,p2=50;

char i=0;

char pid;

pid=fork();//create a process

if(pid==0){

FinalNumber=NumberExtract(p);

printf("before extract the number is %x \n",p);

printf("after extract the number is %x \n",FinalNumber);

printf("I'm child1 process,my pid is %d.\n",getpid());

}

else if(pid>0)

{ printf("I'm father process,my pid is %d.\n",getpid());

pid=fork(); //create other process

if(pid==0){

printf("before exchange The Number p1,p2 is %d,%d.\n",p1,p2);

ExchangeNumber(&p1,&p2);

printf("after exchange The Number p1,p2 is %d,%d.\n",p1,p2);

printf("I'm child2 process,my pid is %d.\n",getpid());

}else if(pid>0)

printf("I'm father process,my pid is %d.\n",getpid());

else

printf("fork() error.\n");

}

else printf("fork() error.\n");}

子程序代码如下:

f1.c

#include

#include

unsigned int NumberExtract(unsigned int parg)

{

unsigned int FinalValue;

FinalValue=(parg&0x0000ffff)|0x00ff;

return FinalValue;

}

f2.c

#include

#include

void ExchangeNumber(unsigned int *parg1,unsigned int *parg2)

{

unsigned int parg;

parg=*parg1;

*parg1=*parg2;

*parg2=parg;

}

实验内容

1、设计一个具有两个参数的子函数,子函数将第一个指针参数中的各个元素进行从小到大排序,第二个参数传递的是第一个参数的元素个数;

2、设计一个具有两个参数的子函数,子函数将第一个指针参数中的各个元素进行求和运算,第二个参数传递的是第一个参数的元素个数;

3、实现主函数,主函数中创建2 个进程,进程1 定义一个10 元素的数组,调用文件f1 中定义的函数对数组排序并将结果和进程ID 输出;进程 2 定义一个10 个元素的数组,调用文件f2 中定义的函数对数组进行求和并将结果和进程ID 输出;

实验程序

1、F1.c

#include

#include

void NumberSort(char *parg,char num)

{

char j,i,k;

char Value=0;

for(j=0;j

k=j;

for(i=j+1;i

if(*(parg+k)>*(parg+i)) k=i;

if(j!=k)

{

Value=*(parg+j);

*(parg+j)=*(parg+k);

*(parg+k)=Value;

k=j;

}

}

}

}

2、F2.c

#include

#include

Int NumberSum(char *parg,char num)

{

char i=0;

int sum=0;

for(i=0;i

sum=sum+*(parg+i);

}

return sum;

}

3、Main.c

#include

#include

#include

#include

#include

int main(int argc, char **argv)

{

char table[10]={2,3,6,8,9,1,4,0,7,5};

int sumvalue;

char i=0;

char pid;

pid=fork();//create a process

if(pid==0){

NumberSort(table,10);

printf("After sort number");

for(i=0;i<10;i++){

printf("%d",table[i]);

}

printf("\n");

printf("I'm child1 process,my pid is %d.\n",getpid());

exit(0);

}

else if(pid>0)

{

printf("I'm father process,my pid is %d.\n",getpid());

pid=fork(); //create other process

if(pid==0){

sumvalue=NumberSum(table,10);

printf("The Number sum is %d.\n",sumvalue);

printf("I'm child2 process,my pid is %d.\n",getpid());

}

else if(pid>0)

printf("I'm is %d.\n",getpid());

else

printf("fork() error.\n");

}

else printf("fork() error.\n");

}

期末试题——嵌入式ARM(A卷)

说明:本试卷共四大题,试卷满分100分,考试时间120分钟。

一、填空题(请将答案填入题后括号中):共10小题,每小题2分,满分20分。

1、一般而言,嵌入式系统的构架可以分为4个部分:分别是(处理器)、存储器、输入/输

出和软件,一般软件亦分为操作系统相关和(应用软件)两个主要部分。

2、根据嵌入式系统使用的微处理器,可以将嵌入式系统分为嵌入式微控制器,(嵌入式DSP处理器),(嵌入式微处理器)以及片上系统。

3、操作系统是联接硬件与应用程序的系统程序,其基本功能有(进程管理)、进程间通信、(内存管理)、I/O资源管理。

4、从嵌入式操作系统特点可以将嵌入式操作系统分为(实时操作系统)和分时操作系统,其中实时系统亦可分为(硬实时系统)和软实时系统。

5、内核负责管理各个任务,或者为每个任务分配CPU时间,并且负责任务之间的(通信),内核的基本服务是(任务切换)。

6、嵌入式开发一般采用(宿主机/目标机方式)方式,其中宿主机一般是指( pc机或者台式机)。

7、哈佛体系结构数据空间和地址空间(分开),ARM7TDMI采用(冯诺依曼体系)的内核架构。

8. ARM7TDMI采用( 3 )级流水线结构,ARM920TDMI采用( 5 )级流水线。

9 .按操作系统的分类可知,Dos操作系统属于顺序执行操作系统,Unix操作系统属于(分时)操作系统,VxWorks属于(实时嵌入式)操作系统。

10、ARM7TDMI中,T表示支持16位Thumb指令集,D表示(在片可调试),M表示内嵌乘法器Multiplier,I表示(嵌入式ICE ),支持在线断点和调试。

二、选择题(请将答案填入题后括号中):共10小题,每小题2分,满分20分。

1、要使CPU能够正常工作,下列哪个条件不是处理器必须满足的。( D )

(A) 处理器的编译器能够产生可重入代码(B)在程序中可以找开或者关闭中断

(C) 处理器支持中断,并且能产生定时中断(D)有大量的存储空间

2、下面哪种操作系统最方便移植到嵌入式设备中。( D )

(A) DOS (B)unix (C) Windows xp (D)linux

3、下面哪个选项不是SUB设备的特点。( B )

(A) 串行通信方式(B)不可热拨插

(C) 分HOST、DEVICE和HUB (D)通信速率比RS232快

4、下面哪种嵌入式操作系统很少用于手机终端设备上。( C )

(A) Symbian (B)WinCE (C) uc/os (D)linux

5、以下哪项关于SRAM和DRAM的区别是不对。( A )

(A) SRAM比DRAM慢(B)SRAM比DRAM耗电多

(C) DRAM存储密度比SRAM高得多(D)DRM需要周期性刷新

6、uc/os操作系统不包含以下哪几种状态。( C )

(A) 运行(B)挂起 (C) 退出(D)休眠

7、0x07&0x11的运算结果是。( A )

(A) 0x01 (B)0x11 (C) 0x17 (D)0x07

8、以下哪种方式不是uc/os操作系统中任务之间通信方式。( C )

(A) 信号量(B)消息队列 (C) 邮件(D)邮箱

9、以下哪种方式不是文件系统的格式。( B )

(A) FAT (B)DOS (C) NTFS (D)Ext

10、在将uc/os操作系统移植到ARM处理器上时,以下哪些文件不需要修改。( A )

(A) OS_CORE.C (B)include.h (C) OS_CPU.H (D)OSTaskInit

三、判断题:共5小题,每小题2分,满分10分。

1、所有的电子设备都属于嵌入式设备。(×)

2、冯诺依曼体系将被哈佛总线所取代。(×)

3、嵌入式linux操作系统属于免费的操作系统。(√)

4、移植操作系统时需要修改操作系统中与处理器直接相关的程序。(√)

5、USB2.0的最大通信速率为12M/S。(×)

简答题:共2小题,每小题10分,满分20分。

1、根据嵌入式系统的特点,写出嵌入式系统的定义。

以应用为中心、以计算机技术为基础、软硬件可裁减、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

2、试分析实时操作系统的工作状态特点及相互之间的转换。

运行:获得CPU的控制权;

就绪:进入任务等待队列,通过调度中转为运行状态;

挂起:任务发生阻塞,称出任务等待队列,等待系统实时事件的发生而被唤醒,从而转为就绪或者运行;休眠:任务完成或者错误等原因被清除的任务,也可以认为是系统中不存在的任务。

多任务

四、分析计算题:共2小题,每小题10分,满分20分。

1、试写抢占式和非抢占式的区别。

执行的过程中对中断处理方式不一样,抢先式:某一中断执行完成后,如果有更高优先级的任务处于就绪状态,将执行更高优先级任务,而非抢占式不一样,一个任务只有主动放弃CPU的控制权,其它任务才能够获得CPU的控制权。

2、从嵌入式系统底层到上层应用软件,试分析嵌入式计算系统的组成主要分为哪几个部分,并写出各部分所完成的功能。

(1)硬件层;(2)中间层(嵌入式系统初始化,硬件相关的驱动程序);(3)软件层(操作系统、文件系统、GUI,网络及通用组件);(4)功能层。

五、专业名词解释(写出以下英文简写对应的中文名称):共5小题,每小题2分,满分10分。

(1)RTOS(实时操作系统);(2)CISC(复杂指令集);

(3)Kernel(内核) (4)Scheduler(调度)

(5)non-preemptive(非抢先式)

《嵌入式系统与应用》期末考试题A卷

班级:学号:姓名:

一、名词解释:(每题5分)

1、什么是嵌入式系统

答:嵌入试系统以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于对应用系统的功能,可靠性,成本,体积,功耗有严格要求的专用计算机系统。

2、Samba服务器及其功能

答:samba是在Linux/UNIX系统上实现SMB协议的一个免费软件,以实现文件共享和打印机服务共享,工作原理与windows的网上邻居很类似。

3、vi有哪3种工作模式,之间如何切换,其作用分别是什么?

答:1.命令行模式:用户在用vi编辑文件时,最初进入的为一般模式。在该模式中可以通过上下移动光标进行“删除字符”或整行删除“等操作,也可以进行”复制“,“粘贴”等操作,但无法编辑文字。

2.插入模式:在该模式下,用户才能进行文字编辑输入,用户可按ESC键回到命令行模式。

3.底行模式:在该模式下,光标位于屏幕的底行。用户可以进行文件保存或退出操作,也可以设置编辑环境,如何找字符串,列出行号等。

4、ARM11的两种工作状态分别是什么?

答:第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令。

第二种为THUMB状态,此时处理器执行16位的半字符对齐THUMB指令。

二、ARM指令注释:(每题10分)

1、逐行注释并用C语言代码实现以下指令的功能:

CMP R0,R1 ;比较指令 R0减去R1

ADDHI R0,R0,#1 ;加法指令

ADDLS R1,R1,#1 ;加法指令

C语言代码:

2、逐行注释并用C语言代码实现以下指令的功能:

CMP R0,#10 ;比较R0是否为10

CMPNE R1,#20 ;若不为10,比较R1是否为20,如果R0=0,跳过下面这两句

ADDNE R0,R0,R1 ;若R0不为10且R1为1,执行R2=R0+R1,否则继续往下执行

C语言代码:

三、操作题:(每题5分,以截图的方式显示操作过程)

1、在linux系统中创建user用户,并进入/home目录用ls命令进行查看。

# cd /home

#ls

ly

#useradd mihu

#ls

ly mihu

2、给user用户设置密码为123。

# passwd user

Changing password for user user.

123

BAD PASSWORD: it does not contain enough DIFFERENT characters

Retype new 123 password:

Password: all authentication tokens updated successfully.

3、在/home目录下创建test文件,并用ls命令查看是否创建成功。

#ls

ly mihu

#mkdir /home/test

#ls

ly mihu test

4、设置test文件的权限为:文件所有者可读、可写、可执行,文件所有者同组的用户可读、可执行,其他用户可执行。并用ls –l命令查看所设置的权限。

#11

总计 0

-rw-rw-r- 1 root root 0 07-16 06:04 hello.c

#chmod 761 hello.c

#11

总计0

-rwxrw-x 1 root root 0 07-16 06:04 hello.c

四、编程题:(每题20分)

1、编写程序实现:倒序输出你输入的正整数。

代码粘贴:

#include

main()

{

int n,s;

printf(“please input a data”);

scanf(“%d”,&n);

printf(“output:”);

while(n!= 0)

{s=n%10;

printf(“%d”,s);

n/=10;

}

printf(“\n”);

}

2、编写简单的shell程序,显示当前的日期和时间。

代码粘贴:

#!/bin/bash

counter=o

For files in `ls -1`

do

if [ -f “$files”]

then ls -1 $files

counter=`expr $counter + 1 `

fi

done

嵌入式复习资料及答案

1.(C)不是常规意义上的嵌入式系统。 A.手机 B.MP3 C.PC机 D.数码相机 2.下面哪个系统不属于嵌入式系统(D)。 A、MP3播放器 B、GPS接收机 C、“银河玉衡”核心路由器 D、“天河一号”计算机系统 3.(A)完全把系统软件和硬件部分隔离开来,从而大大提高了系统的可移植性。 硬件抽象层 B. 驱动映射层 C. 硬件交互层 D. 中间层 1.嵌入式开发一般采用_(交叉)开发方式,其中宿主机一般是指PC。 2.一般而言,嵌入式系统的构架可以分为4个部分:处理器、外围设备、输入/输出和软件,一般软件亦分为(操作系统)和应用软件两个主要部分。 3._(嵌入式微处理器_)是嵌入式系统的核心部件,是控制、辅助系统运行的硬件单元。 判断题: 1.嵌入式系统是看不见的计算机系统,其开发环境和运行环境一致。(错) 2.ARM处理器是典型的CISC体系。(错) 填空题: 1.ARM处理器共有37个寄存器,其中包括_31_个通用寄存器和_6_个状态寄存器。 2.ARM处理其每种模式下都有一组寄存器可用,其中(系统)模式和(用户)模式具有完全一样的寄存器组。 3.寄存器_R13__在ARM指令中常用作堆栈指针。_R14__也称作子程序连接寄存器或连接寄存器LR,当发生中断或异常时,对应的分组寄存器用来保存R15的返回值。 4.寄存器R15用作程序计数器(PC)。该寄存器在ARM状态下,位_【1:0】__为0,位[31:2]用于保存PC;在Thumb状态下,位__【0】_为0,位[31:1]用于保存PC。 5.CPSR可在_系统___运行模式下被访问。每一种运行模式下又都有一个专用的物理状态寄存器,称为__SPSR____。 6.ARM7TDMI采用_三__级流水线结构,ARM920TDMI采用__五__级流水线。 7.A RM微处理器有七种工作模式,它们分为(两类特权模式和非特权模式)。其中用户模式属于(非特权模式)。 8.ARM核有两个指令集,分别是_ARM指令集、Thumb指令集。 9.ARM微处理器复位后,PC(R15)的地址通常是__0X0____。 选择题: 1.下面哪一种工作模式不属于ARM特权模式(A)。 A、用户模式 B、管理模式 C、软中断模式 D、FIQ模式 2.存储一个32位数0x2168465到2000H-2003H四个字节单元中,若以大端模式存储,则2000H存储单元内容为(D) A、0x21 B、0x68 C、0x65 D、0x02 3.寄存器R13除了可以做通用寄存器外,还可以做(C) A、程序计数器 B、链接寄存器 C、栈指针寄存器 D、基址寄存器 4.寄存器R15除可做通用寄存器外,还可以做(A) A、程序计数器 B、链接寄存器 C、栈指针寄存器 D、基址寄存器 5.下列CPSR寄存器标志位的作用说法错误的是(D)

嵌入式系统知识点

嵌入式系统知识点 1.什么是嵌入式系统。 2.嵌入式系统三要素 3.嵌入式处理器的类型 4.大端存储格式的规则是______;小端存储格式的规则是。 5.ARM是______的处理器,有_____个工作状态,工作在_____状态时,执行的是32位指令集,工作在_____状态时,执行的是16位指令集。_____指令集是_____指令集的子集。 6.ARM有_____种工作模式。它们的名称和缩写分别是:()。其中特权模式是指:(),异常模式又是指:()。当前工作模式状态及设置是由_____寄存器中的M[4:0]五位决定的,每种模式对应的M[4:0]值是:()。 7.ARM的异常中断有_____种,它们的名称是:(),对应的中断入口地址是:(),默认的优先级是:()。 8.ARM核内共有_____寄存器,分_____、_____两类。按工作模式不同可分_____个寄存器组。在ARM状态时的寄存器有:所有模式下均能访问的寄存器是();除()模式外均能访问寄存器R0-R12,()模式只使用自己的专用寄存器R8-R12;在()模式中,每个模式均有自己的R13、R14、SPSR 寄存器。其中R13是作_____寄存器共_____个、R14是作_____寄存器共_____个、R15是作_____寄存器共_____个。在Thumb状态下的寄存器:通用寄存器是_____,有_____组;SP堆栈指针寄存器共有_____个,LR_____寄存器共有_____个;PC_____寄存器有_____个,CPSR_____寄存器有_____个,SPSR_____寄存器有_____个。 9.ARM7系列是_____级流水线,即_____、_____、_____。程序计数器R15(PC)总是指向取指的指令,因此PC总是指向第_____条指令。 对于ARM指令有: PC值=当前程序执行位置+_____; 对于Thumb指令有: PC值=当前程序执行位置+_____。 10.ARM的寻址方式有七种,它们是:()。 11.LDR指令 LDR R4, STSRT ;将存储地址为START的字数据读入R4

嵌入式2018年期末考试选择题.doc

单已霆一侈.习密 下面哪个咨.仗履孑嵌入式务.仗(D )o A、"夭何一号"金:K机系弦 B、IBMX200宅拓本电喧 C、联抱S10 L R本 D、Iphone多机 自嵌入式咨?仗的存僦Q徇中,存取速度最修的是(B ) o A、伪存 B、Cache Q、 Flash D、■存器向 下面(B )肘俊彳符合嵌入式春(十务核舫或。 A、宏时俊 B、彳初定韧 C、微型Q D、名纾植 ( A )宓全把务.貌就件行瘦仔都分隔篇暮来,从而;t大惺宿3专秘的可修孩佐。 A、延件抽哀龙 B、契斯碘射龙 C、瘦件瓮互/名 D、中向龙 在ARM Linux多.筒中,中断处理衿序笆入C代膨以居,ARM 的处孑(A )M 6模式。A、起偈?用户(SVC) B、中断(IRQ) C、任速中所(IRQ ) D、社笆人中昕之访的业右苟关2 自握含多 .乾的各村导铤方式中,获取蔑。浆最修的方式妥(B )o A、五谑导勾: B、立卯导以: C、窃存器导址 D、向搓导徒 在龙兮奏弦的各神导垃方式中,若藉H散的地垃包舍自充兮中,粉属孑( A )方式。A、五搓导址B、立即导必 Q、容存器导傲D、向谑导址 在笏存器向谑导徒方式中,水定窃存器中有狭的妥(B )o A、搏《散 B、修H敦函徒 C、月卷外徒 D、的址佻籍藩 向CISC如此,下而哪一招彳房孑RISC地理器的典母(D ) o

A、采用富定&度的佬合格式,握含痕餐、简单、基本寻伍:方式布2~3神

£0X0 'Q AO K 9 LLXO 、g LOXO 、V 代汨1)¥期卯本、CI (JOqV)¥ 筋:f 象、。 L 乙 EV 39 Z.8 、。 OH'idSBCir 导邪 OU c ids 多邪 'V 冬导郭纱ox 修导乎穿舞毋引衅 °( W )晋米岩茧早分LLXO 以.LXO (J3SC ) ¥ 耕 4 街 V v °¥爵£)£纱琵狄R 琴勇衫争身K @*¥爵(v )*2?'中¥辫林茗维繇私DiAfHV 1 V 貉鸟修再吝'Q 好身修的郭导 '。 器乡修葬翳'a 籍穿杪iz 毂'V ° ( O )别刁‘*警乡修街研列£^£LH 繇切修 OH FLH 、。 GLH "LH V O GLH 沱LH V H 切LH ‘08 'V (9)。。邪舞分杪切特。少琵私N 必纱琵妙修一 W)色刃耕Od 妙幻*街 级印纱 坐堵乡妙貉私存皋辛何斯吉¥£、 倒果'貉乡&群员必£)貉乡&一’本呼咨?多*)穴己v 孑 L8 39 07 L 乙 V O 8A 9S VE SL 'V ° ( 9 ) 晋%馈}纱段财本乡尊9舞肄澎岁土琵潞龄QXV 孑俩‘£辛¥斜躬,厂街8Z.99VESLX0辞*花 乙3 +08 =(l ? £H)?Q (L ? 乙H) +0H =£U e O £U + (L 〉〉乙8 )= QU *S (L ? £U) + 乙H = OH *V (V )晋国纽粉 “L#rsr ,乙B'OB QQV,,兮燮缪卫 W^dV 勇窍切别但彦坪嫌弑书OSIH 'Q 杪於缈繇私妙印⑥'孝葬粉饥 #郭罗群K '彩将少⑥窍K 案物乡/够学%不'以都/ 倒纺身软倨'3导邪粉导郡券、。 留£粉订封4 '乃旦砂俱陶弈衫‘¥多再幺咚券导郭石剃、已

嵌入式系统复习资料

第1章嵌入式系统导论 1.嵌入式系统的概念: 是以现代计算机技术为基础,以应用为中心,可以根据系统或用户需求(功能、可靠性、成本、体积、功耗、环境等),灵活裁剪软硬件模块的专用计算机系统。 2.嵌入式系统的分类及分类依据: 嵌入式系统由硬件和软件两大部分组成,用于实现对其他设备的控制、监视或管理等功能。前者是整个系统的物理基础,它提供软件运行平台和通信接口;后者实际控制系统的运行。 硬件:嵌入式微处理器、外围电路、外围硬件设备。 软件:BootLoader 、嵌入式操作系统、用户的应用程序等。 3.几种典型嵌入式操作系统:(1) uC/OS II (2)uCLinux (3)Windows CE (4)嵌入式Linux 等 4.任务调度: 任务的调度有三种方式:可抢占式、不可抢占式和时间片轮转。 【不可抢占式调度是指一个任务一旦获得CPU就独占其运行,除非由于某种原因使它决定放弃CPU的使用权; 可抢占式调度是基于任务优先级的,当前正在运行的任务可以随时让位给优先级更高的处于就绪态的其他任务; 当两个或两个以上任务有同样的优先级时,不同任务轮转使用CPU,直到系统分配的CPU时间片用完,这就是时间片轮转调度。】 目前,大多数嵌入式操作系统对不同优先级的任务采用基于优先级的可抢占式调度法,对相同优先级的任务则采用时间片轮转调度法。 5.针对有内存管理单元(MMU,Memory Management Unit)的处理器而设计的一些桌面操作系统,如Windows、Linux,使用了虚拟存储器的概念。 6.计算机的发展: 冯诺依曼架构:将指令和数据存放在同一存储空间中,统一编址,指令和数据通过同一总线访问。 哈佛结构(冯诺依曼架构的扩展):主要特点是程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编制、独立访问。CortexM3

嵌入式系统原理与接口复习要点及思考题答案(计)

嵌入式系统原理与接口复习要点及思考题答案(计)

各位:根据掌握要点认真复习,后面附有作业题答案。 第1章掌握要点 1.1.1节嵌入式系统的概念 1.1.3节嵌入式系统的特点 1.3节嵌入式处理器 1.4节嵌入式系统的组成(看课件,有补充的内容) 补:1.嵌入式系统开发过程? 2.嵌入式系统调试常用的基本方法 3.交叉编译和交叉调试 4.嵌入式操作系统 第2章掌握要点 2.1节计算机体系结构分类 2.3.1节 ARM和Thumb状态 2.3.2节 RISC技术 2.3.3节流水线技术 2.4.1 ARM存储系统 2.4.2 Cache:写通、写回、读操作分配cache、写操作分配cache、工作原理、地址映像 2.4.3节 ARM存储系统 补充: (见课件) 1. ARM简介:ARM的命名方式、5种变形

2.理解片内Flash的3种编程方法。 3.理解ARM7芯片存储器存储空间分布。(8个bank,每个bank32MB)第3章掌握要点 3.1节ARM编程模式:处理器模式、处理器工作状态、寄存器组织、 异常中断 3.2节指令格式和寻址方式 3.3节指令系统:掌握和熟练应用课件所讲的指令、可编程序段 第5章掌握要点 5.1节键盘接口:行扫描法原理、掌握编写驱动程序 5.2节 LED显示器接口:理解工作原理,掌握编写驱动程序 5.5.1节 UART异步串行接口:异步通信格式、接收的4种错误类型、初始化、发送程序、接收程序 第1章作业题答案: 1.什么是嵌入式系统? ?第一种,根据IEEE(国际电气和电子工程师协会)的定义:嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置”(原文为devices used to control, monitor, or assist the operation of equipment, machinery or plants)。 ?第二种,嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求的专 用计算机系统。

整理版 嵌入式 题目

3、RISC的英文全称是Reduced Instruction Set Computer,中文是精简指令集计算机。特点是所有指 令的格式都是一致的,所有指令的指令周期也是相同的,并且采用流水线技术。在中高档服务器中采用 RISC指令的CPU主要有Compaq(康柏,即新惠普)公司的Alpha、HP公司的PA-RISC、IBM公司的PowerPC、 MIPS公司的MIPS和SUN公司的Sparc。 简答 1、简述ARM的7种模式及寄存器划分,如此划分的优点。 1、用户模式(usr) 2、快速中断模式(fiq) 3、中断模式(irq) 4、管理模式(svc):操作系统使用的保护模式 5、系统模式(sys):运行具有特权的操作系统任务 6、数据访问终止模式(abt):数据或指令预取终止时进入该模式 7、未定义指令终止模式(und):未定义的指令执行时进入该模式 ARM有31个通用的32位寄存器,6个程序状态寄存器,共分为7组,有些寄存器是所有工作模式共用的,还有一些寄存器专属于每一种工作模式 2、 cpsr和spsr寄存器作用,在异常处理时其中的内容是如何变化的? CPSR:程序状态寄存器(current program status register) (当前程序状态寄存器),在任何处理器模式下被访问。它包含了条件标志位、中断禁止位、当前处理器模式标志以及其他的一些控制和状态位。CPSR在用户级编程时用于存储条件码。SPSR:程序状态保存寄存器(saved program status register),每一种处理器模式下都有一个状态寄存器SPSR,SPSR用于保存CPSR的状态,以便异常返回后恢复异常发生时的工作状态。当特定的异常中断发生时,这个寄存器用于存放当前程序状态寄存器的内容。在异常中断退出时,可以用SPSR来恢复CPSR。由于用户模式和系统模式不是异常中断模式,所以他没有SPSR。当用户在用户模式或系统模式访问SPSR,将产生不可预知的后果。 3、简述冯?诺依曼结构与哈佛结构. 冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结 构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度 相同,如英特尔公司的8086中央处理器的程序指令和数据都是16位宽。 哈佛结构是一种存储器结构。使用哈佛结构的处理器有:A VR、ARM9、ARM10、ARM11等 冯诺依曼结构是一种程序指令存储器和数据存储器合并在一起的存储器结构。 哈佛体系结构是一种将程序指令存储和数据存储分开的存储器结构。 Intel处理器采用冯诺依曼结构,ARM属于哈佛结构处理器。 4、ARM状态和THUMB状态有什么不同?写出相互切换程序。 ARM状态此时处理器执行32位的字对齐的ARM指令,Thumb状态此时处理器执行16位的,半字对齐的THUMB指令。切换程序:从ARM到Thumb: LDR R0,=lable+1 BX R0 从ARM到Thumb: LDR R0,=lable BX R0 5. 存储器映射作用。 通过赋予每个任务不同的虚拟–物理地址转换映射,支持不同任务之间的保护。地址转换函数在每一个任务中定义,在一个任务中的虚拟地址空间映射到物理内存的一个部分,而另一个任务的虚拟地址空间映射到物理存储器中的另外区域。就是把一个地址连接到另一个地址。 6. WATCHDOG的作用及实现机理。 在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片 7. 交叉编译。

南京工程学院嵌入式系统复习提纲

嵌入式系统复习 选择10’;填空20’;判断10’;5个简答30’;3大题:指令使用(LDMIA),组变量表变量; 1、ARM的寄存器 P32 通用寄存器:包括程序计数器PC、堆栈指针、其他通用寄存器 (1)不分组寄存器R0~R7:每种状态下都统一,注意不同模式下使用时的数据保护; (2)分组寄存器R8~R14: R8~R14为分组寄存器,对应的物理寄存器取决于当前的处理器模式; R8~R12有两个分组的物理寄存器。除FIQ模式之外的所有模式(R8~R12),FIQ模式 (R8_fiq~R12_fiq),有利于加快FIQ的处理速度; R13、R14分别有6个分组的物理寄存器。用于用户和系统描述,其余五组用于五种异常模式; R13堆栈指针(SP),要初始化,指向该异常向量专用的栈地址;保护现场; R14子程序链接寄存器(LR),功能:保存子程序返回地、设置为异常返回地址其他情况下R14 可作为通用寄存器使用。 (3)程序计数器R15(PC),指向当前指令的下两条指令的地址。 程序状态寄存器:任何模式下被访问,包含条件标志位、中断使能位、当前处理器模式标志、其他控制和状态位。 (1)标志域: 条件标志位:N符号、Z结果为0、C进位或借位、V溢出; Q标志位:用于指示增强的DSP指令是否发生溢出; J标志位:Jazelle状态。 (2)控制域:CPSR的低8位称为控制位,异常时变化。 运行模式控制位M[4:0]:控制处理器模式; 中断禁止位I、F:I=1时,禁止IRQ中断;F=1禁止FIQ中断; T控制位:说明指令是ARM指令还是Thumb指令。 2、进程状态变换图 P178 3、C语言参数传递的是数组,实质传递的是什么P135 地址;(好像是,我蒙的) 4、堆栈的增长方向(两种),满堆栈和空堆栈 P52 堆栈:数据结构,先进后出堆栈指针总指向栈顶。 (按生成方式)递增堆栈:低地址向高地址生成; 递减堆栈:高地址向低地址生成; (按指向位置)满堆栈:当堆栈指针指向最后压入堆栈的数据时; 空堆栈:当堆栈指针指向下一个将要放入数据的空位置时。 5、内存容量和地址总线、数据总线的关系。 存储器的容量= 2M × N M=地址线根数 N=数据线根数 6、操作系统的常用调度算法 P178 (翻书看具体什么意思) 最短周期优先SBF、优先级法、轮转法、多队列轮转法和多级反馈队列法、实时调度算法。

嵌入式习题复习资料

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

嵌入式系统原理与应用复习知识点总结

第一章 1、嵌入式系统的应用范围:军事国防、消费电子、信息家电、网络通信、工业 控制。 2、嵌入式系统定义:嵌入式系统是以应用为中心,以计算机技术为基础,软件 与硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专 用计算机系统。(嵌入式的三要素:嵌入型、专用性与计算机系统)。 3、嵌入式系统的特点:1)专用性强;2)实时约束;3)RTOS;4)高可靠性;5) 低功耗;6)专用的开发工具和开发环境;7)系统精简; 4、嵌入式系统的组成: (1)处理器:MCU、MPU、DSP、SOC; (2)外围接口及设备:存储器、通信接口、I/O 接口、输入输出设备、电源等;(3)嵌入式操作系统:windows CE、UCLinux、Vxworks、UC/OS; (4)应用软件:Bootloader 5、嵌入式系统的硬件:嵌入式微处理器(MCU、MPU、DSP、SOC),外围电路, 外部设备; 嵌入式系统的软件:无操作系统(NOSES),小型操作系统软件(SOSE)S,大型 操作系统软件(LOSES)注:ARM 处理器三大部件:ALU、控制器、寄存器。 6、嵌入式处理器特点:(1)实时多任务;(2)结构可扩展;(3)很强的存储区 保护功能;(4)低功耗; 7、DSP处理器两种工作方式:(1)经过单片机的DSP可单独构成处理器;(2) 作为协处理器,具有单片机功能和数字处理功能; 第二章 1、IP核分类:软核、固核、硬核; 2、ARM 处理器系列:(1)ARM7系列(三级流水,thumb 指令集,ARM7TDMI); (2)ARM9系列(DSP处理能力,ARM920T)(3)ARM/OE(增强DSP)(4)SecurCone 系列(提供解密安全方案);(5)StrongARM系列(Zntle 产权);(6)XScale系列(Intel 产权);(7)Cortex 系列(A:性能密集型;R:要求实时性;M:要求低 成本) 3、ARM 系列的变量后缀:(1)T:thumb 指令集;(2)D:JTAG调试器;(3)快

嵌入式考试选择题共六十个

嵌入式考试选择题(共六十个) 二.选择题(分数=1*60) 1.对一个字,存储时先存放低字节,再存放高字节(即低字节占低地址,高字节占高地址)。 则该种存储格式为__A__________ A,小端方式 B,大端方式 C,低端方式 D,高端方式 2.ARM公司是专门从事___B________ A,基于RISC技术芯片设计开发 B,ARM芯片生产 C,软件设计 D,ARM芯片销售 3.哪个不是ARM微处理器的特点_____D_______ A,体积小,低功耗,低成本,高性能 B,大多数数据操作都在寄存器中完成 C,寻址方式灵活简单,执行效率高 D,指令长度不固定 4.ARM微处理器为_____________C____ A, 16位RISC架构 B, 32位CISC架构 C, 32位RISC架构 D, 64位RISC架构 5.ARM7系列微处理器是_____A______ A, 三级流水线结构 B, 四级流水线结构 C, 三级流水线结构 D, 三级流水线结构 6.ARM9系列微处理器是________C_____ A, 三级流水线结构 B, 四级流水线结构 C, 五级流水线结构 D, 三级流水线结构 7.对于ARM7TDMI系列微处理器,下列叙述哪个是错误的__D___ A, 支持片上Debug B, 支持压缩指令集Thumb C, 内嵌硬件乘法器 D, 嵌入式ICE,但不支持片上断点和调试点

8.下列叙述哪个是错误的___B___ A, ARM指令为32位的长度,Thumb指令为16位长度 B,Thumb代码与等价的ARM代码相比较,用ARM指令要比Thumb指令节省30%-40% 以上的存储空间 C, 使用Thumb代码的系统,其功耗要低 D, Thumb指令的密度高 9.要使用WinCE或标准Linux嵌入式操作系统,ARM必须带有____A______功能 A MMU B MCU C MMC D MUM 10.ARM处理器支持以下______D___数据类型 A, 8位有符号和无符号字节 B, 16位有符号和无符号字节 C, 32位有符号和无符号字节 D, A,B,C都可以 11.在ARM体系结构中,字的长度为_______B_____位 A 16位 B 32位 C 64位 D 128位 12.嵌入式操作系统使用的保护模式是在ARM的___C_______模式下工作 A 系统模式 B 禁止模式 C 管理模式 D 用户模式 13.ARM处理器正常的程序执行状态是在___D________模式下 A 系统模式 B 禁止模式 C 管理模式 D 用户模式 14.可以通过____B______异常中断机制仿真浮点向量运算 A 指令预取中止 B 未定义的指令 C 软件中断(SWI) D 数据访问中止 15.在ARM状体下,异常IRQ,FIQ,预取中止的返回,使用的语句是___B______ A MOV PC,R14 B SUBS PC,R14,#4 C SUBS PC,R14,#8 D SUBS PC,R14#1 16.在所有工作模式下,___A_____都指向同一个物理寄存器,即各模式共享 A R0-R7 B R0-R12

嵌入式系统原理与设计知识点整理

第一章嵌入式处理器 1嵌入式系统的概念组成: 定义:以应用为主,以计算机技术为基础,软硬件可裁剪,满足系统对功能、性能、可靠性、体积和功耗有严格要求的计算机系统。 组成:硬件:处理器、存储器、I / O设备、传感器 软件:①系统软件, ②应用软件。 2.嵌入式处理器分类特点: 分类:①MPU(Micro Processor Unit)微处理器。一块芯片,没有集成外设接口。部主要由运算器,控制器,寄存器组成。 ②MCU(Micro Controller Unit)微控制器(单片机)。一块芯片集成整个计算机系统。 ③EDSP(Embled Digital Signal Processor)数字信号处理器。运算速度快,擅长于大量重复数据处理 ④SOC(System On Chip)偏上系统。一块芯片,部集成了MPU和某一应用常用的功能模块 3.嵌入式处理器与通用计算机处理器的区别: ①嵌入式处理器种类繁多,功能多样 ②嵌入式处理器能力相对较弱,功耗低 ③嵌入式系统提供灵活的地址空间寻址能力 ④嵌入式系统集成了外设接口 4.①哈佛体系结构:指令和数据分开存储————————(嵌入式存储结构) 特征:在同一机器周期指令和数据同时传输 ②·诺依曼体系结构:指令和数据共用一个存储器——(通用式存数结构) 数据存储结构(多字节): 大端方式:低地址存高位;小端方式:高地址存高位 6.ARM指令集命名:V1~V8 (ARMV表示的是指令集)

7.ARM核命名:. 命名规则:ARM{x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{S}{x}——系列(版本) {y}——当数值为“2”时,表示MMU(存管理单元) {z}——当数值为“0”时,表示缓存Cache {T}——支持16位Thumb指令集 {D}——支持片上Debug(调试) {M}——嵌硬件乘法器 {I}——嵌ICE(在线仿真器)——支持片上断点及调试点 {E}——支持DSP指令 {J}——支持Jazzle技术 {F}——支持硬件浮点 {S}——可综合版本 8. JTAG调试接口的概念及作用: ①概念:(Joint Test Action Group)联合测试行动小组→检测PCB和IC芯片标准。(P CB→印刷电路板IC→集成芯片) ②作用(1)硬件基本功能测试读写 (2)软件下载:将运行代码下载到目标机RAM中 (3)软件调试:设置断点和调试点 (4)FLASH烧写:将运行最终代码烧写到FLASH存储器中。 9.GPIO概念:(General Purpose I/O Ports)通用输入/输出接口,即处理器引脚。 10.S3C2410/S3C2440 GPIO引脚 S3C2410共有117个引脚,可分成A——H共8个组,(GPA,GPB,…GPH组) S3C2440共有130个引脚,可分成A——J共9个组,(GPA,GPB,…,GPH,GPJ 组) 11.GPxCON寄存器,GPxDAT寄存器,GpxUP寄存器的功能,各位含义和用法 ①GPxCON寄存器(控制寄存器)——设置引脚功能 →GPACON(A组有23根引脚,一位对应一个引脚,共32位,拿出0~22位,其余没用) (若某一位是)0:(代表该位的引脚是一个)输出引脚 1:地址引脚 →GPBCON——GPH/JCON(用法一致,两位设置一个引脚) 00:输入引脚 01:输出引脚 10:特殊引脚 11:保留不用 GPBCON ②GPxDAT寄存器(数据寄存器)——设置引脚状态及读取引脚状态 若某一位对应的是输出引脚,写此寄存器相应位可令引脚输出高/低电平。 若某一位对应的是输入引脚,读取此寄存器可知相应引脚电平状态。GPBDAT

嵌入式复习资料(精)

第一章嵌入式系统基础知识 1.嵌入式系统基础知识 计算机系统的两个发展分支 通用计算机与嵌入式计算机 嵌入式系统的一般定义、IEEE定义 一般定义:以应用为中心、以计算机技术为基础,软硬件可裁剪,应用系统对功能、可靠性、成本、体积、功耗和应用环境有特殊要求的专用计算机系统。是将应用程序、操作系统和计算机硬件集成在一起的系统。(技术角度) 嵌入式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统。(系统角度) 广义定义:任何一个非计算机的计算系统。 IEEE(国际电气和电子工程师协会)定义:嵌入式系统是“用于控制、监视或者辅助操作的机器、设备或装置”。 嵌入式系统4个组成部分 嵌入式微处理器、外围硬件设备、嵌入式操作系统、用户应用程序 嵌入式系统的三个基本要素 嵌入性、专用性、计算机系统 嵌入式系统的软硬件特点 硬件方面:稳定性、低功耗、体积受限、看门狗电路、成本低、系统资源少 软件方面:实时性、可裁剪性、精简性、人机界面要求不高 嵌入式系统的硬件架构 以嵌入式处理器为中心,配置存储器、I/0设备、通信模块以及电源等必要的辅助接口组成。 嵌入式系统的硬件核心 嵌入式微处理器 嵌入式处理器的种类 嵌入式微处理器、嵌入式微控制器、嵌入式DSP、嵌入式SOC S0C SOC是指在单芯片上集成数字信号处理器、微控制器、存储器、数据转换器、接口电路等电路模块,可以直接实现信号采集、转换、存储、处理等功能。

2.嵌入式系统硬件 嵌入式微处理器的体系结构 冯诺依曼结构:单一的程序和数据总线。 哈佛结构:独立的程序和数据总线。 RISC(精简指令集计算机)的概念及思想精华 1979年,美国加州伯克利分校提出了RISC的概念,基本思想是尽量简化计算机指令功能,只保留那些功能简单,能在一个节拍内执行完成的指令,而把较复杂的功能用一段子程序实现。 RISC思想的精华就是通过简化计算机指令功能、简化计算机指令格式,使指令的平均执行周期减少,同时大量使用通用寄存器来提高计算机的工作主频,提高程序的速度。(通常,RISC计算机的速度是同等CISC计算机的3倍。) ARM概念及ARM处理器系列产品 ARM(Advanced RISC Machines)是一个CPU内核。 ARM7系列(有ARM7TDMI、ARM720T、ARM7EJ-S) ARM9系列(有ARM920T、ATM922T、ARM940T、ARM926EJ-S等) ARM10、11系列 ARM Cortex系列(Cortex-A、Cortex-R、Cortex-M) 3.嵌入式软件及嵌入式操作系统 嵌入式系统软件架构 应用程序、协议线、嵌入式操作系统、板支持包/设备驱动、硬件 嵌入式操作系统的功能和架构 功能:任务调度、进程间通信、文件管理(可选)、中断处理、存储器管理(可选) 架构 Kernel: Memory Mgmt.、I/O System 、Network Stack 、Device Drivers 、File Systems 当前流行的嵌入式操作系统 Palm OS 、Windows CE 、Linux(uClinux) 、RT Linux、uC/OSⅡ、其它商业OS:QNX、VxWorks 等 第二章 CM3体系结构与STM32 1.CM3 Cortex-M3是一个32位处理器内核。CM3采用了哈佛结构,拥有独立的指令总线和数据总线。

嵌入式选择题整理题库

选择题: 1、下面哪一种工作模式不属于特权模式()。 A、用户模式 B、系统模式 C、软中断模式 D、模式 3、920T的工作状态包括()。 A、测试状态和运行状态 B、挂起状态和就绪状态 C、就绪状态和运行状态 D、状态和状态 4、232串口通信中,表示逻辑1的电平是()。 A、0v B、3.3v C、+5v~+15v D、-5v~-15v 5、汇编语句“ R0, R2, R3, 1”的作用是()。 A. R0 = R2 + (R3 << 1) B. R0 =( R2<< 1) + R3 C. R3= R0+ (R2 << 1) D. (R3 << 1)= R0+ R2 6、I2C协议中有几根线() A.1 B.2 C.3 C.4 7、指令“ R0!, {R1, R2, R3, R4}”的寻址方式为()。 A、立即寻址 B、寄存器间接寻址 C、多寄存器寻址 D、堆栈寻址 9、232C串行通信总线的电气特性要求总线信号采用()。 A、正逻辑 B、负逻辑 C、高电平 D、低电平 10、下面哪种操作系统不属于商用操作系统。 ( ) A. B. C. D.

11. 下面哪点不是嵌入式操作系统的特点。 ( ) / 22 A. 内核精简 B. 专用性强 C. 功能强大 D. 高实时性 12. 下面哪种不属于嵌入式系统的调试方法。 ( ) A. 模拟调试 B. 软件调试 C. 调试 D. 单独调试 13. 在嵌入式处理器中,下面哪种中断方式优先级最高。 ( ) A. B. 数据中止 C. D. 14. 和的说法正确的是。 ( ) A. 的读速度比稍慢一些 B. 的写入速度比慢很多 C. 的擦除速度远比的慢 D.大多数写入操作需要先进行擦除操作 15. 下面哪种嵌入式操作系统很少用在手机上。 ( ) A. B. C. D. 16、0x17&0x11的运算结果是。 ( ) A.0x01 B.0x11 C.0x17 D.0x07 17、以下哪种方式不属于文件系统的格式。 ( ) 18、下面哪个特点不属于设备的特点。 ( ) A.串行通信方式 B.不可热拨插 C.分、和 D.通信速率比串口快 19、寄存器中反映处理器状态的位是() 位位位位

嵌入式系统复习题1

一、单项选择题 1、下面关于哈佛结构描述正确的是( A )。 A、程序存储空间与数据存储空间分离 B、存储空间与IO空间分离 C、程序存储空间与数据存储空间合并 D、存储空间与IO空间合并 2、下面哪一种工作模式不属于ARM特权模式( A )。 A、用户模式 B、管理模式 C、软中断模式 D、FIQ模式 3、ARM9TDMI的工作状态包括( D )。 A、测试状态和运行状态 B、挂起状态和就绪状态 C、就绪状态和运行状态 D、ARM状态和Thumb状态 4、指令“LDMIA R0!, {R1, R2, R3, R4}”的寻址方式为( C )。 A、立即寻址 B、寄存器间接寻址 C、多寄存器寻址 D、堆栈寻址 5、对寄存器R1的内容乘以4的正确指令是( C )。 A、LSR R1,#2 B、LSL R1,#2 C、MOV R1,R1, LSL #2 D、MOV R1,R1, LSR #2 6、下面指令执行后,改变R1寄存器内容的指令是( D )。 A、TST R1,#2 B、ORR R1,R1,R1 C、CMP R1,#2 D、EOR R1,R1,R1 7、下面哪一种功能单元不属于I/O接口电路。( D ) A、USB控制器 B、UART控制器 C、以太网控制器 D、LED 8、下面哪个操作系统是嵌入式操作系统。( B ) A、Red-hat Linux B、μCLinux C、Ubuntu Linux D、SUSE Linux 9、使用Host-Target联合开发嵌入式应用,( B )不是必须的。 A、宿主机 B、银河麒麟操作系统 C、目标机 D、交叉编译器 10、下面哪个系统不属于嵌入式系统( D )。 A、MP3播放器 B、GPS接收机 C、“银河玉衡”核心路由器 D、“天河一号”计算机系统 11. RS232-C串口通信中,表示逻辑1的电平是( D ) A、0V B、3.3V C、+5V~+15V D、-5V~-15V 12. 下列不属于RISC计算机特点的是(C)。 A、流水线每周期前进一步。 B、更多通用寄存器。 C、指令长度不固定,执行需要多个周期。 D、独立的Load和Store指令完成数据在寄存器和外部存储器之间的传输。 13. 存储一个32位数0x2168465到2000H~2003H四个字节单元中,若以大端模式存储,则20000H存储单元内容为(D) A、 0x21 B、 0x68 C、0x65 D、0x02 14. S3C2410 I/O口常用的控制器是(D) A、端口控制寄存器(GPACON-GPHCON) B、端口数据寄存器(GADAT-GPHDAT) C、外部中断控制寄存器(EXTINTN)。 D 、以上都不是 15. 寄存器R13除了可以做通用寄存器外,还可以做(C)

嵌入式复习资料

嵌入式复习资料 Cortex-M处理器的架构是(D) (a)V4T(b)V5TE(c)V6(D)V7 2。Cortex-M系列的官方版本为(A) (A)Cortex-m3(b)Cortex-M4(c)Cortex-M6(d)Cortex-M83。cortex-m3提供了单周期乘法位数(C) (A)8 (B)16 (C)32 (D)64 4。与个人电脑系统相比,嵌入式系统有以下哪些特点A.系统内核小 B,特异性强 D,系统简化 C,可执行多任务 5。嵌入式系统由硬件和软件组成,以下(c)不属于嵌入式系统软件A.系统软件驱动程序现场可编程门阵列编程软件嵌入式中间件 6。armcortex-m3无法通过(d)唤醒中央处理器 a。输入/输出端口、实时时钟、通用串行总线唤醒事件、锁相环 7。cortex–m3内存格式允许使用(A) (A)小格式(b)大格式(c)小格式或大格式(d)无正确答案8。8的通用串行总线接口。STM32处理器可达到(b) (a)8 MB/S(b)12 MB/S(c)16 MB/S(d)24 MB/S 9。以下是上下文M3处理器代码执行模式:(A) (A)特权模式(B)正常模式(C)处理模式(D)线程模式10。Cortex-M3提

供了(B) (a)级别2 (b)级别3 (c)级别5 (d)级别8 11的管道。下面是上下文M3处理器的操作模式,(A) (A)线程模式,(B)拇指模式,(C)拇指-2模式,(D)调试模式12。以下是Cortex-M3处理器可以使用的堆栈列表。堆栈是(B) (A)线程堆栈(B)进程堆栈(c)多线程堆栈(d)空堆栈13。上下文–M3处理器的寄存器r14代表(B) (A)通用寄存器(B)链接寄存器(c)程序计数器(d)程序状态寄存器14。处理模式通常使用(a) (a)Main _ SP(b)Process _ SP (C)Main _ SP和Process_SP (D)Main_SP或Process_SP 15。每个通用输入/输出端口都有()32位配置寄存器、()32位数据寄存器、()32位设置/复位寄存器、()16位复位寄存器、()32位锁定寄存器B (A)2,1,2,1,1 (B)2,2,1,1,1 (C)2,2,2,1,1 (D)2,2,1,2,1 16的目的。(A)寄存器允许GPIO寄存器/修改操作的原子读取(A)GPIOX_BSRR和GPIOX_BRR (B)GPIOX_CRL和GPIOX_CRH(C)GPIOX_BSRR和GPIOX_LCKR (D)GPIOX_IDR和GPIOX_ODR 17。所有GPIO引脚都具有内部弱上拉和下拉功能。当它们被配置为(A)时,它们可以是活动的或非活动的 (A)输入(b)输出(c)推挽(d)打开漏极18。端口输入数据寄存器的地址

嵌入式系统原理与接口复习要点及思考题答案(计)

各位:根据掌握要点认真复习,后面附有作业题答案。 第1章掌握要点 1.1.1节嵌入式系统的概念 1.1.3节嵌入式系统的特点 1.3节嵌入式处理器 1.4节嵌入式系统的组成(看课件,有补充的内容) 补:1.嵌入式系统开发过程? 2.嵌入式系统调试常用的基本方法 3.交叉编译和交叉调试 4.嵌入式操作系统 第2章掌握要点 2.1节计算机体系结构分类 2.3.1节 ARM和Thumb状态 2.3.2节 RISC技术 2.3.3节流水线技术 2.4.1 ARM存储系统 2.4.2 Cache:写通、写回、读操作分配cache、写操作分配cache、工作原理、地址映像 2.4.3节 ARM存储系统 补充: (见课件) 1. ARM简介:ARM的命名方式、5种变形

2.理解片内Flash的3种编程方法。 3.理解ARM7芯片存储器存储空间分布。(8个bank,每个bank32MB)第3章掌握要点 3.1节ARM编程模式:处理器模式、处理器工作状态、寄存器组织、 异常中断 3.2节指令格式和寻址方式 3.3节指令系统:掌握和熟练应用课件所讲的指令、可编程序段 第5章掌握要点 5.1节键盘接口:行扫描法原理、掌握编写驱动程序 5.2节 LED显示器接口:理解工作原理,掌握编写驱动程序 5.5.1节 UART异步串行接口:异步通信格式、接收的4种错误类型、初始化、发送程序、接收程序 第1章作业题答案: 1.什么是嵌入式系统? ?第一种,根据IEEE(国际电气和电子工程师协会)的定义:嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置”(原文为devices used to control, monitor, or assist the operation of equipment, machinery or plants)。 ?第二种,嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求的专 用计算机系统。

相关主题
文本预览
相关文档 最新文档