学号20145332 《信息安全系统设计基础》实验四 驱动程序设计
实验目的
学习在 LINUX 下进行驱动设计的原理。
掌握使用模块方式进行驱动开发调试的过程
实验内容
在PC机上编写简单的虚拟硬件驱动程序并进行调试,实验驱动的各个接口函数的实现, 分析并理解驱动与应用程序的交互过程。
连接arm开发板
将 arm 开发板电源线接好,保持开发板开关处于闭合状态。再分别将串口线、并口线和网线与 pc 机连接好。
建立超级终端
运行WindowsXP中:开始→所有程序→附件→通讯→超级终端(HyperTerminal)。
新建一个通信终端。要求输入区号、电话号码等信息请随意输入,为所建超级终端取名为 arm,随意为其选一个图标。
在属性对话框中,将波特率设为 115200,数据位设为 8,无奇偶校验,停止位为 1,无数据流控制。将其另存为在桌面。
打开超级终端
打开超级终端,打开 arm 机电源开关。等待一分钟,arm 机的信息会显示在超级终端的窗口中。输入“boot”后会引导kernel,启动linux系统。在应用程序目录下,可以通过“ls”查看。
环境配置
输入ifconfig命令,记录下arm机的ip为:192.168.0.123。修改xp系统与redhat虚拟机的ip,使得它们均与arm机的ip在同一网段。xp系统为192.168.0.78,redhat为192.168.0.121.将三个IP地址ping一下,确保是相互联通的。
在pc机中“开始”、“运行”,输入虚拟机的ip。\192.168.0.121,输入用户名bc,密码123456 然后确定,就可以访问虚拟机的文件了。然后把所需文件解压缩拷贝到共享文件夹bc中。进入虚拟机,在命令行中输入./install.sh,安装脚本程序将会自动建立
目录,配置编译环境。
在虚拟机中使用vi修改/root/.bash_profile文件中的PATH变量为PATH=$PATH:$HOME/bin:/opt/host/armv4l/bin/(因为该文件为隐藏系统文件,所以使用ls命令不可见),存盘后执行:source /root/.bash_profile,则以后armv4l-unknown-linux-gcc会自动搜索到,可以在终端上输入。
实验步骤
1、阅读和理解源代码
进入/arm2410cl/exp/drivers/01_demo,使用vi编辑器或其他编辑器阅读理解源代码。
2、编译驱动模块及测试程序
上面介绍了在 Makefile 中有两种编译方法,可以在本机上使用 gcc 也可以使用交叉编 译器进行编译
3、测试驱动程序
如果使用 gcc 编译的话,需要通过#mknod /dev/demo c 254 0 命令来建立设备节点,如果使用交叉编译器 的话,不需要建立设备节点
4、编译成功
[root@BC 01_demo]# ./test_demo
write 32 bytes data to /dev/demo
0: 0 1 2 3
1: 4 5 6 7
2: 8 9 10 11
3: 12 13 14 15
4: 16 17 18 19
5: 20 21 22 23
6: 24 25 26 27
7: 28 29 30 31
*****************************************************
Read 32 bytes data from /dev/demo
0: 31 30 29 28
1: 27 26 25 24
2: 23 22 21 11
3: 12 13 14 15
4: 16 17 18 19
5: 20 10 9 8
6: 7 6 5 4
7: 3 2 1 0
*****************************************************