zoukankan      html  css  js  c++  java
  • 10. linux 驱动模块参数

    TOC

    1. 相关接口

    module_param(参数名,参数类型,参数读/写权限)
    
    
    module_param_array(数组名,数组类型,数组长,参数读/写权限)

    说明:

    1. 参数和参数类型,需保持一致
    2. 参数类型有: byte、short、ushort、int、uint、long、ulong、charp(字符指针)、bool 或 invbool(布尔的反)
    3. 数组长一般设置为 NULL
    4. 模块加载后可以在/sys/module/模块名/parameters目录下查看参数

    2. 代码样例

    hello.c

    #include <linux/init.h> 
    #include <linux/kernel.h> 
    #include <linux/module.h> 
    
    
    static int value = 30;
    static int value_arr[3] = {1, 2, 3};
    
    
    
    
    static int __init hello_init(void) 
    { 
        printk("init hello module
    "); 
        return 0; 
    } 
    
    
    static void __exit hello_exit(void) 
    { 
        printk("exit hello module
    "); 
    } 
    
    
    module_init(hello_init); 
    module_exit(hello_exit);
    
    
    module_param(value, int, 0644);
    module_param_array(value_arr, int, NULL, 0644);
    
    
    MODULE_LICENSE("GPL"); 
    
    

    Makefile

    KERNEL_DIR=/usr/src/linux-headers-3.13.0-24-generic 
    all: 
            make -C $(KERNEL_DIR) M=`pwd` modules 
    
    
    clean: 
            make -C $(KERNEL_DIR) M=`pwd` clean 
    
    
    obj-m += hello.o
    
    

    3. 编译运行

    $ make
    $ sudo inmod hello.ko
    $ lsmod | grep hello
    hello                  12703  0 
    $ cd /sys/module/hello/parameters
    $ ls 
    value  value_arr
    $ cat value
    30
    $ cat value_arr
    1,2,3

    目的:我们将驱动参数传递出来方便查询驱动的运行情况

  • 相关阅读:
    中风后遗症
    慢性湿疹半年
    女子脚背痒肿案
    肾盂肾炎病案
    鼻衄二则
    糖尿病病案
    慢性肠炎2例
    子宫肌瘤病案2例
    眩晕病案
    前列腺炎病案3例
  • 原文地址:https://www.cnblogs.com/standardzero/p/12551109.html
Copyright © 2011-2022 走看看