周立功版嵌入式课后习题答案

合集下载

嵌入式习题答案

嵌入式习题答案

第一章习题答案什么是嵌入式系统?请列举几个常见的嵌入式系统。

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.????????答:简单嵌入式系统很早就已经存在,这类嵌入式系统因为软硬件复杂度都很低,一般不使用操作系统,例如常用的单片机系统。

对于复杂的嵌入式系统,它的开发模式发生了极大的改变。

嵌入式部分习题参考答案

嵌入式部分习题参考答案

嵌入式部分习题参考答案第一章1.什么是嵌入式系统?它由哪几部分组成?有何特点?以应用为中心,计算机技术为基础,软硬件可裁减,从而能够适应实际应用中对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。

嵌入式系统通常由嵌入式处理器、外围设备、嵌入式操作系统、应用软件等几大部分组成。

嵌入式处理器与通用处理器的最大不同点在其大多工作在为特定用户群设计的系统。

外围设备包括:存储器、接口、人机交互。

嵌入式操作系统的特点:软硬件一体化,集计算机技术、微电子技术和行业技术为一体;需要操作系统支持,代码小,执行速度快;专用紧凑,用途固定,成本敏感;可靠性要求高;多样性,应用广泛,种类繁多。

2.嵌入式处理器分为哪几类?低端的微控制器(MicroConctroller Unit,MCU)中高端的嵌入式微处理器(Embedded MicroProcessor Unit,EMPU)通信领域的DSP系统(Digital Signal Processor,DSP)高度集成的片上系统(System on Chip,SoC)3.ARM英文原意是什么?它是个怎样的公司?其处理器有何特点?ARM(Advanced RISC Machines)公司是全球领先的16/32位RISC微处理器知识产权设计供应商。

ARM公司通过将其高性能、低功耗、低成本的RISC微处理器,外围和系统芯片设计技术转让给合作伙伴来生产各具特色的芯片。

ARM处理器的特点:小体积、低功耗、低成本而性能高。

16/32位指令集。

全球至多的合作伙伴。

4.什么是实时系统?它由哪些特征?如何分类?实时系统是具有实时性且能支持实时控制系统工作的操作系统。

其首要任务是调动一切可利用的资源来完成实时控制任务,其次才着眼于提高计算机系统的使用效率,其重要特点是能满足对时间的限制和要求。

实时性:实时系统所产生的结果在时间上有严格的要求,只有符合时间要求的结果才是正确的。

并行性:要求系统有并行处理能力,以便能同时相应来自不同端口的输入信号。

嵌入式C语言程序设计课后习题参考答案

嵌入式C语言程序设计课后习题参考答案

嵌入式C语言程序设计基础课后习题答案第一章一CAC二1用于告诉编译器在程序中包含标准输入\输出库信息2程序=数据结构+算法3算法即操作步骤,它指明了解决某一问题的方法和步骤4自然语言\流程图\N-S图三1、自然语言(略)N-S图传统流程图2、#pragma SMALL#include <at89x51.h>void main(void){ int i;P0 = 0x15;for(i=0;i<1000;i++);}3、略一DAD二1、负责接收\处理和执行指令的发出2、可以避免程序运行时进入混乱和死循环三1、L298N的驱动电路采用双极型H桥型脉宽调制(PWM)工作方式,输入信号为标准TTL逻辑电平信号,内部包含四通道逻辑驱动电路,可组成两个H桥式驱动器,驱动两只电机。

2、略3、#pragma SMALL#include <at89x51.h>void main(void){ int i;P0 = 0x16;for(i=0;i<1000;i++);}一DDCAB BDBAB BC二1int float char2十进制八进制十六进制小数指数3下划线字母数字字母或者下划线4‘’“”5% *=6实型整型字符型7 18 19data11x%k)-(k%(x%k))12 113321446150 1 016 2.5三1、‘a’表示单个字符,在其中必须且只能有一个字符。

"a"表示字符串,字符串是由若干个字符组成的。

字符是组成字符串的元素。

