2011 2012 学年第一学期嵌入式系统科目考试试题a卷答案。
使用班级(老师填写):计算机08-1,2班。
一. 填空题(每空1分,共20分)
1.嵌入式微控制器嵌入式数字信号处理器嵌入式微处理器嵌入式片上系统
2.大端模式小端模式
3.arm状态 thumb状态
4.七非特权模式特权模式非特权模式
5.0x0 supervisor
6.宿主机/目标机 pc机或台式机
7.分开冯诺依曼体系
8. 三五
二 。选择题(每题1分,共20分)
三.判断题(每题1分,共10分)
四.简答题 (每题4分,共20分)
答:arm有两种工作状态:
arm状态,此时处理器执行32位的字对齐的arm指令。
thumb状态,此时处理器执行16位的、半字对齐的thumb指令。
在程序的执行过程中,微处理器可以随时在两种工作状态之间切换,并且不影响处理器运行模式和相应寄存器中的内容。arm指令集和thumb指令集均有切换处理器状态的指令,并可在两种工作状态之间切换,但arm微处理器在上电或复位后,应该处于arm状态。
执行bx跳转指令,将操作数的状态位(位0)设置为1时,可以使处理器从arm状态切换到thumb状态。此外,当处理器处于thumb状态时发生异(如irq、fiq、undef、abort、swi等),则异常处理返回时,自动切换到thumb状态。
执行bx跳转指令,将操作数的状态位(位0)设置为0时,可以使处理器从thumb状态切换到arm状态。此外,当处理器进行异常处理时,把pc指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到arm状态。
thumb指令集在功能上只是arm指令集的一个子集,某些功能只能在arm状态下执行,如cpsr和协处理器的访问。
进行异常响应时,处理器会自动进入arm状态。
即使是一个单纯的thumb应用系统,必须加一个汇编的交互头程序,因为系统总是自动从arm开始启动。
答:初始化程序是系统加电后运行的第一段软件**。在嵌入式系统中,通常整个系统的加载启动任务就完全由bootloader来完成。
简单地说,bootloader就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软、硬件环境带到一个合适的状态,以便为调用应用程序或者操作系统内核准备好正确的环境。
答:arm处理器一共有7种运行模式,它们分别是:用户模式(user)、快速中断模式(fiq)、外部中断模式(irq)、管理模式(svc)、数据访问中止模式(abt),系统模式(sys)和未定义指令中止模式(und)。
系统模式和用户模式。
答:搭建linux开发环境、简历交叉编译环境、配置minicom、tftp以及nfs服务。
安装nfs软件包:
#apt-get install portmap nfs-kernel-server
#apt-get install portmap nfs-common
编辑/ect/exports,添加要共享的目录。
source/rootfs *(rw,sync,no_root_squash)
把开发板配置的根文件系统拷贝到共享目录: /souce/rootfs下。
重启nfs服务:
#/etc/ restart
#/etc/ restart
答:linux的根文件系统包括支持linux系统正常运行的基本内容,至少应包括以下几项内容:
基本的文件系统结构,如bin、dev、etc、sbin、lib、usr、proc;
基本程序运行所需的动态库。
基本的系统配置文件;
必要的设备文件支持。
基本的应用程序,如sh、cp、ls 等。
五.编程题(每题10分,共20分)
#include ""
#define rgpfcon (*volatile unsigned *)0x56000050)
端口f的控制寄存器。
#define rgpfdat (*volatile unsigned *)0x56000054)
端口f的数据寄存器。
#define rgpfupvolatile unsigned *)0x56000058)
端口f的上拉控制寄存器。
void port_init(void)
/==port f group
/端口: gpf7 gpf6 gpf5 gpf4 gpf3 gpf2 gpf1 gpf0
/信号: led_1 led_2 led_3 led_4 ps2_int cpld_int1 key_int but_int1
/设置属性: output output output output eint3 eint2 eint1 eint0
/二进制值: 01 01, 01 01, 10 1010 10
rgpfcon = 0x55aa;
rgpfup = 0xff; /gpf所有端口都不加上拉电阻。
void led_on(void)
int i,nout;
nout=0xf0;
rgpfdat=nout & 0x70; /点亮led1
for(i=0;i<100000;i++)
rgpfdat=nout & 0x30; /点亮led1 led2
for(i=0;i<100000;i++)
rgpfdat=nout & 0x10; /点亮led1 led2 led3
for(i=0;i<100000;i++)
rgpfdat=nout & 0x00; /点亮led1 led2 led3 led4
for(i=0;i<100000;i++)
void led_off(void)
int i,nout;
nout=0;
rgpfdat = 0;
for(i=0;i<100000;i++)
rgpfdat = nout | 0x80; /关闭led1
for(i=0;i<100000;i++)
rgpfdat |=nout | 0x40; /关闭led2
for(i=0;i<100000;i++)
rgpfdat |=nout | 0x20; /关闭led3
for(i=0;i<100000;i++)
rgpfdat |=nout | 0x10; /关闭led4
for(i=0;i<100000;i++)
void led_on_off(void)
int i;
rgpfdat=0所有led全亮。
for(i=0;i<100000;i++)
rgpfdat=0xf0所有led全灭。
for(i=0;i<100000;i++)
void led_test(void)
led_on();
led_off();
led_on_off();
delay(1000);
rgpfcon = 0x55aa
void main(int argc,char **ar**)
port_init
while(1)
pr1: gcc –o pr1
gcc –c –o
gcc –c –o
六.阅读程序题(每题10分,共10分)
答:第1-3行:定义看门狗控制寄存器、数据寄存器和计数寄存器为rwtcon、rwtdat
和rwtcnt
第4行: 设置看门狗的预装比例值为1000000,分频因素为1/28,并使能中断。
第5-6行:对数据寄存器和计数寄存器赋值为7812。
第7行:启动看门狗。
嵌入式系统答案
因此,fcclk 5 11.0592 55.296mhz,pllcfg 4 0 m 1 00100b。根据,p fcco fcclk 2 而fcco 156mhz 320mhz,则 156 2 55.296 p 320 2 55.296 得 1.41 p 2.89 因为p的取值范围为 1,2,4,8...
嵌入式系统答案
嵌入式系统结构与操作系统 期中试卷参 一 填空题 35分,每小题5分 1 0x40001008 取指。2 冯 若依曼 统一编址 统一编址。3 特权 用户。4 低 arm 管理 0x00000000。5 0x44332211 0x11223344 0x11223344 0x11223344。6 顶格 ...
嵌入式系统》答案
2004 2005学年 嵌入式系统 课程试卷答案。一 单项选择题 dcbda cbaad ccabc ccada adcbc 二 简答与名词解释 广泛的硬件支持。内核高效稳定。开放源码,软件丰富。优秀的开发工具。完善的网络通信和文件管理机制。硬件平台的移植。引导 装载程序的移植。内核的修改配置编译。...