2012-2-13-1嵌入式程序设计A卷

上传人:M****1 文档编号:431751722 上传时间:2023-09-01 格式:DOC 页数:8 大小:81.50KB
返回 下载 相关 举报
2012-2-13-1嵌入式程序设计A卷_第1页
第1页 / 共8页
2012-2-13-1嵌入式程序设计A卷_第2页
第2页 / 共8页
2012-2-13-1嵌入式程序设计A卷_第3页
第3页 / 共8页
2012-2-13-1嵌入式程序设计A卷_第4页
第4页 / 共8页
2012-2-13-1嵌入式程序设计A卷_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《2012-2-13-1嵌入式程序设计A卷》由会员分享,可在线阅读,更多相关《2012-2-13-1嵌入式程序设计A卷(8页珍藏版)》请在金锄头文库上搜索。

1、2012-2013学年第1学期答题纸学 院: 专 业: 学号: 姓名: 装订线 学院课程名称:嵌入式程序设计(A卷)题号一二三四五六七八总成绩得分得分一、填空题(共30分,每小题2分)1. 内核在配置结束后,会将用户的选择结果保存在文件( )中AdefconfigBconfigCdefaultD.config2. Kconfig文件中生成新的配置菜单使用( )AmenuBhelpCdefaultDconfig3. 在内核解压缩目录的Makefile文件中修改的ARCH变量实际是在指定( )A优化参数B目标系统架构C交叉编译器D编译参数4内核在编译时所依赖的编译规则文件是( )A.configB

2、MakefileCMakeDFile5linux下所使用的串口调试工具是( )AgccBnfsCminicomDtftp6在操作过程中,内核编译所生成的内核压缩可执行文件是( )As3c2440Blinux-2.6.32.2CzImageD选项均不真确7为了通过devfs文件系统访问设备,需要创建设备文件,那么创建设备文件的指令是( )AmkdirBmknodeCmakeDmknod8根文件中用来配置系统环境变量的脚本是( )AfstabBetcCprofileDlinuxrc9下面的编译器( )是交叉编译器AgccBarm-linux-gccCgdbDg+10配置内核时,所使用的配置菜单生成

3、指令是( )Amake menuconfigBmake cleanCmake zImageDmake11完成驱动程序模块注册的宏是( )Amodule_init()Binit_module()Cmodule_exit()Dexit_module()12下列函数中不属于内核驱动程序使用的有( )AprintfBcopy_to_userCcopy_from_userDprintk13下列函数中属于file_operations( )结构体的函数指针有( )AwriteBopenCcloseDreadE以上都是14构建嵌入式linux软件平台所必须的组件除了( )外都包括。AUser File Sy

4、stem BFile SystemCKernelDBootloader15在实验中我们使用( )程序实现LINUX主机与目标机之间的串行通信;A超级终端 Bminicom C. tftp D.usb接口二、填空题(共20分,每小题2分)1Linux的驱动程序有 _ _ 、块设备驱动程序、网络设备驱动程序、杂项驱动程序;2用来从内核态下拷贝数据到用户态下的函数是_ _;3用 和 命令来装载和卸掉Linux 驱动模块;4在实验程序编译前,要执行如下两条指定:主要的目的是: ;5在linux程序中创建一个子进程的函数是 ;6查询当前所在目录linux命令是 ;7制作一个文件系统常用的软件是 ;8三、

5、简答题(20分)1简述嵌入式 Linux 开发流程(10分)2Bootloader主要作用是什么? bootloader 的启动流程一般包括两个阶段,请问每个阶段各完成什么任务?(10分)四、编程题(30分)1根据图1模块间的依赖关系编写Makefile文件生成main可执行文件,编译器采用交叉编译器arm-linux-gcc (10分)def1.hdef2.hdef3.hmain.cf1.cf2.cmain.of1.of2.omain图1 模块间的依赖关系2用套接字(socket)编程来实现一个嵌入式Linux环境下的服务器端,其中服务器端首先建立其socket,然后与本地端口进行绑定,接着

6、开始接收从客户端的连接请求并建立连接,接下来,接收客户端发送的消息。要求:协议采用TCP协议,socket 为SOCK_STREAM类型,端口号为4900,最大处理请求数为5个。(10分)3以下是实验指导书ADC驱动程序中的读函数和初始化函数,请阅读后,按照要求写出注释。static ssize_t adc_read(struct file *file, char _user *buf, size_t count, loff_t *ppos)int data;unsigned long tmp;int channel = MINOR(struct cdev *)(file-private_da

7、ta)-dev);tmp = readl(base_addr+S3C2410_ADCCON) | S3C2410_ADCCON_ENABLE_START | S3C2410_ADCCON_SELMUX(channel);writel( tmp, base_addr+S3C2410_ADCCON);;以上两语句的含义是: dotmp = readl(base_addr+S3C2410_ADCCON);while(!(unsigned int)tmp)&0x8000);;以上do while语句的作用是: /read datadata = readl(base_addr+S3C2410_ADCDA

8、T0) & 0x3ff;if(copy_to_user(buf, &data, sizeof(int)return -EFAULT;return (sizeof(int);static int _init adc_init(void)int ret;ret = register_chrdev(0,DEVICE_NAME,&adc_fops);;register_chrdev函数各参数的含义是: if(ret 0) printk(adc: cant get major numbern); return ret;adc_major = ret;#ifdef CONFIG_DEVFS_FS ret

9、= devfs_mk_cdev(MKDEV(adc_major,0), S_IFCHR | S_IRUGO | S_IWUSR,DEVICE_NAME);if(ret)unregister_chrdev(adc_major,DEVICE_NAME); printk(adc: cant make char device fo devfsn);return ret;#endifbase_addr=ioremap(S3C2410_PA_ADC,0xf);;以上一条语句的目的是: if (base_addr = NULL) printk(KERN_ERR Failed to remap register blockn); return -ENOMEM; printk(s3c2410_adc driver initialn); return 0;答题纸第 3 页 (共 8 页)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 工业自动化

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号