2、是3、int x = 10, y = 12;int temp;temp = x;x = y;y = temp;4、#pragma SMALL#include <at89x51.h>void delay1(int data a1){ unsigned int data i,j;for(i=0;i<a1;i++)for(j=0;j< 122;j++) {}}void fd(unsigned int data b){ unsigned int data i;for(i=0;i<b;i++){ P0 |= 0x15;delay1(5);P0 &= 0x00;delay1(1);}}void lt(unsigned int data b) { unsigned int data i;for(i=0;i<b;i++){ P0 |= 0x16;delay1(5);P0 &= 0x00;delay1(1);}}void tz(unsigned int data b) { unsigned int i;for (i=0;i<b;i++){ P0 &= 0x00;delay1(1000);}}void main(void){ fd(500);lt(300);fd(500);lt(300);fd(500);lt(300);fd(500);lt(300);tz(1000);}第四章习题答案一Bcbbb dbabd bcdba二1、{}2、10,9,113、8,174、115、8,206、for7、48、while do…..while for9、4.010、111、012、do….while13、1,2,1三1、switch(s){case1:case7:case8:x=1;break;case2:case9:case10:x=3;break;case3:case4:case5:case6:x=2;break;default:x=0;}2、#include<stdio.h> main(){int i=1,j=1;long int s,sum=0;for(j=1;j<=20;j++){ s=1;for(i=1;i<=j;i++){ s*=i;}sum+=s;}printf("1+2!+...+20!=%ld\n",sum); }3、#include <stdio.h>void main(){int n;for (n=100;n<=200;n++){if (n%3==0) continue;printf("%d ″,n);}}4、#include "stdio.h"#include "conio.h"main(){ int i,j,k;for(i=0;i<=20;i++){ for(j=0;j<=33;j++){ k=100-i-j;if(i*15+j*9+k==300)printf("\n鸡翁鸡母鸡雏数分别为:%5d%5d%5d",i,j,k); } }getch(); }第5章答案DADDA BBBCC BABAA BBAD1嵌套递归2return void3自动变量和寄存器变量、静态外部变量、静态局部变量和外部变量4void dothat(int n,double x);5extern6定义时赋值和运行时赋值7void8auto9函数、语句10值传递\址传递11\全局和局部动态和静态三1、#include<stdio.h>int fun(int n){int i,sum=0,f=1;for(i=1;i<=n;i++){sum+=(f*i);f=-f;}return sum;}int main(){int n=10;printf("%d\n",fun(n));}2、#include <stdio.h>double sum(double x, int n){double s = 1;int i;double t = 1;double a = 1;for(i=1;i<=n;i++){a*=x;s+=a/t;t*=i+1;}return s;}int main(){int n;double x;while(scanf("%lf%d",&x, &n)==2) {printf("%lf\n",sum(x,n));}}3、#include "stdio.h"main( ){ register i,sum=0;for(i=1;i<=100;i++)sum=sum+i;printf("sum=%d\n",sum); }4、int fun(int x){ if(x<8) return x;return x%8+10*fun(x/8);}5、#include "stdio.h"int squre(int j);double power(double x,int n);main(){ int j=4;putchar('\n');printf("4的平方值为:%d \n ",squre(j));}int squre(int j){ return j*j; }double power(double x,int n){ double p;if (n>0)for (p=1.0;n>0;n--)p=x*x;elsep=1.0;return(p); }第6章答案1C 2AC 3D 5D 6C 7B 8BD 9D 10C 11D 12B 13C 14D 15C 16A17A 18B 19A 20CD 21A 22B 23D 24B 25C 26B 27B 28D 29D 30 A 31B1、0 数据类型2、8 83、整形表达式4、按行存储或者按列存储5、0 86、不做7、268、strcpy(s2,s1);9 6,10 10 \0 111 tt 1213 16 14 2 415 cde 16 1217 3 18 15三1、#include "stdio.h"#include "string.h"main(){ char s1[100],s2[100];int i,n=0,m;printf("请输入一个字符串:");gets(s1);m=strlen(s1);for(i=0;i<m;i++){if(islower(s1[i])){s2[n]=toupper(s1[i]);n++;}else if(isupper(s1[i])){ s2[n]=tolower(s1[i]);n++;}elsecontinue;}printf("从键盘上输入字符串为:%s\n",s1);printf("字母大小写转换后且滤掉非字母字符的字符串为:%s",s2); getchar();}2、#include "stdio.h"int *fun3(int *x,int *y);main(){ int a=10,b=20,*p;printf("未交换前a=%d,b=%d\n",a,b);fun1(a,b);printf("调用函数fun1后a=%d,b=%d\n",a,b);fun2(&a,&b);printf("调用函数fun2后a=%d,b=%d\n",a,b);p=fun3(&a,&b);printf("调用函数fun3后得到的最大值为:%d",*p); getch(); }fun1(int x,int y){ int t;t=x;x=y;y=t; }fun2(int *x,int *y){ int t;t=*x;*x=*y;*y=t; }int *fun3(int *x,int *y){if(*x>*y) return x;elsereturn y; }3、#include "stdio.h"main(){ int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};int i,j,*p[3],(*q)[4];printf("通过数组名来输出数组元素a[1][2]的值\n");printf("直接引用数组元素得a[1][2]的值为:%d\n",a[1][2]);printf("通过第2行的首地址得a[1][2]的值为:%d\n",*(a[1]+2));printf("通过数组名得到a[1][2]的值为:%d\n",*(*(a+1)+2));printf("通过a[0]得到a[1][2]的值为:%d\n",*(a[0]+4*1+2));printf("通过a[0][0]得到a[1][2]的值为:%d\n",*(&a[0][0]+4*1+2));printf("\n通过建立一个指针数组来输出数组元素a[1][2]的值\n");for(i=0;i<3;i++)p[i]=a[i];printf("通过指针变量直接输出a[1][2]的值为:%d\n",p[1][2]);printf("通过指针数组元素来输出a[1][2]的值为:%d\n",*(p[1]+2));printf("通过指针数组的移动来输出a[1][2]的值为:%d\n",*(*(p+1)+2));printf("通过移动指针数组且带下标的方式输出a[1][2]的值为:%d\n",(*(p+1))[2]);printf("\n通过建立一个行指针来输出a[1][2]的值\n");q=a;printf("通过行指针直接输出a[1][2]的值为:%d\n",q[1][2]);printf("通过行指针元素来输出a[1][2]的值为:%d\n",*(q[1]+2));printf("通过行指针的移动来输出a[1][2]的值为:%d\n",*(*(q+1)+2));printf("通过移动行指针且带下标的方式输出a[1][2]的值为:%d\n",(*(q+1))[2]);}4、#include<AT89X51.H>void main(void){Const unsigned char desin[64]={0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0x7F,0x BF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF,0xFF,0xFE,0xFC,0xF8,0xF 0,0xE0,0xC0,0x80,0x0,0xE7,0xDB,0xBD,0x7E,0xFF,0xFF,0xFE,0xFD,0 xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xF D,0xFE,0xFF,0xFF,0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x0,0xE7,0xDB,0xBD,0x7E,0xFF }; unsigned int a;unsigned char b;do {for (b=0;b<64;b++){for (a=0;a<30000;a++);P1=desin[b];}}while(1);}。

