zoukankan      html  css  js  c++  java
  • 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-- 测试驱动程序;

  • 相关阅读:
    插入数据Oracle异常ORA-01502: 索引或这类索引的分区处于不可用状态
    关于分布式系统的数据一致性问题
    C#网络编程系列文章之Socket实现异步TCP服务器
    大型网站架构与分布式架构
    序列化表单为json
    学习wcf
    C# 知识梳理
    Java前端控制器模式
    Java策略模式
    Java责任链模式
  • 原文地址:https://www.cnblogs.com/Ocean-Star/p/9250223.html
Copyright © 2011-2022 走看看