• 20135202闫佳歆、20135220谈愈敏-实验4


    北京电子科技学院(BESTI)

                 

    课程:信息安全系统设计基础          班级:   1352

    姓名:闫佳歆,谈愈敏

    学号:20135202,20135220

    成绩:             指导教师:娄嘉鹏     实验日期:2015.11.17

    实验密级:         预习程度:             实验时间:15:30-18:00

    仪器组次:          必修/选修:必修               实验序号:4

    实验名称:内核驱动设计入门-模块方式驱动实验               

    实验目的与要求:1)学习在 LINUX 下进行驱动设计的原理

    2)掌握使用模块方式进行驱动开发调试的过程                

    实验仪器:

    名称

    型号

    数量

    arm

    UP-TECH

    1

    PC机

    XP

    1

    虚拟机

    REDHAT

    1

    实验内容、步骤与体会:

    1. 实验过程的理解,实验指导书中知识点的理解。

    (1)使用gcc编译和使用交叉编译的区别?

    Gcc编译就是只是linux下的编译,之后需要用下面的命令来建立设备节点:

    #mknod /dev/demo c 254 0

    如果使用交叉编译器的话,不需要建立设备节点。

    (2)怎样测试驱动程序?

    首先要插入驱动模块demo.o,然后可以用lsmod 命令来查看模块是否已经被插入,在不使用该模块的时候还可以用rmmod 命令来将模块卸载。然后运行测试程序,查看和预期结果是否一致。

     

    1. 实验过程中遇到的问题以及解决方案。

    (1)插入驱动模块失败如下:

    [root@zxt 01_demo]# ./test_demo

    ####DEMO device open fail####

    这个主要是因为,因为手动编译代码太为繁琐,我们选择了用make的方法,将Makefile稍微修改后就可以使用,但是我们错误的默认了make使用交叉编译,而实际上是用的gcc编译,所以缺少了设备节点的建立,补上这一步骤之后就成功了。

    (2)编译失败

    经过查看指导书,发现可能是在/usr/src 下没有建立一个linux 连接,可以使用下面的命令,解决了问题。

    [root@zxt 01_demo]# cd /usr/src/

    [root@zxt src]# ln -sf linux-2.4.20-8 linux

    [root@zxt src]# ls

    debug linux linux-2.4 linux-2.4.20-8 redhat

    对于ln指令:

    ln指令的用法是连接,使用格式是ln [options] source dist,这里我们用到的sf参数的含义是:

    -f:链接时先将与dist同档名的档案删除

    -s:进行软链接。(软链接,又称符号链接,这个文件包含了另一个文件的路径名,特点是可以链接不同文件系统的文件,甚至可以链接不存在的文件。)

  • 相关阅读:
    UVA 1590 IP Networks
    UVA 12108
    HDUOJ 1042 N!
    UVA201 Squares
    UVaOJ 1339
    UVaOJ 202
    UVaOJ 100
    UVaOJ 10340
    第五章 跳跃表
    第四章 字典
  • 原文地址:https://www.cnblogs.com/20135202yjx/p/4990163.html
Copyright © 2020-2023  润新知