嵌入式系统课后习题

嵌入式系统课后习题

嵌入式系统课后习题ARM嵌入式系统基础教程课后习题答案第1章嵌入式概述(1) 什么叫嵌入式系统?解:国内定义:以应用为中心;以计算机技术为基础,软硬件可裁减,适用于应用系统对功能,可靠性,成本,体积,功耗有严格要求的专业计算机系统,一般有以下部分组成嵌入式微处理器,外围设备,核心电路;国外定义:IEEE 用于控制,监视或者辅助操作机器和设备的装置;2)比较嵌入式系统与通用PC机的区别?PC机处理器以通用为目的处理器,涉及丰富,功能广泛,支持各类外围设备,但功耗高,产生热量大,尺寸大,成本高。

嵌入式处理器注重尺寸,功耗,价格,性能,不是以通用为目的。

只针对某一类产品或领域而运用。

3)嵌入式系统有哪些部分组成?解:软件:操作系统,应用程序。

硬件:微处理器,外围设备,核心电路;4) 嵌入式系统有什么特点?解:嵌入性有3个基本特点,即"嵌入性","内含计算机"与"专业性". "嵌入性"由早期的微机时代的嵌入式计算机应用而来,专用计算机嵌入到对象体系中,实现对象体系的智能控制;当嵌入式系统变成一个独立应用产品时,可将嵌入性理解为内部嵌入有微处理器或计算机."内含计算机"是对象系统智能化控制的根本保证;"专用性"是旨在满足对象控制要求及环境要求下的软硬件可裁剪。

5)嵌入式系统怎么分类的?①按表现形式(硬件):芯片级嵌入,模块级嵌入,系统级嵌入②按实时性要求(软件):非实时性系统,软实时系统,硬实时性系统。

6)嵌入式微处理器怎样分类?①EMPU: 嵌入式微处理器②MCU:微控制器③DSP:数据信号处理器④SOC:片上系统⑤:SOPC:嵌入式可编程片上系统7)什么是硬实时系统,什么是软实时操作系统?硬实时操作系统:对响应时间有严格的要求如果系统响应时间不能满足就会引起系统崩溃致命的错误。

软实时性系统:对系统响应时间有要求,但如果系统响应时间不能满足,不会导致系统出现致命的错误式崩溃,只是降低系统的吞吐量。

嵌入式练习题附部分答案

嵌入式练习题附部分答案

选择题1.W3C制定了同步多媒体集成语言规范,称为____规范。

A. XMLB. SMILC. VRMLD. SGML##2.________完全把系统软件和硬件部分隔离开来,从而大大提高了系统的可移植性。

A. 硬件抽象层B. 驱动映射层C. 硬件交互层D. 中间层##A3.在C语言中,设有数组定义:char array[]="China"; 则数据array所占用的空间为______。

A. 4个字节B. 5个字节C. 6个字节D. 7个字节##C4.对某一寄存器某几位清零,可用一条指令_______来实现。

A. ANDB. ORC. NOTD. AOR##A5.实时操作系统(RTOS)内核与应用程序之间的接口称为________。

A. 输入/输出接口B. 文件系统C. APID. 图形用户接口##C6.在操作系统中,Spooling技术是用一类物理设备模拟另一类物理设备的技术,实现这种技术的功能模块称做____。

A. 可林斯系统B. 斯普林系统C. 图灵机系统D. 虚拟存储系统##7.文件系统的主要功能是______。

A. 实现对文件按名称存取B. 实现虚拟存储器C. 提高外村的读写速度D. 用于保护系统文档##8.在CPU和物理内存之间进行地址转换时,________将地址从虚拟(逻辑)地址空间映射到物理地址空间。

A. TCBB. MMUC. CacheD. DMA##9.以下叙述中,不符合RISC指令系统特点的是______。

A. 指令长度固定,指令种类少B. 寻址方式种类丰富,指令功能尽量增强C. 设置大量通用寄存器,访问存储器指令简单D. 选取使用频率较高的一些简单指令##10.在操作系统中,除赋初值外,对信号量仅能操作的两种原语是____。

A. 存操作、取操作B. 读操作、写操作C. P操作、V操作D. 输入操作、输出操作11.在面向对象系统中,用______关系表示一个较大的“整体”包含一个或多个较小“部分”的类。

嵌入式系统习题答案

嵌入式系统习题答案

嵌入式系统习题答案文字简答、问答类题目见教材3.2 R0和R1中有两个32位数,若R0>R1,则R0=R0-R1;若R0<R1,则R1=R1-R0;若R0=R1,则R1、R0保持不变。

1)请用CMP、B和SUB指令完成上述操作。

2)请用条件SUB指令完成上述操作。

