嵌入式系统19春在线作业2-0003.F994E88F-A855-4
- 格式:doc
- 大小:20.50 KB
- 文档页数:13
嵌⼊式系统课后答案嵌⼊式系统2011作业(⾮标准答案,仅供参考)第1章嵌⼊式系统概述 1、什么是嵌⼊式系统?答:嵌⼊式系统指的是以应⽤为中⼼和以计算机技术为基础的,并且软硬件是可裁剪的,能满⾜应⽤系统对功能、可靠性、成本、体积、功耗等指标严格要求的专⽤计算机系统。
3、根据嵌⼊式系统的复杂程度,嵌⼊式系统可分为哪4类?答:1:单个微处理器;2:嵌⼊式处理器可扩展的系统; 3:复杂的嵌⼊式系统; 4:在制造或过程控制中使⽤的计算机系统。
5、从硬件系统来看,嵌⼊式系统由哪⼏部份组成?画出简图。
答:P11图1-42.2 回答下列关于ARM 编程模式的问题(1)在该模式下有多少通⽤寄存器(2)CPSR 的作⽤是什么(3)Z 位的作⽤是什么(4)程序计数器保存在何处答(1)31个通⽤寄存器(2)为状态寄存器,保存当前的状态,可以在任何模式下访问(3)Z=1 运算结果为0 Z=0 运算结果不为0 (4)R15(PC)2.3 下列的arm 条件码的含义是什么(1)EQ (2)NE (3)MI (4)VS (5)GE (6)LT 答(1)z 置位相等 (2)z 清零不相等 (3)n 置位负数 31个通⽤寄存pc ,6个状~R7不分组,R8~R14按模式分组,R15为程序计数器,CPSR 为状态寄存器,SPSR 为保存程序状态寄存器。
R13为堆栈指针寄存器,R14为链接寄存器。
CPSR 在各种模式下多可以访问,⽽在⽤户模式及系统模式下SPSR 不可以被访问。
2.6若寄存器R1=0x01020304,分别按照⼤端模式和⼩端模式存储在0x30000字单元中,试分别写出两种模式下内存存储内容,并标出内存地址答⼤端模式 0x30000 01 0x30001 02 0x30002 03 0x30003 04 ⼩端模式 0x30000 04 0x30001 030x30002 02 0x30003 012.7 ARM 存储器的存储周期有⼏种类型?对应于Cache 访问和存储器访问是何存储周期?答:ARM 存储器有4种存储周期:空闲周期,⾮顺序周期,顺序周期,协处理器寄存器传送周期。
嵌入式作业第七章进程间通信作业一、信号1要求:1.先用fork()函数创建子进程,并让父进程调用pause()函数2.在子进程中利用kill()函数在5秒后发出SIGALRM信号给父进程。
3.父进程扑捉到SIGALARM信号后,会从休眠状态醒来,并调用set_alarm()信号处理进程,要求输入结构student的数据,接着调用show()函数4.show()函数接收传来的结构student,将其中的数据输出显示。
student结构体含两个成员:姓名和成绩二、FIFO1.建立一个名为test的FIFO2.写一程序,读取test FIFO,并将读取到的内容显示在显示器上3.写一程序,每隔三秒,将信息写入到test FIFO中。
/* fifo_read.c */#include#include#include#include#include#include#include#include#define test "/tmp/testfifo"#define MAX_BUFFER_SIZE PIPE_BUF /*定义在于limits.h中*/ int main(){char buff[MAX_BUFFER_SIZE];int fd;int nread;/* 判断有名管道是否已存在,若尚未创建,则以相应的权限创建*/if (access(test, F_OK) == -1){if ((mkfifo(test, 0666) < 0) && (errno != EEXIST)){printf("Cannot create fifo file\n");exit(1);}}/* 以只读阻塞方式打开有名管道*/fd = open(test, O_RDONL Y);if (fd == -1){printf("Open fifo file error\n");exit(1);}while (1){memset(buff, 0, sizeof(buff));if ((nread = read(fd, buff, MAX_BUFFER_SIZE)) > 0){printf("Read '%s' from test FIFO\n", buff);}}close(fd);exit(0);}/* fifo_write.c */#include#include#include#include#include#include#include#define test "/tmp/testfifo" /* 有名管道文件名*/#define MAX_BUFFER_SIZE PIPE_BUF /*定义在于limits.h中*/ int main(int argc, char * argv[]) /*参数为即将写入的字符串*/ {int fd;char buff[MAX_BUFFER_SIZE];int nwrite;if(argc <= 1){printf("Usage: ./fifo_write string\n");exit(1);}sscanf(argv[1], "%s", buff);/* 以只写阻塞方式打开FIFO管道*/fd = open(test, O_WRONL Y);if (fd == -1){printf("Open fifo file error\n");exit(1);}while(1){sleep(3);/*向管道中写入字符串*/if ((nwrite = write(fd, buff, MAX_BUFFER_SIZE)) > 0) { printf("Write '%s' to test FIFO\n", buff);}}close(fd);exit(0);}/* signal.c */#include#include#include#include#include#include#define MAX_NAME 20struct student{char stuname[MAX_NAME];float score;};struct student set_alarm(struct student student1){ printf("input student's name:\n");scanf("%s",student1.stuname);printf("input student's score:\n");scanf("%f",&student1.score);return student1;}void show(struct student student1)printf("student's name :%s\n",student1.stuname); printf("student's score:%f\n",student1.score);}void My_func(){struct student student1;student1=set_alarm(student1);show(student1);}int main(){pid_t pid,pid_father=getpid();/* 创建一子进程*/if ((pid = fork()) < 0){printf("Fork error\n");exit(1);}if (pid == 0){sleep(5);kill(pid_father,SIGALRM);exit(0);}else{signal(SIGALRM,My_func);pause();exit(0);}/*server.c*/#include#include#include#include#include#include#include#include#include#include#define PORT1 4321#define PORT2 4322#define BUFFER_SIZE 1024#define MAX_QUE_CONN_NM 5void * recev(){printf("Thread recev is starting\n");struct sockaddr_in server_sockaddr, client_sockaddr; int sin_size, recvbytes;int sockfd, client_fd;char bufrecev[BUFFER_SIZE];/*建立socket连接*/if ((sockfd = socket(AF_INET,SOCK_STREAM,0))== -1) {perror("socket");exit(1);}/*设置sockaddr_in 结构体中相关参数*/server_sockaddr.sin_family = AF_INET;server_sockaddr.sin_port = htons(PORT2);server_sockaddr.sin_addr.s_addr = INADDR_ANY;bzero(&(server_sockaddr.sin_zero), 8);int i = 1;/* 使得重复使用本地地址与套接字进行绑定*/setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &i, sizeof(i));/*绑定函数bind*/if (bind(sockfd, (struct sockaddr *)&server_sockaddr, sizeof(struct sockaddr))== -1) {perror("bind");exit(1);}/*调用listen函数*/if (listen(sockfd, MAX_QUE_CONN_NM) == -1){perror("listen");exit(1);}/*调用accept函数,等待客户端的连接*/if ((client_fd = accept(sockfd, (struct sockaddr *)&client_sockaddr, &sin_size)) == -1) {perror("accept");exit(1);}/*调用recv函数接收客户端的请求*/do{/*读取消息队列*/memset(bufrecev, 0, BUFFER_SIZE);if ((recvbytes = recv(client_fd, bufrecev, BUFFER_SIZE, 0)) == -1) {perror("recv");exit(1);}printf("Received a message: %s", bufrecev);} while(strncmp(bufrecev, "quit", 4));close(sockfd);pthread_exit(NULL);}void * send1(){sleep(1);int sockfd, sendbytes;char bufsend[BUFFER_SIZE];char host1[50];struct hostent *host;struct sockaddr_in serv_addr;printf("input server name OR address!\n");scanf("%s",host1);/*地址解析函数*/if ((host = gethostbyname(host1)) == NULL){perror("gethostbyname");exit(1);}memset(bufsend, 0, sizeof(bufsend));/*创建socket*/if ((sockfd = socket(AF_INET,SOCK_STREAM,0)) == -1)perror("socket");exit(1);}/*设置sockaddr_in 结构体中相关参数*/serv_addr.sin_family = AF_INET;serv_addr.sin_port = htons(PORT1);serv_addr.sin_addr = *((struct in_addr *)host->h_addr);bzero(&(serv_addr.sin_zero), 8);/*调用connect函数主动发起对服务器端的连接*/if(connect(sockfd,(struct sockaddr *)&serv_addr, sizeof(struct sockaddr))== -1) {perror("connect");exit(1);}printf("Enter some message to send:\n");while(1){if ((fgets(bufsend, BUFFER_SIZE, stdin)) == NULL){puts("no message");exit(1);}if (strncmp(bufsend, "quit", 4) == 0){break;}/*发送消息给服务器端*/if ((sendbytes = send(sockfd, bufsend, strlen(bufsend), 0)) == -1)perror("send");exit(1);}}close(sockfd);pthread_exit(NULL);}int main(){pthread_t thread[2];int res[4];void * thrd_ret;res[0] = pthread_create(&thread[0], NULL, recev, (void*)NULL);if (res[0] != 0){printf("Create recev failed\n");exit(res[0]);}res[1] = pthread_create(&thread[1], NULL, send1, (void*)NULL);if (res[1] != 0){printf("Create send failed\n");exit(res[1]);}res[2] = pthread_join(thread[0], &thrd_ret);if (!res[2]){printf("Thread recev joined\n");}res[3] = pthread_join(thread[1], &thrd_ret);if (!res[3]){printf("Thread send joined\n");}return 0;}/*server2.c*/#include#include#include#include#include#include#include#include#include#include#define PORT1 4321#define PORT2 4322#define BUFFER_SIZE 1024#define MAX_QUE_CONN_NM 5void * recev(){printf("Thread recev is starting\n");struct sockaddr_in server_sockaddr, client_sockaddr; int sin_size, recvbytes;int sockfd, client_fd;char bufrecev[BUFFER_SIZE];/*建立socket连接*/if ((sockfd = socket(AF_INET,SOCK_STREAM,0))== -1){perror("socket");exit(1);}/*设置sockaddr_in 结构体中相关参数*/server_sockaddr.sin_family = AF_INET;server_sockaddr.sin_port = htons(PORT1);server_sockaddr.sin_addr.s_addr = INADDR_ANY;bzero(&(server_sockaddr.sin_zero), 8);int i = 1;/* 使得重复使用本地地址与套接字进行绑定*/setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &i, sizeof(i));/*绑定函数bind*/if (bind(sockfd, (struct sockaddr *)&server_sockaddr, sizeof(struct sockaddr))== -1) {perror("bind");exit(1);}/*调用listen函数*/if (listen(sockfd, MAX_QUE_CONN_NM) == -1){perror("listen");exit(1);}/*调用accept函数,等待客户端的连接*/if ((client_fd = accept(sockfd, (struct sockaddr *)&client_sockaddr, &sin_size)) == -1) {perror("accept");exit(1);}/*调用recv函数接收客户端的请求*/do{/*读取消息队列*/memset(bufrecev, 0, BUFFER_SIZE);if ((recvbytes = recv(client_fd, bufrecev, BUFFER_SIZE, 0)) == -1) {perror("recv");exit(1);}printf("Received a message: %s", bufrecev);} while(strncmp(bufrecev, "quit", 4));close(sockfd);pthread_exit(NULL);}void * send1(){sleep(1);int sockfd, sendbytes;char bufsend[BUFFER_SIZE];char host1[50];struct hostent *host;struct sockaddr_in serv_addr;printf("input server name OR address!\n");scanf("%s",host1);/*地址解析函数*/if ((host = gethostbyname(host1)) == NULL){perror("gethostbyname");exit(1);}memset(bufsend, 0, sizeof(bufsend));/*创建socket*/if ((sockfd = socket(AF_INET,SOCK_STREAM,0)) == -1){perror("socket");exit(1);}/*设置sockaddr_in 结构体中相关参数*/serv_addr.sin_family = AF_INET;serv_addr.sin_port = htons(PORT2);serv_addr.sin_addr = *((struct in_addr *)host->h_addr);bzero(&(serv_addr.sin_zero), 8);/*调用connect函数主动发起对服务器端的连接*/if(connect(sockfd,(struct sockaddr *)&serv_addr, sizeof(struct sockaddr))== -1) {perror("connect");exit(1);}printf("Enter some message to send:\n");while(1){if ((fgets(bufsend, BUFFER_SIZE, stdin)) == NULL){puts("no message");exit(1);}if (strncmp(bufsend, "quit", 4) == 0){break;}/*发送消息给服务器端*/if ((sendbytes = send(sockfd, bufsend, strlen(bufsend), 0)) == -1) {perror("send");exit(1);}}close(sockfd);pthread_exit(NULL);}int main(){pthread_t thread[2];int res[4];void * thrd_ret;res[0] = pthread_create(&thread[0], NULL, recev, (void*)NULL);if (res[0] != 0){printf("Create recev failed\n");exit(res[0]);}res[1] = pthread_create(&thread[1], NULL, send1, (void*)NULL);if (res[1] != 0){printf("Create send failed\n");exit(res[1]);}res[2] = pthread_join(thread[0], &thrd_ret);if (!res[2]){printf("Thread recev joined\n");}res[3] = pthread_join(thread[1], &thrd_ret);if (!res[3]){printf("Thread send joined\n");}return 0;}/* copy_file.c *//*题目:任意两个文本文件B和B,将A加到B的前部.(使用基本文件操作)*//*解题思路:以只读方式打开A,读入buff,以读写方式读入B,读入buff2,将B的指针移到开头,向B写入sizeof(buff-1)个buff(因为最后一个字节是结束符),然后向B写入buff2*/#include#include#include#include#include#include#define BUFFER_SIZE 1024 /* 每次读写缓存大小,影响运行效率*/#define SRC_FILE_NAME "A.txt" /* 源文件名*/#define DEST_FILE_NAME "B.txt" /* 目标文件名文件名*/#define OFFSET 0 /* 偏移量*/int main(){int src_file, dest_file;unsigned char buff[BUFFER_SIZE],buff2[BUFFER_SIZE];int real_read_len,real2;/* 以只读方式打开源文件*/src_file = open(SRC_FILE_NAME, O_RDONL Y);/* 以读写方式打开目标文件,若此文件不存在则创建, 访问权限值为644 */dest_file = open(DEST_FILE_NAME, O_RDWR|O_CREAT, S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH);if (src_file < 0 || dest_file < 0){printf("Open file error\n");exit(1);}/*解题思路见上*/lseek(src_file, OFFSET, SEEK_SET);real_read_len=(read(src_file, buff, sizeof(buff)));real2=read(dest_file,buff2,sizeof(buff2));lseek(dest_file,OFFSET,SEEK_SET);write(dest_file, buff, real_read_len-1);write(dest_file,buff2,real2);close(dest_file);close(src_file);return 0;}/* in_int_out_char.c *//*题目:输入int,输出char,保存在out.txt*/#include#include#include#include#include#include#define BUFFER_SIZE 100 /* 数组维数*/#define DEST_FILE_NAME "out.txt" /* 目标文件名文件名*/int main(){FILE *dest_file;char buff[BUFFER_SIZE][BUFFER_SIZE];int temp,i=0,j;int input[BUFFER_SIZE];printf("input integer,end with -1\n");/*输入,以-1结束*/scanf("%d",&temp);while(temp!=-1){input[i]=temp;i++;scanf("%d",&temp);}/* 以只写方式打开目标文件,若此文件不存在则创建,若存在就擦掉以前内容*/ dest_file = fopen(DEST_FILE_NAME, "w");/* for循环:先将输入的数字转换为字符存在二维数组buff中,再输出buff,最后将buff 内容输出到out.txt *//* 循环结束条件是循环次数等于输入字符数*/for (j=0;j<i;j++)< bdsfid="623" p=""></i;j++)<>{sprintf(buff[j], "%d", input[j]);printf("%s\t",buff[j]);fprintf(dest_file,"%s",buff[j]);}printf("\n");fclose(dest_file);return 0;}第一题好像是先在父进程里创建一个名为test的FIFO,然后创建一个子进程,然后子进程每隔3s往test中写入当前时间信息,父进程一直从test总读取信息。
《嵌入式系统》作业三一、判断题1.ARM属于CISC体系架构。
F2.除了用户模式外,ARM处理器的其它几种工作模式属于特权模式。
T3.在任何模式下,ARM处理器都可以访问全部寄存器。
F4.在ARM处理器中,快速中断(FIQ)的优先级高于外部中断(IRQ)。
T5.使用立即寻址时,目标寄存器可以为立即数。
F6.BLX指令可以将处理器切换到Thumb状态。
T7.链接寄存器(LR)用于保存子程序的返回地址,它不能用作其他用途。
F8.由于使用寄存器R0-R3来传递参数,所以调用子程序时,参数不能超过4个。
F9.使用汇编编写ARM程序时,可直接为PC寄存器赋值。
T10.ATPCS是ARM程序和Thumb程序中子程序调用的规则,它是一套强制规则。
F二、选择题11.下列哪项不是ARM处理器的特点。
BA.小体积、低功耗B.可以使用除加载/存储指令外的多种指令访问存储器C.大多数数据操作在寄存器中完成,执行速度快D.支持Thumb/ARM双指令集12.当加法指令产生进位时,下列哪个条件标志位会发生变化:AA. CB.TC.ID. F13.下列哪个不属于ARM处理器的寻址方式:DA.立即寻址B.寄存器寻址C.寄存器间接寻址D.链表寻址14.下列哪条指令是块操作指令:CA.STMFDB.POPC.LDMIAD.PUSH15.下列哪条指令把寄存器R1、R2的值相加后存到R0中:CA.AND R0, R1, R2B.SUB R0, R1, R2C.ADD R0, R1, R2D.AND R1, R2, R016.R0的中的值为0xFFF3,执行指令AND R0, R0, #3后,R0的值为:AA.0x0003B.0xFFFFC.0xFFF0D.0xFFF317.CPZSR寄存器中的Z条件码为0,当前的PC值为0xFF00,则执行BEQ 0xAAA0后,PC值为:CA.0xAAA0B.0xAAA4C.0xFF04D.0xFF0018.下列哪条ARM汇编伪指令可用来定义符号:AA.GBLAB.IFC.MAPD.WHILE阅读下列程序,回答9~10题:LDR R0, 0x22LDR R1, 0x11SUB R0, R0, R1CMP R0, R119.执行这段程序后,R0的值为:CA. A 0x22B. B 0x33C. C 0x11D. D 020.执行这段程序后,CPSR的下列哪个标志位将发生变化:CA. CB.VC.ZD.以上都不对三、简答题21.请简述ARM处理器的堆栈寻址和块拷贝寻址模式,并比较它们的不同点。
吉大15 春学期《嵌入式系统与结构》在线作业二单选题多选题判断题
一、单选题(共5 道试题,共20 分。
)
1. 在实时操作系统中,两个任务并发执行,一个任务要等待其合作伙伴发来消息,或建立某个条件后再向前执行,这种制约性合作关系被称为任务的()。
A. 同步
B. 互斥
C. 调度
D. 执行
----------------选择:A
2. 一个任务,也称作一个(),是一个简单的运行程序。
每个任务都是整个应用的某一部分,每个任务被赋予一定的优先级,有它自己的一套CPU 寄存器和自己的栈空间。
A. 子核
B. 线程
C. 进程
D. 单元
----------------选择:B
3. VxWorks 操作系统特点描述不正确的是()。
A. 实时性强
B. 支持多任务
C. 简洁,高效的内核
D. 兼容性较差
----------------选择:D
4. 下列不属于嵌入式操作系统的是()。
A. Windows CE
B. VxWorks
C. windowsXP
D. UC/OS
----------------选择:C
5. FIQ 总的延迟时间为()周期
A. 27
B. 28
C. 29。
嵌入式系统设计在线考试复习题一单选题1. 在中断服务程序中,至少应有一条( )A. 传送指令B. 转移指令C. 加法指法D. 中断返回指令2. 嵌入式系统的三要素下面哪一个不是:()。
A. 嵌入B. 存储器C. 专用D. 计算机3. MCS-51有中断源()A. 5个B. 2个C. 3个D. 6个4. 整流电路是利用二极管的()特性。
A. 单向导电B. 稳压C. 保护D. 降压5. 以下不是构成的控制器部件( )。
A. 程序计数器B. 指令寄存器C. 指令译码器D. 存储器6. 下列不是单片机总线是()。
A. 地址总线B. 控制总线C. 数据总线D. 输出总线7. 十进制29的二进制表示为原码()。
A. 11100010B. 10101111C. 00011101D. 000011118. 用MCS-51串行接口扩展并行IO口时,串行接口工作方式应选择( )A. 方式0B. 方式1C. 方式2D. 方式39. 在微型计算机中,采用中断方式的优点之一是( )。
A. 简单且容易实现B. CPU可以不工作C. 可实时响应突发事件D. 传送速度最快10. 计算机内部,一切信息的存取,处理和传递的形式是()。
A. ASCII码B. BCD码C. 二进制数D. 十六进制数11. MOV C,00H的寻址方式是()。
A. 位寻址B. 直接寻址C. 立即寻址D. 寄存器寻址12. 若某数真值为–0.1010,在计算机中该数表示为1.0110,则该数所用的编码为( )。
A. 原码B. 补码C. 反码D. 移码13. 控制串行口工作方式的寄存器是()。
A. TCONB. PCONC. SCOND. TMOD14. c++源程序文件的默认扩展名为()。
A. cppB. exeC. objD. lik15. 中断向量是指()。
A. 中断断点的地址B. 中断向量表起始地址C. 中断处理程序入口地址D. 中断返回地址16. MOVX A,@DPTR指令中源操作数的寻址方式是()。
嵌入式系统及应用-试题一学院姓名学号任课老师考场教室__________选课号/座位号密封线以内答题无效课程名称:_嵌入式系统开发_考试形式:闭卷考试日期:2022年月日考试时长:120分钟课程成绩构成:平时5%,期中10%,实验25%,期末60%本试卷试题由__5_部分构成,共__9___页。
题号得分得分一、判断题(共15分,共15题,每题1分,正确用“T”表示,错误用“F”表示)1.优先级位图法是通过牺牲空间赢得时间。
()2.EDF调度策略可用于调度周期性任务()3.在嵌入式操作系统中一般不使用虚拟存储技术,避免页面置换的开销所引起的不确定性。
()4.自陷、异常和中断基本上具有相同的中断服务程序结构。
()5.嵌入式多任务系统中,任务间的耦合程度越高,它们之间的通信越少。
()6.存储器映射编址是指I/O端口的地址与内存地址统一编址,即I/O单元与内存单元在同一地址空间。
其优点是可采用丰富的内存操作指令访问I/O单元、无需单独的I/O地址译码电路、无需专用的I/O指令。
()7.嵌入式系统中,优先级抢占调度可以在任意位置、任意时刻发生。
()8.当二值信号量用于任务之间同步时,其初始值为1。
()9.如果一个实时调度算法使得任务充分利用了CPU,则CPU的利用率为100%。
()10.RISC处理器常用高效流水线技术提高处理器的并行性。
()11.弱实时对系统响应时间有要求,但是如果系统响应时间不能满足,不会导致系统出现致命的错误或崩溃。
()12.循环轮询系统适合于慢速和非常快速的简单系统。
()13.单处理器多任务系统无需嵌入式操作系统的支持。
()14.任务控制块的内容在任务创建时进行初始化,在系统运行过程中不会发生变化。
()15.支持实时特性的DARTS设计方法也采用了面向对象技术。
()一二三四五合计第1页共7页学院姓名学号任课老师考场教室__________选课号/座位号密封线以内答题无效得分二、单项选择题(共20分,共10题,每题2分)1、以下描述中,哪一项不适用于前后台系统:()(A)是中断驱动系统的一种(B)后台是一个循环轮询系统一直在运行(C)前台由一些中断处理过程组成(D)具有多任务2、以下哪项不能降低嵌入式系统处理器的功耗()(A)降低工作电压;(B)提供不同的时钟频率;(C)关闭暂时不使用的功能块;(D)提升工作的时钟频率。
22春学期(高起本1709-1803、全层次1809-2103)《嵌入式系统》在线作业-00003 试卷总分:100 得分:100 一、单选题 (共 20 道试题,共 40 分) 1. 在所有工作模式下,( )都指向同一个物理寄存器,即各模式共享 A. R0-R7 B. R0-R12 C. R8-R12 D. R13,R14
答案:A
2.按照ATPCS规则,返回值为int型的子程序或函数,其返回值通过()返回。 A. r1 B. r0 C. r4 D. r8
答案:B
3.驱动程序是内核的一部分,下面的描述不正确的是()。 A. 设备驱动完成对设备的初始化和释放 B. 设备驱动把数据从内核传送到硬件和从硬件读取数据 C. 设备驱动读取应用程序传送给设备文件的数据和回送应用程序请求的数据 D. 设备驱动程序可以使用户更加仔细的了解硬件的细节: 答案:D
4.外部设备包括() A. 外存 B. 输入设备 C. 输出设备 D. 以上三个都包括 答案:D
5.要使AT89S51单片机能响应定时器T1中断,串行接口中断,它的中断允许寄存器IE的内容应该是() A. 98H B. 84H C. 42H D. 22H
答案:A
6.通常情况下,目标机上的BootLoader通过串口和主机之间进行文件传输,下列不属于通常 使用的传输协议的是()。 A. modem 协议 B. xmodem协议 C. ymodem协议 D. zmodem协议; 答案:A
7.下列()特性不符合嵌入式操作系统的系统特点 A. 实时性 B. 不可定制 C. 微型化 D. 易移植 答案:B
8.若进程P一旦被唤醒就能够投入运行,系统可能为()。 A. 在分时系统中,进程P的优先级最高 B. 抢占调度方式,就绪序列上的所有进程的优先级皆比P的低 C. 就绪队列为空队列 D. 抢占调度方式,P的优先级高于当前运行的进程。 答案:D
9.关于嵌入式操作系统及其特点,以下叙述中错误的是()。 A. 嵌入式操作系统是在嵌入式硬件上提供一个应用程序的运行平台 B. 嵌入式硬件资源相对有限,因此操作系统内核较小 C. 嵌入式操作系统通常具有较好的可移植性 D. 嵌入式操作系统往往需要控制硬件装置,因此,不用考虑实时性 答案:D
嵌入式系统19春在线作业1-0004试卷总分:100 得分:100一、单选题(共20 道试题,共60 分)1.DMA控制器属于嵌入式系统中的()。
A.嵌入式操作系统B.嵌入式微处理器C.外围电路D.嵌入式外围设备答案:C2.片上调试技术的英文缩写是()。
A.ICEB.OCDC.JTAGD.BDM答案:B3.表示相等的条件码是()。
A.MIB.LEC.NED.EQ答案:D4.在CPSR寄存器的条件标志位中,()表示相等或不等。
A.NB.ZC.CD.V答案:B5.表示无符号数大于或等于的条件码是()。
A.NEB.VSC.CSD.GE答案:C6.下列()不是Linux中默认的makefile文件名。
A.GNUmakefileB.makefileC.MakefileD.Gnumakefile答案:D7.我们平时使用的U盘一般使用的是()文件系统。
A.ext2B.procC.FAT32D.NFS答案:C8.Linux内核文件中,与体系结构相关的代码一般位于()目录下。
A.archB.blockC.devD.include答案:A9.下列()是ARM公司开发的指令集模拟器。
A.AngelB.ARMulatorC.ICED.ROM仿真器答案:B10.()指示符用于声明一个符号可以被其他文件引用。
A.EXTERNB.IMPORTC.EXPORTD.GET答案:C11.在Linux下,用于创建目录的命令是()。
A.cdB.mkdirC.rdD.rm答案:B12.ATPCS规定堆栈为()类型。
A.EDB.FDC.EAD.FA答案:B13.嵌入式操作系统一般都采用模块化设计,说明其是()的。
2014年上学期11级电脑专业嵌入式系统期末试卷专业班级学号 ___ _____考试时间120分钟考试方式闭卷考试成绩__________ _一、选择题〔本大题共10个小题,每题1分,共10分〕1、和PC机系统相比,以下哪点不是嵌入式系统所特有的:〔 C〕A、系统内核小B、专用性强C、可执行多任务D、系统精简2、ADD R0,R1,#3属于〔 A〕寻址方式。
A、立即寻址B、多寄存器寻址C、寄存器直接寻址D、相对寻址3、GET伪指令的含义是:〔A〕A、包含一个外部文件B、定义程序的入口C、定义一个宏D、声明一个变量4、μCOS-II操作系统不属于:〔C〕A、RTOSB、占先式实时操作系统C、非占先式实时操作系统D、嵌入式实时操作系统5、FIQ中断的入口地址是:〔A〕A、0x0000001CB、0x00000008C、0x00000018D、0x000000146、ARM指令集和Thumb指令集分别是〔D〕位的。
A、8位,16位B、16位,32位C、16位,16位D、32位,16位7、BL和BX的指令的区别是〔 D 〕A、BL是跳转并切换状态;BX带返回的跳转并切换状态。
B、BL是带返回的连接跳转;BX带返回的跳转并切换状态。
C、BL是跳转并切换状态;BX是带返回的连接跳转。
D、BL是带返回的连接跳转;BX是跳转并切换状态。
8、Boot Loader 的启动过程是( A )A.单阶段B. 多阶段9、以下说法不正确的选项是〔 B 〕A 、任务可以有类型说明B 、任务可以返回一个数值C 、任务可以有形参变量D 、任务是一个无限循环10、假设已定义的函数有返回值,则以下关于该函数调用表达中错误的选项是〔D〕A、函数调用可以作为独立的语句存在B、函数调用可以作为一个函数的实参C、函数调用可以出现在表达式中D、函数调用可以作为一个函数的形参二、判断题〔本大题共10题,共10分〕1、不同的 CPU,它的Boot Loader都相同。
嵌入式系统19春在线作业2-0003
ADS中ARM的链接器所对应的命令行工具程序文件名称是()。
A:armcc
B:armlink
C:armsd
D:armasm
答案:B
makefile文件中的续行符是()。
A:/
B:\
C:@
D:&
答案:B
()的主要任务是把需求分析得到的结果转换为软件结构和数据结构。
A:需求分析
B:概要设计
C:详细设计
D:协同设计
答案:B
下列()可能是针对ARM的GNU交叉工具链中的C编译器()。
A:arm-linux-as
B:arm-linux-gcc
C:arm-linux-g++
D:arm-linux-ld
答案:B
在开发嵌入式应用软件时,若没有下位机和评估板,最简单的方法是利用()。
A:模拟软件
B:ROM仿真器
C:目标机
D:在线仿真器
答案:A
GNU开发套件中,下列()是项目管理工具。
A:as