Linux设备驱动开发流程

来源:互联网 发布:a1科密考勤系统数据库 编辑:程序博客网 时间:2024/04/19 03:13
   一、目的: 

   (1)学习在 LINUX 下进行驱动设计的原理

(2)掌握模块编程的框架、开发调试流程和有关的linux命令

2掌握使用模块方式进行字符设备驱动的开发和测试的过程

二、实验设备及工具(包括软件调试工具)

硬件:博创2410 嵌入式实验平台、PC 机Pentium 500 以上, 硬盘10G 以上。

软件:PC 机操作系统虚拟机REDHAT linux+超级终端+ARM-LINUX 开发环境

三、实验步骤

(1)、将试验台与PC机用串口连接起来(将试验台信息反馈到PC机的超级终端)

              将试验台与PC机用网线连接起来(保证PC机可以与实验平台进行通讯)

              打开电源开关

 (2)、环境配置

1)、主机配置超级终端,配好后打开实验台电源,查看是否能通过超级终端传过来启动信息。(个人理解为超级终端就当目标机)

2)、主机安装交叉编译器(在Windows平台上,可使用Visual C++开发环境,编写、编译成可执行程序。这种方式下,我们使用PC平台上的Windows工具开发针对Windows本身的可执行程序,这种编译过程称为native compilation,本机编译。然而,在进行嵌入式系统的开发时,运行程序的目标平台通常具有有限的存储空间和运算能力,比如常见的 ARM 平台。在Linux PC上,利用arm-linux-gcc编译器,可编译出针对Linux ARM平台的可执行代码。)

将博创实验平台的附带光盘2410经典光盘\2410 dvp Linux,把2410 dvp Linux目录下的内容拷贝到虚拟机。(可以虚拟机与主机建立共享目录,使用vmware tools设置共享文件夹: 不同的客户操作系统,设置共享文件夹的方式也不同,下面以windows xp和redhat9.0为例。 首先在虚拟机->设置->选项->共享文件夹中添加需要共享的主机文件夹,然后启动共享。 在redhat9.0中,共享文件夹在/mnt/hgfs目录中,通过点选文件夹并右击弹出菜单中,可以改变目录中的设置。)

在虚拟机中运行:cd  /mnt/hgfs     ./install.sh(主要为了拷贝实验代码和Linux内核)

3)、虚拟机中主机NFS服务配置(虚拟机中REDHAT linux操作系统左下角点击小红帽,有NFS服务)

4)、网络配置:虚拟机中ifconfig查看宿主机IP地址,超级终端中ifconfig eth0 IP号,把虚拟机与超级终端配置在同一网段,超级终端中 ping 宿主机IP地址

5)、超级终端中挂载:mount -t nfs o nolock 宿主机IP地址:/arm2410cl  /mnt/nfs


驱动模块代码:demo.c; 测试程序代码:test_demo.c ;linux内核源码树



1)、虚拟机中 cd /arm2410cl/exp/drivers/01_demo

2)、修改makefile文件:

路径:KERNELDIR= /arm2410cl/kernel/linux-2.4.18-2410cl/

交叉编译器:CROSS_COMPILE=armv4l-unknown-linux-

3)、虚拟机中 make

4)、装载模块:insmod demo.o  (在超级终端)

5)、测试   运行:./test_demo (在超级终端)