解答:(已调试通过)1、用CMP、B和SUB指令AREA StrCopy, CODE, READONLYENTRYstartMOV R0,#3MOV R1,#2CMP R0,R1BLT LessBGT MoreB stopLess SUB R1,R1,R0B stopMore SUB R0,R0,R1stopB stop2、用条件SUB指令AREA StrCopy, CODE, READONLYENTRYstartMOV R0,#3MOV R1,#2CMP R0,R1SUBLT R1,R1,R0SUBGT R0,R0,R1stopB stop3.3 用合适的指令实现以下功能1)R0 =16mov R0,#162)R1 = R0 × 4MOV R1,R0,LSL #23)R0 =R1/16Mov r0,r1, LSR #44)R1 = R2 × 7SUB R1, R2, R2, LSL #33.5下列指令序列完成什么功能?ADD R0, R1, R1, LSL #1SUB R0, R0, R1, LSL #4ADD R0, R0, R1, LSL #7解答:1、R0=R0+2*R12、R0=R0-16*R13、R0=R0+128*R14.7试编写程序,计算2+4+6+8+…+2N的值解答:(已调试通过)方法一N EQU 3AREA StrCopy, CODE, READONLYENTRYstartMOV R0,#0MOV R1,#NL1MOV R2,R1,LSL #1ADD R0,R0,R2SUB R1,R1,#1CMP R1,#0BEQ stopB L1stopB stop方法二N EQU 3AREA StrCopy, CODE, READONLY ENTRYstartMOV R0,#0MOV R1,#1L1MOV R2,R1,LSL #1ADD R0,R0,R2ADD R1,R1,#1SUB R2,R1,#1CMP R2,#NBEQ stopB L1stopB stop方法三EXPORT Add2T o2N ; 声明程序可被外部引用EXPORT START ; 声明程序入口标号START 可被外部引用NNUM EQU 10 ; 符号定义伪指令,NNUM 代表问题中的N ,此处N = 10AREA Add2T o2N, CODE, READONLYENTRYSTARTMOV R0, #NNUM ; 问题中的加数,从N 递减至0 ,初始值为N MOV R1, #0 ; 问题中的结果保存在R1 中,初始值为0ADDDECCMP R0, #0BEQ MUTTWO ; 当R0 == 0 时跳出累加例程ADD R1, R1, R0 ; 将当前的加数R0 累加到结果R1 中SUB R0, R0, #1 ; 加数R0 递减B ADDDEC ; 重复累加,直到加数为0MUTTWOMOV R0, R1, LSL #1 ; 将R1 中保存的累加结果左移1 位,即乘以2 ,保存到R0STOPMOV R0, #0x18LDR R1, =0x20026SWI 0x123456END ; 结束。

嵌入式系统第三部分习题答案

第10章建立嵌入式系统开发环境10.2.5习题1.使用vi查看安装程序install.sh,对比install.sh中的语句与安装过程。

答:首先建立合适的安装目录,然后安装交叉编译工具软件,然后安装Linux内核,建立根文件系统,之后安装调试工具gdb和gdbserv,最后安装试验源代码及相关文档。

2.若使用上位机的com2口与下位机进行连接,应在minicom中如何设置?答:若使用上位机的com2口与下位机进行连接,应在minicom中选择“Serial port setup”进入串口配置界面。

输入“A”,将“Serial device”的值修改为“/dev/ttyS1”,表示连接的是上位机的com2口。

3.若下位机的IP地址为192.168.0.121,上位机的IP地址为202.201.33.15,请写出将上位机和下位机的IP地址配置在同一个网段的过程。

答:在上位机的终端命令窗口中键入下面的命令,可以将上位机和下位机的IP地址配置在同一个网段192.168.0.:ifconfig eth0 192.168.0.252 netmask 255.255.255.010.3.5习题1.在“vivi>”提示符状态下,使用help查看vivi命令的用法,比较与Linux命令的不同。

答:vivi命令用来配置开发板的硬件资源,使用时后面需给出必要的关键字参数,如:vivi> load helpUsage: load <flash|ram> [ <partname> | <addr> <size> ] <x|y|z|t>而Linux命令的参数通常以“-”开始,如:cat [-AbeEnstTuv] [--help] [--version] fileName。

2.写出下位机软件系统的四个组成部分的功能。

答:下位机的软件系统由Bootloader系统内核、根文件系统和应用程序四部分组成。

嵌入式系统课后习题及答案

