• 5.2.1.开启驱动开发之路


    本节主要是讲述并且实践示范驱动开发的环境搭建、构建内核源码树、常用模块安装卸载命令等

    5.2.1.1、驱动开发的准备工作

    * 正常运行linux系统的开发板。要求开发板中的linux的zImage必须是自己编译的,不能是别人编译的。
    * 经过配置编译的内核源码树
    * nfs挂载的rootfs
                       主机ubuntu中必须搭建一个nfs服务器。
    

    5.2.1.2、驱动开发的步骤

    * 驱动源码编写,makefile编写,编译
    * insmod装载模块,测试,rmmod卸载
    

    5.2.1.3、实践

    3.1 编译得到内核源码树和zImage(可以fastboot烧录zImage)

    F:朱有鹏嵌入式物联网课件&代码课件2.uboot和linux内核移植2.15.内核的配置和编译原理x210kernel.tar.bz2

    cd /root/driver/kernel

    配置内核支持nfs方式启动(开发板中运行kernel做nfs客户端)

    make distclean
    make x210ii_qt_defconfig
    make menuconfig

    Networking support
    Networking options
    [] TCP/IP networking
    [
    ]IP: kernel level autoconfiguration
    [] IP: DHCP support
    [
    ] IP: BOOTP support

    File systems --->
    Network File Systems --->
    <> NFS client support
    [
    ] NFS client support for NFS version 3
    [] NFS client support for the NFSv3 ACL protocol extension
    [
    ] NFS client support for NFS version 4 (EXPERIMENTAL)
    [ ] NFS client support for NFSv4.1 (DEVELOPER ONLY)
    [*] Root file system on NFS (关键的)

    make -j2
    cp arch/arm/boot/zImage /tftpboot/ -f

    3.2 fastboot/tftp烧录zImage到开发板

    编写驱动分下面几步:
    a -- 查看原理图、数据手册,了解设备的操作方法;
    b -- 在内核中找到相近的驱动程序,以它为模板进行开发,有时候需要从零开始;
    c -- 实现驱动程序的初始化:比如向内核注册这个驱动程序,这样应用程序传入文件名,内核才能找到相应的驱动程序;
    d -- 设计所要实现的操作,比如 open、close、read、write 等函数;
    e -- 实现中断服务(中断不是每个设备驱动所必须的);
    f -- 编译该驱动程序到内核中,或者用 insmod 命令加载;
    g-- 测试驱动程序;

  • 相关阅读:
    python 函数2
    python 函数
    python 中string格式化
    python中的集合
    值&&引用传递&&序列化
    线程&&进程
    c#委托
    .net框架介绍
    类的定义
    ef中关于数据库中int为null问题
  • 原文地址:https://www.cnblogs.com/Ocean-Star/p/9250223.html
Copyright © 2020-2023  润新知