linux驱动:(9)驱动传参

驱动传参就是传递参数给我们的驱动,例如 

  • insmod beep.ko a=1
  • insmod beep.ko b=1,2,3,4,5

作用

  1. 设置驱动的相关参数,比如设置缓冲区的大小
  2. 设置安全校验,防止我们写的驱动被人盗用

步骤

  • 传递普通的参数,比如 char,int 类型的
    • 需要用到一个函数,module_param(name,type,perm);
      • name:要传递进去的参数名字
      • type:参数类型
      • perm:参数读写的权限
    • 使用步骤
      • 在驱动中定义一个变量,static int a;
      • 用 module_param 函数,module_param(a,int ,S_IRUSR);
      • 在后面用的时候就可以直接使用了
    • 验证
      • 当加载驱动后,并传如参数后,进入 cd /sys/ 驱动名字/目录,输入 ls 命令,就可以看到你传入的参数了
      • 然后输入 ls -l 就可以看到权限了
      • 也可以输入cat a 查看 a 的值
  • 传递数组
    • 需要用到一个函数,module_param_array(name,type,nump,perm);
      • name:要传递进去的参数名字
      • type:参数类型
      • nump:实际传入进去的参数的个数
      • perm:参数读写的权限
    • 使用步骤
      • 在驱动中定义一个变量数组,static int b[5];
      • 定义一个传入参数数量,static int count;
      • 用 module_param 函数,module_param(b,int ,&count,S_IRUSR);
      • 在后面用的时候,count就表示传入了多少个参数,就可以读取b中传入的数据了
    • 验证
      • 当加载驱动后,并传如参数后,insmod 驱动名称.ko b=1,2,3,4,5
      • 进入 cd /sys/module/驱动名字/ 的目录,输入 ls 命令,就可以看到你传入的参数了
      • 然后输入 ls -l 就可以看到权限了
      • 也可以输入cat b 查看 b 的值
    • 注意
      • 如果传递数组时,传入的数据大于定义的数量,就报错,会告诉你最多能传入多少个

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值