第1章嵌入式系统基础之迟辟智美创作1.什么是嵌入式系统?它由哪几部份组成?有何特点?写出你所想到的嵌入式系统.答:(1)界说:国内对嵌入式系统的一般界说是:以应用为中心,以计算机技术为基础,软硬件可裁剪,从而能够适应实际应用中对功能、可靠性、本钱、体积、功耗等严格要求的专用计算机系统.(2)组成:嵌入式处置器、外围设备、嵌入式把持系统和应用软件等几部份组成.(3)特点:a.软硬件一体化,集计算机技术、微电子技术、行业技术于一体;b.需要把持系统支持,代码小,执行速度快;c.专用紧凑,用途固定,本钱敏感;d.可靠性要求高;e.多样性,应用广泛,种类繁多.(4)嵌入式系统:个人数字助理(PDA)、机顶盒(STB)、IP德律风.2.嵌入式处置器分为哪几类?答:(1)低真个微控制器(MicroController Unit,MCU);(2)中高真个嵌入式微处置器(Embeded MicroProcessor Unit,EMPU);(3)通信领域的DSP处置器(Digital SignalProcessor,DSP);(4)高度集成的片上系统(System on Chip,SoC).3.ARM英文原意是什么?它是一个怎样的公司?其处置器有何特点?答:(1)英文原意:Advanced RISC Machines.高级精简指令集机器.(2)公司简介:该公司是全球领先的16/32位RISC微处置器知识产权设计供应商,通过将其高性能、低本钱、低功耗的RISC微处置器、外围和系统芯片设计技术转让给合作伙伴来生产各具特色的芯片.ARM公司已成为移动通信、手持设备、多媒体数字消费嵌入式解决方案的RISC标准.(3)其处置器特点:a.小体积、低功耗、低本钱而高性能;b.16/32位双指令集;c.全球的合作伙伴众多. 4.什么是实时系统?它有哪些特征?如何分类?答:(1)实时系统的界说:实时系统(Real Time System)是指发生系统输出的时间对系统至关重要的系统.(2)特征:实时性、并行性、多路性、自力性、可预测性、可靠性.(3)分类:根据响应时间的分歧,实时系统可分为3种类型:强实时系统、弱实时系统、一般实时系统.根据确定性的分歧,实时系统可分为2种类型:硬实时、软实时.5.RTOS由哪几部份组成?它有哪些特点?与一般把持系统相比有何分歧?答:(1)组成:实时内核、网络组件、文件系统、图形用户界面.(2)特点:a.支持异步事件的响应;b.中断和调度任务的优先级机制;c.支持抢占式调度;d.确定的任务切换时间和中断延迟时间;e.支持同步.(3)与一般OS的分歧:a.实时性:响应速度快,只有几微秒;执行时间确定,可预测;b.代码尺寸小:只有10~100KB,节省内存空间,降低本钱;c.应用法式开发较难;d.需要专用开发工具:仿真器、编译器和调试器等.6.单片机系统、嵌入式系统和SOC系统三者有何区别和联系?答:(1)目前嵌入式系统的主流是以32位嵌入式微处置器为核心的硬件设计和基于实时把持系统(RTOS)的软件设计;(2)单片机系统多为4位、8位、16位机,不适合运行把持系统,难以进行复杂的运算及处置功能;(3)嵌入式系统强调基于平台的设计、软硬件协同设计,单片机年夜多采纳软硬件流水设计;(4)嵌入式系统设计的核心是软件设计(占70%左右的工作量),单片机系统软硬件设计所占比例基秘闻同.(5)SoC是嵌入式系统的最高实现形式,它集成了许多功能模块,它的核心技术是IP(IntellectualProperty Core,知识产权核)核.7. 无第2章嵌入式系统开发过程1.嵌入式系统开发过程分为哪几个阶段?每个阶段的特点是什么?答:(1)需求分析阶段:a.对问题的识别和分析;b.制定例格说明文档;c.需求评审.(2)设计阶段:a.数据流分析;b.划分任务;c.界说任务间的接口.(3)生成代码阶段:a.代码编程;b.交叉编译和链接;c.交叉调试;d.测试.(4)固化阶段2.嵌入式系统有哪几种调试方式?现在最流行的是哪种?使用什么接口?答:(1)调试方式:源法式模拟器方式、监控器方式、仿真器方式.(2)现在最流行的是仿真器方式,使用JTAG(Joint Test Action Group,联合测试行动组)接口.3.什么是板级支持包?它一般应完成哪些工作?答:(1)界说:有些嵌入式把持系统的内核明确分为两层,上层一般称为“内核”,而底层则称为“硬件笼统层”或“硬件适配层”,缩写为HAL,有的厂商将硬件笼统层称为BSP,即板级支持包(Board Support Package).(2)主要完成工作:a.在系统启动时,对硬件进行初始化.B.为驱动法式提供访问硬件的手段.(3)主要作用:消除硬件不同.第3章 ARM体系结构1.ARM的英文全名是什么?ARM处置器有什么特点?答:见第1章课后习题第3题.2.ARM7和ARM9在流水线方面有何分歧?答:ARM7是3级流水线结构,ARM9是5级流水线结构.AR]M9把3级流水线中的执行阶段的把持进行再分配,即把执行阶段中的“寄存器读”插在译码阶段中完成,把“寄存器写”安插在另一级(即第5级)完成,同时,在该级之前,再安插一级(存储访问).3.ARM处置器支持的数据类型有哪些?答:(1)Byte 字节,8位;(2)Halfword 半字,16位;(3)Word 字,32位;4.写出ARM使用的各种工作模式和工作状态.答:(1)工作模式:详见下表:(2)工作状态:a.ARM:32位,这种状态下执行字对齐的ARM指令;b.Thumb:16位,这种状态下执行半字对齐的Thumb指令.5.ARM处置器总共有几多个寄存器?其中哪个用做PC?哪个用做LR?答:(1)ARM处置器总共有37个寄存器:31个通用寄存器,6个状态寄存器.(2)R15用做法式计数器PC,R14用做子法式链接寄存器LR.6.假设R0=0x12345678,使用将R0存储到0x4000的指令存到存储器中,若存储器为年夜端组织,写出从存储器0x4000处加载一个字节到R2的指令执行后R2的值.答:由于0x4000是年夜端组织,所以R0存进后,0x4000中有数0x56781234,从0x4000加载一个字节到R2后(由位置到高位加载),R2的值为0x34.7.ARM920T处置器加入了哪两个协处置器?各自的主要功能是什么?答:ARM920T处置器加入了两个协处置器:(1)CP14,允许软件访问调试通信通道;(2)系统控制协处置器CP15,提供了一些附加寄存器用于配置和控制Caches、MMU、呵护系统、时钟模式和其他系统选项.8.ARM920T支持哪些时钟模式?答:快速总线模式、同步模式、异步模式.9.什么是写直达和写回Cache把持,各有何特点?答:(1)写直达:当CPU对Cache写命中时,Cache与主存同时发生写修改.优点:一致性好;缺点:耗时.(2)写回:当CPU对Cache写命中时,只修改Cache 的内容而不立即写入主存,只当此执行被换出时才写回主存.优点:减少访问主存次数,提高效率.缺点:一致性差点.10.ARM为何集成了32位的ARM指令集和16位的Thumb指令集?(即它的好处)答:可提供长的转移范围、强年夜的算术运算能力和年夜的寻址空间.11.什么是big-endian和little-endian,编写一段法式测试你所用的计算机体系结构采纳哪种存储机制?答:(1)年夜端存储系统(big-endian):低地址寄存高字节,高地址寄存低字节.小端存储系统(little-endian): 低地址寄存低字节,高地址寄存高字节.(2)int x=0x12345678;int *p=&x;if(*(char*)p=0x78)…little endianelse…big endian第4章 ARM系统硬件设计基础1.一个典范的可执行映像由哪几部份组成?答:2.汇编和C语言的相互调用方法.答:(1)汇编法式调用C法式的方法为:首先在汇编法式中使用IMPORT伪指令事先声明将要调用的C语言函数;然后通过BL指令来调用C函数.(2)C法式调用汇编子法式的方法为:首先在汇编法式中使用EXPORT伪指令声明被调用的子法式,暗示该子法式将在其他文件中被调用;然后在C法式中使用extern关键字声明要调用的汇编子法式为外部函数.(弥补)3.基于ARM的硬件启动流程?答:(1)分配中断向量表;(2)初始化存储器系统;(3)初始化各工作模式下的仓库;(4)初始化有特殊要求的硬件模块;(5)初始化用户法式的执行环境;(6)切换处置器的工作模式;(7)调用主应用法式.第5章基于S3C2410的系统硬件设计1.复习掌握:P230 I/O口编程实例.弥补:2.中断的处置流程?答:(1)保管现场;(2)模式切换;(3)获取中断源;(4)中断处置;(5)中端返回,恢复现场.3.中断寄存器的作用及相关的把持?P235-237.。

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

