20145221高其&20145326蔡馨熠《信息安全系统设计基础》实验四 外设驱动程序设计
实验目的与要求
实验过程
开发环境的配置
1、连接arm开发板
将arm开发板电源线接好,保持开发板开关处于闭合状态。再分别将串口线、并口线和网线与pc机连接好。
2、建立超级终端
运行windows XP系统下“开始”、“所有程序”、“附件”、“通讯”、“超级终端”。
新建一个通信终端,取名为arm。在属性对话框中,将波特率设为115200,数据位设为8,无奇偶校验,停止位为1,无数据流控制。
3、启动实验平台
打开超级终端,打开arm机电源开关。等待一分钟,arm机的信息会显示在超级终端的窗口中。
继续等待,输入ifconfig命令,记录下arm机的ip。
4、修改xp系统与redhat虚拟机的ip,使得它们均与arm机的ip在同一网段。修改完IP,重启一下虚拟机,IP才能启作用。重启后在命令行中使用ifconfig确认修改正确
5、安装arm编译器。在pc机中“开始”、“运行”,输入虚拟机的ip,输入用户名bc,密码123456然后确定 就可以访问虚拟机的文件了。然后把所需文件解压缩拷贝到共享文件夹bc中。
进入虚拟机,在命令行中输入./install.sh,安装脚本程序将会自动建立目录,配置编译环境。
6、配置环境变量在虚拟机中使用vi修改/root/.bashprofile文件中的PATH变量为PATH=$PATH:$HOME/bin:/opt/host/armv4l/bin/ (因为该文件为隐藏系统文件,所以使用ls命令不可见),存盘后执行:source/root/.bashprofile,则以后armv4l-unknown-linux-gcc 会自动搜索到,可以在终端上输入。
理解并实践源代码
- 将01_demo文件夹拷贝到bc共享文件夹中
- 进入/01_demo,使用vi编辑器阅读理解源代码
编译应用程序
-
在修改makefile文件后,采用交叉编译器即可进行编译。使用交叉编译器不需要建立设备节点
[root@BC 01_demo]#make
-
也可以使用gcc进行编译,通过下面的命令来建立设备节点 [root@BC src]#mknod /dev/demo c 254 0
测试驱动程序
- 插入驱动模块demo.o,可以用lsmod 命令来查看模块是否已经被插入,在不使用该模块的时候还可以用rmmod 命令来将模块卸载
- 然后运行测试程序,和预期结果一致
遇到的问题及解决方法
这次的实验就一个问题,那就是修改makefile里面的内容!(根据实验指导书上的内容来改)
如果修改之后再次编译还是不能成功。那是因为在/uer/src下没有建立一个linux连接,于是使用以下命令:
[root@BC 01_demo]#cd /usr/src/
[root@BC src]#ln –sf linux-2.4.20-8 linux
[root@BC src]#ls
•建立linux连接后,可以成功编译!
心得体会
实验一的内容是搭配环境,然后运行一个简单的hello world程序。我们这次实验在实验一的基础上,做起来比较快,整个过程也没什么大问题,要说值得注意的地方,就是makefile那里,要静下心来,跟着实验指导书一步一步走。我觉得就目前来说的话,要把一个实验做出来,不难。难点是理解每个实验步骤的原理! 我们小组在这方面需要加强~!再接再厉~