zoukankan      html  css  js  c++  java
  • 信息安全系统设计基础实验四:外设驱动程序设计

    北京电子科技学院(BESTI)

    实验报告

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

    姓名:芦畅 傅冬菁

    学号:20135308 20135311

    成绩: 指导教师:娄家鹏 实验日期:2015.11.24

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

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

    实验名称:实验四:外设驱动程序设计

    实验目的与要求:

    1.掌握实时系统应用和驱动程序的编写
    2.选择某个接口电路

    实验仪器:

    名称

    型号

    数量

    嵌入式开发平台

    UP-NETARM2410-CL

    1

    PC机

    DELL

    1

     实验内容、步骤与体会:

    1、前期准备,开发环境的配置同实验一,运行./install.sh

    编译代码,挂载调试,成功运行:

    2、阅读和理解源代码,进入/bc/01_demo,使用vi 编辑器或其他编辑器阅读理解源代码。

    2、编译驱动模块及测试程序

    在 Makefile 中有两种编译方法,可以在本机上使用gcc 也可以使用交叉编译器进行编译,这里我们使用交叉编译器进行编译的结果。

    因为手动编译代码太为繁琐,我们选择了用make的方法,将Makefile稍微修改后就可以使用。Makefile修改后如上图所示。

    之后输入make命令,看到如下图指令:

     

    如果编译的时候出现问题,可能是在/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

    如果使用 gcc 编译的话,需要通过下面的命令来建立设备节点,如果使用交叉编译器
    的话,不需要建立设备节点。

    #mknod /dev/demo c 254 0

    首先要插入驱动模块demo.o,然后可以用lsmod 命令来查看模块是否已经被插入,在
    不使用该模块的时候还可以用rmmod 命令来将模块卸载。

    编译成功,出现如下结果:

    [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
    *****************************************************

    遇到的问题及解决办法:

    1.我们起初运行make没有成功,我们先选择了手动编译代码,然而后来还是没有运行成功,出现

    [root@zxt 01_demo]# ./test_demo
    ####DEMO  device open fail#### 

    失败提示。

    后来我们问了同学,将Mekefile修改了,再次make,可以成功运行。

    2.

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

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

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

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

     

  • 相关阅读:
    ccmenu里的位置
    【luogu P3346】诸神眷顾的幻想乡(广义 SAM)
    Snow的追寻(线段树)(LCA)
    【bzoj 4303】数列 / T4(K-D tree)
    选课 / T3(组合数)(容斥)
    随机游走 / T1(期望)(树形DP)
    【luogu P3898】期望异或 / T3 / 大新闻(数位DP)(数学)
    【luogu P7295】Paint by Letters P(前缀和)(欧拉公式)(bfs)(对偶图)
    【luogu P7294】Minimum Cost Paths P(二分)(单调栈)(斜率)
    【luogu P7293】Sum of Distances P(线段树)(图论)
  • 原文地址:https://www.cnblogs.com/bonjourvivi/p/5003333.html
Copyright © 2011-2022 走看看