a r m嵌入式系统课后习题部分答案GE GROUP system office room 【GEIHUA16H-GEIHUA GEIHUA8Q8-一填空题1.1嵌入式系统从大的方面分为(嵌入式系统硬件平台)和(嵌入式软件)两大部分。

1.2驱动层程序一般包括(硬件抽象层HAL)、(板级支持包BSP)和(设备驱动程序)。

1.3嵌入式系统核心是嵌入式处理器,可分为(嵌入式微处理器)、(嵌入式微控制器)、嵌入式DSP处理器和(嵌入式片上系统SoC)4大类。

2.2ARM7TDMI处理器分为(ARM)和(Thumb)两种操作状态。

2.3ARM状态下,SP寄存器指的是(R13)、LR寄存器指的是(R14)、PC寄存器指的是(R15).2.4ARM处理器支持的数据类型中,字节为(8)位、半字为(16)位、字为(32)位。

3.1ARM7TDMI(-S)指令集包括(ARM)指令集和(Thumb)指令集。

3.2LDR指令用于从(存储器)中将一个32位的字数据传送到(目的寄存器)中。

3.3指出下面各条指令的寻址方式。

SUB R0,R1,R2 ;寻址方式:(寄存器寻址)。

SUBS R0,R0,#1 ;寻址方式:(立即寻址)。

MOV R0,R2,LSL#3 ;寻址方式:(寄存器移位寻址)。

SWP R1,R1,[R2] ;寻址方式:(寄存器间接寻址)。

