




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
制卷人签名: 制卷日期: 审核人签名: 审核日期: 装 订线 湘潭大学兴湘学院2009年下学期 嵌入式系统期末考试试卷适用年级专业 06级计算机科学与技术,网络工程 考试方式 闭卷 考试时间 120 分钟学院 专业 班级 学号 姓名 题号一二三总分阅卷教师得分得分一、选择题(每题2分,共40分)请将选择题的答案填入下表,答案以表中的为准!题目12345678910答案DDDDBBCAAD题目11121314151617181920答案DCCABDCBBB1. 下列不是嵌入式系统特点的是:A. 系统内核小B. 专用性强C. 系统精简 D. 实时性要求不高2. 关于ARM汇编和C语言混合编程下列错误的是:AC语言中可以直接嵌入某些汇编指令B. C语言中可以调用汇编的子程序C.汇编程序中可以调用C语言的函数D. C语言嵌入的汇编指令时,不可以使用C的变量3. 关于ATPCS规则,说法错误的是:A. 只能使用R0-R3来传递参数 B. R13为堆栈指针SP,需要保护 C. R14为连接寄存器,用于存放程序返回地址 D. 单字的返回值存放在R04. 关于交叉编译描述正确的是:A. 编译器运行在目标机,生成的可执行文件在宿主机上运行B编译器运行在宿主机,生成的可执行文件在宿主机上运行C编译器运行在目标机,生成的可执行文件在目标机上运行D编译器运行在宿主机,生成的可执行文件在目标机上运行5. 建立嵌入式Linux开发环境中,使用Bootp协议的直接目的是:A. 分配宿主机的IP地址B. 分配目标机的IP地址C. 用于宿主机和目标机之间通讯D. 用于监控目标机的运行。6. 关于make工具的使用,下面错误的是:A. 不指定目标时,make缺省处理makefile文件的第一个目标。B. makefile文件中对宏名的引用为#(宏名)。C. makefile文件中$参数表示一条规则中目标的名字。D. make CC=arm-linux-gcc命令表示使用arm-linux-gcc代替makefile文件中CC的宏定义执行make命令。7. 下面不属于嵌入式操作系统的是:AVxWorksB. QNX C. MacOS D. WinCE8. 关于Linux2.4内核,说法错误的是:A. Linux为单内核,效率高,紧凑B. 按进程优先级调度C 具有虚拟文件系统,可以支持多种文件系统D. 设备驱动模块化9. 嵌入式Linux开发中使用GDB调试,说法错误的是:AGDB程序在宿主机上运行B. 需要使用远程调试模式C需要交叉编译GDBServerD. 被调试程序在宿主机上运行10. 下列属于常见的嵌入式GUI的有:A. WindowsB. QTC.GNOMED. MiniGUI11. Linux将设备分成三类,不是这三类的是:A网络设备B. 字符设备C. 块设备D. 杂项设备12. 关于二阶段BootLoader说法错误的是:A BootLoader的第一阶段代码全部由汇编语言构成;B BootLoader的第一阶段代码在Flash中运行;C BootLoader中可以使用glib库中的函数;D BootLoader第二阶段代码大部分由C语言写成,所以需要使用栈。13. 关于Linux存储管理,错误的是:A使用页式的虚拟内存管理B. 每个进程都有4GB内存C最低1G是内核空间D. 使用三级页表14. 嵌入式系统一般由嵌入式微处理器,系统外部电路, ,和特定应用程序4个部分组成。A嵌入式操作系统 B. 硬件驱动程序C. BootLoaderD. 文件系统15. 向无任何程序的目标机中写入BootLoader程序,一般使用下面那种接口:A串口B. JTAGC. EthernetD.USB16. 关于ARM7系列微处理器的操作模式,不对的是:A一共有7种操作模式B. 除了用户模式,其他都为特权模式C不同模式下使用的寄存器可能会不相同D.通过改变SPSR中的低5位来切换模式17. 关于BusyBox,下列说法错误的是:A它常用来构建嵌入式Linux的根文件系统B. 支持的shell命令可以进行配置C支持的命令完全和Linux命令相同 D. 作为嵌入式Linux根文件系统时需要交叉编译18. Linux网络设备驱动中用于在Linux网络子系统中的各层之间传递数据的数据结构为:Anet_deviceB. sk_buffC. net_devD.skb19. 在Linux2.6中,关于中断下列说法错误的是:A中断处理分为顶半部和底半部B. 中断处理中可能没有底半部C底半部支持Tasklet,工作队列,软中断三种机制 D. Tasklet方法可以被睡眠20. 有关Linux内核裁剪下列说法错误的是A可以使用make menuconfig命令进行内核的配置B. 所有的配置项都可以按以编译入内核,编译成模块,不编译三种方式配置C使用make zImage命令会编译生成内核镜像文件zImage D. 嵌入式Linux内核编译时应该采用交叉编译器得分二、问答题(三题,共30分)1. 简述使用Linux的socket建立UDP服务端程序的步骤及相关函数。(10分)答:(1)创建UDP套接字(2)捆绑服务器端口到套接字(3)把套接字换成监听套接字(4)接收用户的连接,发送应答(5)停止服务2. 嵌入式Linux开发中经常使用NFS,使得开发变得更加简便。请问在已经具有支持NFS的内核的嵌入式Linux开发平台上怎么配置NFS服务,请写出必要的步骤?(7分)答:1)配置NFS服务器要配置NFS服务器,可以通过使用文本编辑器(如vi或gedit)修改配置文件/etc/exports的方法来完成。在每次改变/etc/exports的时候,必须把改变通知给NFS守护进程,或使用以下命令来重新载入配置文件: /sbin/service nfs reload2)启动和停止NFS服务要启动或停止NFS服务,必须以root登录并使用以下命令来启动 NFS 守护进程,其命令格式如下: /sbin/service nfs start | stop要启动NFS,在“#”提示符下键入以下命令行: /sbin/service nfs start该命令在执行过程中会显示启动过程是否正确。要停止NFS,则在“#”提示符下键入以下命令行:/sbin/service nfs stop还可以使用以下命令来查看NFS守护进程的状态: /sbin/service nfs status3. 请描述建立一个嵌入式开发平台的步骤。(13分)答:(1)连接主机和目标板(2)使用flash工具烧写bootloader (3)配置并启动主机的bootp服务(4)配置并启动主机的tftp服务(5)使用tftp下载内核及根文件系统镜像到目标板,重启目标板(6)配置并启动NFS服务(7)在目标板使用mount挂载主机的目录(8)再次使用bootp命令确认bootp服务是否建立,使用tftp命令确认tftp服务建立。(9)将内核镜像和根文件系统cp到tftp根目录。(10)重启目标板,确认嵌入式linux正常启动。得分三、应用题(共30分)1. 下面是一个带并发控制的全局内存虚拟字符设备驱动的一部分,请完成程序填空。#define GLOBALMEM_SIZE0x1000/*全局内存最大4K字节*/#define MEM_CLEAR 0x1 /*清0全局内存*/#define GLOBALMEM_MAJOR 254 /*预设的globalmem的主设备号*/static globalmem_major = GLOBALMEM_MAJOR;/*globalmem设备结构体*/struct globalmem_dev struct cdev cdev; /*cdev结构体*/ unsigned char memGLOBALMEM_SIZE; /*全局内存*/ struct semaphore sem; /*并发控制用的信号量*/ ;struct globalmem_dev *globalmem_devp; /*设备结构体指针*/*文件打开函数*/int globalmem_open(struct inode *inode, struct file *filp) /*将设备结构体指针赋值给文件私有数据指针*/ filp-private_data = (1)globalmem_devp ; return 0;/*文件释放函数*/int globalmem_release(struct inode *inode, struct file *filp) return 0;/* ioctl设备控制函数 */static int globalmem_ioctl(struct inode *inodep, struct file *filp, unsigned int cmd, unsigned long arg) struct globalmem_dev *dev = filp-private_data; /*获得设备结构体指针*/ switch (cmd) case MEM_CLEAR: if ( (2) down_interruptible (&dev-sem)/获取信号量 return - ERESTARTSYS; memset(dev-mem, 0, GLOBALMEM_SIZE); (3) up (&dev-sem); /释放信号量 printk(KERN_INFO globalmem is set to zeron); break; default: return - EINVAL; return 0;/*读函数*/static ssize_t globalmem_read(struct file *filp, char _user *buf, size_t size, loff_t *ppos) unsigned long p = *ppos; unsigned int count = size; int ret = 0; struct globalmem_dev *dev = filp-private_data; /*获得设备结构体指针*/ /*分析和获取有效的写长度*/ if (p = GLOBALMEM_SIZE) return count ? - ENXIO: 0; if (count GLOBALMEM_SIZE - p) count = GLOBALMEM_SIZE - p; if ((2) down_interruptible (&dev-sem) return - ERESTARTSYS; /*内核空间-用户空间*/ if ( (4) copy_to_user (buf, (void*)(dev-mem + p), count) ret = - EFAULT; else (5) *ppos+=count ; ret = count; printk(KERN_INFO read %d bytes(s) from %dn, count, p); (3) up (&dev-sem); /释放信号量 return ret;/*写函数*/static ssize_t globalmem_write(struct file *filp, const char _user *buf, size_t size, loff_t *ppos) unsigned long p = *ppos; unsigned int count = size; int ret = 0; struct globalmem_dev *dev = filp-private_data; /*获得设备结构体指针*/ /*分析和获取有效的写长度*/ if (p = GLOBALMEM_SIZE) return count ? - ENXIO: 0; if (count GLOBALMEM_SIZE - p) count = GLOBALMEM_SIZE - p; if ((2) down_interruptible (&dev-sem) /获得信号量 return - ERESTARTSYS; /*用户空间-内核空间*/ if ( (6) copy_from_user (dev-mem + p, buf, count) ret = - EFAULT; else (5) *ppos+=count ; ret = count; printk(KERN_INFO written %d bytes(s) from %dn, count, p); (3) up (&dev-sem); /释放信号量 return ret;/*文件操作结构体*/static const struct file_operations globalmem_fops = .owner = THIS_MODULE, .llseek = globalmem_llseek, .read = globalmem_read, .write = globalmem_write, .ioctl = globalmem_ioctl, .open = globalmem_open, .release = globalmem_release,;/*初始化并注册cdev*/static void globalmem_setup_cdev(struct globalmem_dev *dev, int index) int err, devno = MKDEV(globalmem_major, index); cdev_init((7)&dev-cdev ,(8) &globalmem_fops ); dev-cdev
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小区地下室顶层施工方案
- 2025年安徽省高校毕业生三支一扶计划招募笔试考试大纲考前自测高频考点模拟试题及答案详解参考
- 儿童听觉训练题库及答案
- 2025企业劳动合同模板AA
- 昔阳悬挑架搭拆施工方案
- 2025年巢湖市属事业单位考试试卷
- 年会活动策划方案范本
- 风场升压站围墙施工方案
- 2025南平延平太平镇卫生院招聘药房工作人员模拟试卷附答案详解(典型题)
- 拆除房屋施工方案多少钱
- 借款合同中国农业银行担保借款合同3篇
- 建筑装修工程质量监督管理制度
- 不锈钢栏杆施工全流程方案
- 2025住院医师规范化培训院内师资培训考核测试题附答案
- 《一定要争气》(第2课时) 课件 小学语文部编版三年级上册
- 血透室护士手卫生
- USP232-233标准文本及中英文对照
- 部编版八上语文名著《红岩》问答题精练(教师版)
- 2025-2026学年人教精通版四年级英语上册(全册)教学设计(附目录)
- 2025年秋期人教版2年级上册数学核心素养教案(校园小导游)(教学反思有内容+二次备课版)
- 全科医学健康教育
评论
0/150
提交评论