x4412开发板&ibox卡片电脑项目实战12-linux驱动的加载方法

在类unix操作系统中,驱动加载方式一般分为:静态加载和动态加载。静态加载就是把驱动程序直接编译到内核里,系统启动后直接被调用。静态加载的缺点是调试起来比较麻烦,每次修改一个地方都要重新编译下载内核,效率较低。动态加载利用了LINUX的module特性,可以在系统启动后用insmod命令把驱动程序(.ko文件)添加上去,在不需要的时候用rmmod命令来卸载。下面我们通过蜂鸣器驱动实例分别对其进行详述。
1.1.1    静态加载
第一步:在kernel/drivers/char目录下新建目录beep,在beep目录下创建Kconfig,Makefile以及x4412-beep.c三个文件。
第二步:编辑Makefile内容如下:
  1. obj-$(CONFIG_X4412_BEEP_DRIVER) += x4412-beep.o
复制代码
编辑Kconfig内容如下:
  1. config X4412_BEEP_DRIVER
  2.          bool "X4412 beep driver"
  3.          default y
  4.          help
  5.          compile for x4412 beep driver,y for kernel,m for module.
复制代码
再编辑x4412-beep.c文件,其部分源码如下:
  1. static int __devinit x4412_beep_init(void)
  2. {
  3.          int ret;

  4.          printk("x4412 beep driver\r\n");

  5.          ret = platform_device_register(&x4412_beep_device);
  6.          if(ret)
  7.                    printk("failed to register x4412 beep device\n");

  8.          ret = platform_driver_register(&x4412_beep_driver);
  9.          if(ret)
  10.                    printk("failed to register x4412 beep driver\n");

  11.          return ret;
  12. }

  13. static void x4412_beep_exit(void)
  14. {
  15.          platform_driver_unregister(&x4412_beep_driver);
  16. }

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值