LDR R2,[R3,#0x0C] ;寻址方式:(基址寻址)。

4.3ARM汇编语言源程序中语句一般有(指令)、(伪指令)、(伪操作)和宏指令组成。

6.1对Flash存储器的编程可通过(JTAG仿真/调试器)、( ISP )和(IAP)3重方法来实现。

6.2异常向量表可以来自4个不同的存储器区域,分别是(片内Flash )、(片内SRAM )、( Boot Block )和片外存储器。

6.3LPC2000系列的定时器主要用于3个方面:(对内部事件进行计数的间隔定时器)、(通过捕获输入实现脉宽解调器)、(自由运行的定时器)。

嵌入式电子电路设计课后习题及答案

在实际选用传感器时可根据具体的测量目的、测量对象以及测量环境等因素合理选用,主要应考虑以下两个方面: 1. 传感器的类型 由于同一物理量可能有多种原理的传感器可供选用,可根据被测量的特点、传感器的使用条件如 传感器的量程、体积、测量方式(接触式还是非接触式)、信号的输出方式、传感器的来源(国产还是进口)、价格等 首先考虑选用何种原理的传感器。 2. 传感器的性能指标 线性范围 精度 灵敏度 稳定性 频率响应特性
物联网与无线传感器网络关系 传感器网可以看成是传感模块+组网模块共同构成的一个网络。传感器仅仅感知到信号,并不强调对物体的标识。 物联网,Internet of things,对物体进行标识。包含了传感器网、RFID、二维码等。主要试图区别于 Internet,认为 Internet 是人与人之间的网络。而物联网是物-物、物-人相连的网络。 物联网的概念相对比传感器网大。这主要是人感知物、标识物的手段,物联网不仅包含有传感器网,还可以有二维码/ 一维码/RFID 和服务应用处理层次的众多相关技术等。
在编程方式上,CPLD 主要是基于 EEPROM 或 FLASH 存储器编程,编程次数可达 1 万次,其优点是系统断电时 编程信息也不丢失。
FPGA 大部分是基于 SRAM 编程,编程信息在系统断电时丢失,所以每次上电时须将编程数据从外部配置芯片 重新写入 SRAM 中,其优点是可以编程任意次,在工作中快速编程,从而实现板级和系统级的动态配置。 FPGA 的制造工艺确定了 FPGA 芯片中包含的 LUT 和触发器的数量要比 CPLD 丰富得多,更适合完成复杂的时序逻辑。 CPLD 由于其宏单元的分解组合逻辑功能强大,适合于触发器有限而乘积项丰富的组合逻辑。 CPLD-便于组合逻辑设计(基于乘积项)FPGA-便于时序逻辑设计(基于查找表)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章 嵌入式系统概述 一、举出3个课本中未提到的嵌入式系统的例子。(红绿灯控制、数字空调、机顶盒) 二、什么是嵌入式系统?特点是? 答:嵌入式系统是嵌入到对象体系中的专用计算机应用系统。 英国电机工程师协会定义: 嵌入式系统为控制、检测或辅助某个设备、机器或工厂运作的装置。 (1)以技术角度定义:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 (2)从系统角度的定义:嵌入式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统。术语嵌入式反映了这些系统通常是大系统中的一个完整的部分,称为嵌入的系统。嵌入的系统中可以共存多个嵌入式系统。 特点:1、嵌入式系统通常应用在为特定用户设计的系统中,具有功耗低、体积小、集成度高等特点。将通用CPU中由板卡完成的任务集成在了嵌入式CPU内部。 2、嵌入式系统是将先进的计算机技术、半导体技术和电子技术于各个行业的具体应用相结合的产物。所以是技术密集、资金密集、高度分散、不断创新的知识集成系统。 3、嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣,去除冗余。 4、为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或处理器芯片中,而不是存储于磁盘等载体中。由于嵌入式系统必须有较高的时实性,因此对程序的质量,特别是可靠性有较高的要求。 5、嵌入式系统本身不具备自举开发能力,必须有一套专用的开发工具和环境才能进行开发。 三、什么叫嵌入式处理器?嵌入式处理器分为哪几类? 答:嵌入式处理器是嵌入式系统的核心,是控制、辅助系统运行的硬件单元,与普通台式计算机的微处理器相比,其工作稳定性更高,功耗较小,对环境(如温度、湿度、电磁场、震动等)的适应能力更强,体积更小,且集成的功能较多。 嵌入式处理器从应用角度,可以大致分为以下几类: 1.注重嵌入式处理器的尺寸、能耗和价格。应用于新型电子娱乐等不注重计算的设备; 2.注重嵌入式处理器的性能。应用于路由器等高速计算密集型的设备; 3.注重嵌入式处理器的性能、尺寸、能耗和价格。应用于各种工业控制设备; 按照结构分类:嵌入式微处理器(EMPU);嵌入式微控制器(MCU);嵌入式DSP处理器(DSP);嵌入式片上系统(SOC)。 嵌入式系统的分类也是以上答案(P5) 。 四、什么是嵌入式操作系统?为何要使用嵌入式操作系统? 答:操作系统是计算机中最基本的程序。操作系统负责计算机系统中全部软硬资源的分配与回收、控制与协调等并发的活动;操作系统提供用户接口,使用户获得良好的工作环境;操作系统为用户扩展新的系统功能提供软件平台。 使用嵌入式操作系统原因之一就是因为其具有实时性。使用嵌入式实时操作系统具有以下优点: 1. 嵌入式实时操作系统提高了系统的可靠性。 2. 嵌入式实时操作系统提高了开发效率,缩短了开发周期。 3. 嵌入式实时操作系统充分发挥了32位CPU的多任务潜力。 第二章 ARM7体系结构 一、基础知识 (1)ARM7TDMI中的T、D、M、I的含义是什么?(P19) 答:T后缀:高密度16位Thumb指令集扩展。 D后缀:支持片上调试。 M后缀:64位乘法指令。 I后缀:Embedded ICE硬件仿真功能模块。 (2)ARM7TDMI采用几级流水线?(P20)使用何种存储器编址方式? 答:采用三级流水线,三个阶段分别为:取指、译码、执行。使用了冯诺依曼结构,指令和数据共用一条32位总线。 (3)ARM处理器模式和ARM处理器状态有何区别?(P24~P26) 答:处理器模式指的是处理器在执行程序时,在不同时刻所处的不同状态。处理器状态指的是处理器当前所执行的指令集。 (4)分别列举ARM的处理器模式和状态。 答:处理器模式:7种,:用户模式(usr)和特权模式,特权模式包括系统模式(sys)和异常模式,异常模式包括:管理模式(svc)、中止模式(abt)、未定义模式(und)、中断模式(irq)、快速中断模式(fiq)。 处理器状态:ARM状态为32位,这种状态下执行的是字方式ARM指令,具有最完整的功能,处理器在系统上电时默认为ARM状态。 Thumb状态为16位,这种状态下执行半字方式的Thumb指令。 (5)PC和LR分别使用哪个寄存器?(P31~P32) 答:程序计数器(PC)使用R15寄存器,链接寄存器(LR)使用R14寄存器。 (6)R13寄存器的通用功能是什么?(P29~P30) 答:ARM处理器通常将寄存器R13作为堆栈指针(SP),用于保存堆栈的出入口处地址。 (7)CPSR寄存器中哪些位用来定义处理器状态? 答:程序状态寄存器CPSR, (8)描述一下如何禁止IRQ和FIQ的中断?(P38) 答:当控制位I置位时,IRQ中断被禁止,否则允许IRQ中断使能; 当控制位F置位时,FIQ中断被禁止,否则允许FIQ中断使能。 二.存储器格式 定义假设使用存储指令将R0的值存放在0x4000单元中。如果存储器格式为大端格式,请写出在执行加载指令将存储器0x4000单元的内容取出存放到R2寄存器操作后所得R2的值。如果存储器格式改为小端模式,所得R2值又为多少?低地址0x4000单元的字节内容分别是多少?(P49) 三、处理器异常 请描述一下ARM7TDMI产生异常的条件是什么?各种异常会使处理器进入哪种模式?进入异常时内核有何操作?各种异常的返回指令又是什么? 答:只要正常的程序被暂时中止,处理器就进入异常模式。 地址 异常 进入时的模式 进入时I的状态 进入时F的状态 返回指令

0x0000 0000 复位 管理 禁止 禁止 无

0x0000 0004 未定义指令 未定义 I F MOVS PC,R14_und 0x0000 0008 软件中断(SWI) 管理 禁止 F MOVS PC,R14_svc 0x0000 000C 中止(预取) 中止 I F SUBS PC,R14_abt, # 4 0x0000 0010 中止(数据) 中止 I F SUBS PC,R14_abt, # 8 0x0000 0014 保留 保留 — — —

0x0000 0018 IRQ 中断 禁止 F SUBS PC,R14_irq, # 4 0x0000 001C FIQ 快速中断 禁止 禁止 SUBS PC,R14_fiq, # 4

第三章ARM7TDMI(-S)指令系统 一、基础知识 (1)ARM7TDMI(-S)有几种寻址方式(P53)?“LDR R1,[R0, #0x08]”属于哪种寻址方式? 答:共有8种寻址方式:寄存器寻址、立即寻址、寄存器移位寻址、寄存器间接寻址、基址寻址、多寄存器寻址、堆栈寻址、相对寻址。 LDR R1,[R0, #0x08]属于基址寻址,意思是读取R0+0x08地址上的存储单元的内容,存入R1。 (2)ARM指令的条件码有多少个(P60)?默认条件码是什么? 答:有16个,EQ、NE、CS/HS、CC/LO、MI、PL、VS、VC、HI、LS、GE、LT、GT、LE、AL、NV, 默认条件码是AL。 (3)ARM指令中第2个操作数有哪几种形式(P58)?列举5个8位图立即数。 答:有3种形式:immed_8r——常数表达式。Rm——寄存器方式。Rm,shift——寄存器移位方式。 5个8位图立即数:0x3FC(0xFF<<2)、0、0xF0000000(0xF0<<24)、200(0xC8)、0xF0000001(0x1F<<28)。 (4)LDR/STR指令的偏移形式有哪4种(P62)?LDRB指令和LDRSB指令有何区别? 答:LDR/STR指令的偏移形式有4种,分别是:零偏移、前索引偏移、程序相对偏移、后索引偏移。LDRB指令是加载无符号字节数据,LDRSB指令则是加载有符号字节数据。LDRB就是读出指定地址的数据并存入指定寄存器,LDRSB读出指定地址的数据,高24位符号位用于扩展,再存入指定寄存器。 (5)请指出MOV指令与LDR加载指令的区别及用途。 答:MOV指令的源操作数是常数或(带偏移量的)寄存器,用于寄存器之间的数据传送;LDR指令的源操作数是地址,用于存储器到寄存器的数据传送。 (6)CMP指令是如何执行的?写一程序,判断R1的值是否大于0x30,是则将R1减去0x30。(P71) 答:CMP 指令将寄存器Rn 的值减去operand2 的值,根据操作的结果更新CPSR 中的相应条 件标志位,以便后面的指令根据相应的条件标志来判断是否执行。CMP指令不保存运算结果,在进行两个数据的大小判断时,常用CMP指令及相应的条码来操作。 程序: CMP {cond} Rn, operand2 CMP R1,#0x30 ;将R1与常数0x30比较 LDRLE PC,LR ;如果小于或等于0x30,则程序返回 SUB R1,R1, #0x30 ;大于0x30,则将R1减去0x30,结果存回R1 (7)调用子程序是用B指令还是用BL指令?请写出返回子程序的指令。(P73) 答:BL 指令用于子程序调用。 MOV PC,LR 或者 BX LR (8)请指出LDR伪指令的用法。(P61)指令格式与LDR加载指令的区别是什么? 答:LDR指令用于从内存中读取数据放入寄存器或者用于加载32位的立即数,还常用于加载芯片外围功能部件的寄存器地址,指令格式与LDR加载指令的区别在于第二个数为地址表达式,伪指令的LDR的参数有“=”号。 (9)ARM状态与Thumb状态的切换指令是什么?请举例说明。

相关文档
最新文档