Linux驱动学习笔记(2)

有了模块的基础,可以开始编写驱动程序了,那么驱动程序又如何编写呢?

驱动程序在linux内核中是以面向对象的思想来编写的,C语言知识面向过程的语言,怎么面向对象呢?

答案是有的,C语言虽然不能实现成员函数,但是可以实现函数指针;C语言虽没有类的概念,但是C有结构体。将结构体作为一个对象,里面的成员就是个体的属性,再在结构体中实现指针函数不就可以实现对象的概念吗?

好了,在linux内核中,驱动程序是按照一定的格式来编写的。因为驱动程序采用了面向对象的思想,把物体的共性抽象出来,再有的是驱动程序采用了分层的思想,当然下面的例子中没有分层,共性的都给内核实现了,那么驱动程序实现的是自己需要加入的硬件的异性。

下面的例子,来看看驱动程序的一般步骤: 1、分配结构体  2、设置    3、注册  4、硬件操作

#include <linux/module.h>  
#include <linux/init.h>  
  
static int first_init(void)  
{
   /* 1、分配结构体 */
   /* 2、设置 */
   /* 3、注册 */
   return 0;  
}  
  
static void first_exit(void)  
{  
    /* 卸载 */
}  
  
module_init(first_init);  
module_exit(first_exit);  
  
MODULE_LISECEN("GPL");  




 


下面来写个简单的点灯驱动程序:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值