zoukankan      html  css  js  c++  java
  • Linux基础驱动开发

    开始:
    1、要在自己的Linux源码中创建自己的模块文件。
    在drivers下创建自己的文件名为myled。
    然后创建myleds.c文件,编写源码

    2、Makefile和Kconfig的设置

    在myleds目录下添加Makefile和Kconfig这两个文件

    Kconfi:

     还有Makefile:

      obj-$(CONFIG_TEST_USER) += myleds.o

    需要在上层目录的drivers目录下修改Makefile和Kconfig
    在Makefile中添加:obj-$(CONFIG_TEST_SUPPORT) += myled/
    在Kconfig中添加:source “drivers/myled/Kconfig”

    3、编译内核模块:使用make modules命令

    在Linux源码的第一级目录下 make menuconfig设置myled模块为编译模块禁止编译进内核。然后使用make modules
    在myleds目录下会生成myleds.ko文件

    4、开发板测试

    将文件下载到开发板。
    先使用mknod 文件目录 模块类型 主设备号 此设备号, 添加设备
    mknod /dev/myled c 253 1 这个设备号是个前面的cdev_init()使用的设备号一致//这里为创建一个设备文件节点,让顶层的应用程序访问,可以使用ioctl发送命令,执行动作
    使用insmod myleds.ko加载模块,lsmod myleds 查看模块,rmmod myleds卸载模块,modprode myleds是否加载

  • 相关阅读:
    51nod贪心算法入门-----完美字符串
    HDU6030----矩阵快速幂
    O(n)求1~n的逆元
    (四)添加签到奖励功能
    (三)开始在OJ上添加签到功能
    (二)OJ的主要文件
    (一)在linux上ubuntu搭建hustOJ系统
    CF 148A Insomnia cure
    lower_bound和upper_bound
    C++ string的常用功能
  • 原文地址:https://www.cnblogs.com/yangjiquan/p/11524352.html
Copyright © 2011-2022 走看看