Linux设备驱动程序--学习笔记(1)

1.设备文件是OS对硬件设备的抽象,用户操作设备文件其实是内核调用驱动程序去操作实际硬件 ,实际的硬件设备通过驱动程序和内核交互
2.驱动程序跟内核和硬件交互,设备文件跟OS和用户交互,所以说驱动可以不用管设备文件的东西
3.模块初始化函数的任务就是为以后调用模块函数预先做准备
4.模块卸载前会调用模块的退出函数,退出函数必须撤销初始化函数所做的一切
5.内核函数头文件包含在usr/src/$(shell uname -r)/include/linux|asm那里,include的其他子目录保存有和特定内核子系统相关的头文件
6.一个驱动程序要执行两类任务:模块中的某些函数要作为系统调用的一部分而执行,而其他函数负责中断处理(系统调用+中断处理)
7.编写驱动模块时必须考虑的问题:(1)OS中通常正在运行多个并发进程,并且可能多个进程同时调用我们的驱动程序;(2)中断处理程序异步运行,驱动程序正试图处理其他任务时被调用;(3)其他程序也可以同时调用我们的驱动程序。所以我们在编写驱动时要非常注意并发问题
驱动可以通过current访问当前进程的信息
8.用户空间中的应用程序有一块很大的栈,用来保存函数调用和活动函数中的自动化变量;相反的内核的栈很小,可能只有4096KB那样的页大小,所以我们定义变量时要注意空间的节约
9.内核通常不支持浮点运算,如果要开浮点运算需要额外的开销
10.我们通常在内核API上看到的有两个下划线前缀(__)的函数名称,这些函数需要非常谨慎的使用
11.模块insmod进内核的过程:函数sys_init_module给模块分配内核内存&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值