一、选择题
1-4: D  C  D  B
分标准:题520
二、填空题
1. module_init(  foo_init    );
module_exit(  foo_exit    );
2. make –C  /usr/local/linux-2.6.x      M=                             
      /home/drivers          modules
3..read =     foo_read      , };
cdev_init(&dev->cdev,    &globalmem_fops  );
4.Input输入子系统主要由(核心)层、        (  驱动  )层和( 事件处理  )层三部分组成。
5. Linux将4GB的内存空间分为两部分0~3GB为(  用户 )空间,3~4GB为(内核)空间。
6. 在PXA270驱动开发过程中,通过minicom配置串口时,打开命令选项的快捷键为(CTRL+AZ)。
评分标准:每题5分,共30分
三、简答
1. 简述驱动程序的概念及其在工程中的应用(说明4
答:驱动的概念:驱动硬件的软件(意思对就可以)
工程中的应用:1. 嵌入按键驱动、鼠标驱动、USB驱动
2.多线程应用通信中,通过内核模块实现共享内存功能
3.基于网络的应用中,需要对网络数据包进行加解操作,需要利用底层驱动捕捉网络数据。
4.利用驱动实现虚拟设备,虚拟网卡,虚拟磁盘等
评分标准:每点2.5分,共10分,意思对即可
2. 试描述pxa270编译helloworld驱动源程序hello.c的操作过程(从配置环境,编译,下载,运行几个流程说明,注意需要指出每一步运用到的核心命令,但不需要参数)。
答:(1)配置环境:1)获得内核源代码树,编译内核,make bzImage;
(2)编译驱动源代码:1)编写Makefile 2)编译驱动源文件到hello.ko
(3)下载:1)利用mount命令挂载nfs;
(4)运行:1)通过嵌入式多线程编程Insmod命令加载模块; 2)通过rmmod命令卸载模块
评分标准:每点2.5分,共10分,意思对即可
四、综合应用题
1.假设某一开发板有一个LED灯,现已经实现了相应的驱动程序led.c,并编译生成了led.ko文件。现有要求如下:
(1)假设给定led设备驱动的主设备号为 128,次设备号为0,请为led设备在/dev目录下面安装设备节点。
答:  mknod /dev/led c 128 0
(2)假设已经加载了led.ko文件到内核,请通过命令查询该led驱动申请设备号是否成功。
通过lsmod命令查看内核模块是否加载成功;
(3)led驱动实现了如下led_write函数:
  请编写应用程序,点亮led灯
  答:
#include<stdio.h>
void main()
{
    FILE *fp;
    If((fp = fopen(“/dev/led”,”r+”)) == NULL) //5
  {
        return ;
    }
    fputc(‘o’,fp); //5
    fclose(fp);  //5
}
评分标准:(1)5分 (2)5分 (3)20分,程序结构正确5分,其余各点按代码中注释给定。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。