嵌入式驱动开发实验指导书 下载本文

c) 修改/usr/src/linux/driver/char下Makefile文件,在适当位置加入一行

obj-$(CONFIG_GLOBALVAR) += globalvar.o 2)

内核编译(在内核编译过程中,工作路径始终为:

/usr/src/linux)

a) make mrproper (清除已编译文件、配置文件及备份文件等); b) make menuconfig (配置内核选项,选中globalvar项) c) make clean (再次清除不必要的文件) d) make dep (建立文件依赖关系)

e) make bzImage (编译内核,编译后在/usr/src/linux/arch/i386/boot下生成新内核镜像文件bzImage

f) make modules (编译模块) g) make modules_install (安装模块) h) make install (安装内核) 3)

reboot,测试新内核及静态加载的globalvar驱动程序。

a) reboot

b) cat /proc/devices

c) mknod /dev/globalvar c 253 0 d) ./test.o 4)

按照之前实验提交方式,提交源程序、目标程序及测试结果

一.Chrdemo

定义设备号 定义设备名 指定内核内存地址

从用户空间复制数据到内核空间 写数据到设备

从设备读数据

从内核空间复制到用户空间

对设备进行初始化 计数器加1

关闭设备 计数器减一

命令为1时的处理代码 命令为2时的处理代码 错误命令的处理代码

定义与文件关联的结构体,并对功能函数初始化 是与文件关联的接口

驱动注册函数的代码

驱动注销函数的代码

指定加载函数和卸载函数的代码

打开字符设备chrdemo

将buf1写到chrdemo中 从chrdemo读出到buf2

对chrdemo发控制码‘1’ 对chrdemo发控制码‘4’ 关闭字符设备chrdemo 二.内核编译