《linux设备驱动程序》读书笔记1

1.注意并发

2.一个良好设计的模块可以在装载时进行配置,这比编译时的配置为用户提供了更多的灵活性。

3.模块的退出函数必须仔细的撤销初始或函数所做的一切,否则在系统引导之前某些东西就会残留在系统中。

4.如果模块打算和多个内核版本一起工作,则需要使用宏以及#ifdef来做版本测。

5.使用层叠技术。

6.系统调用以sys_开头可以用grep sys_查找,注册函数以register_开头可以用grep register_查找,各模块导出的符号表可以用grep EXPORT_SYMBOL查找。

7.当我们在内核中注册设施时要注意注册可能会失败,所以要采用合适的方法处理错误。

8.模块初始化函数完注册设施后,内核的某些部分可能会立即使用我们刚刚注册的设施。所以在初始化函数运行时,内核就完全可能会调用我们的模块。因此在完成某个设施的所有内部初始化前,不要注册此设施,因为一旦注册的话此设施可能立刻被用到。

9.模块参数要有个默认值,这样可判定是不是一个显式指定的参数。

10.sysfs可以访问到传给模块的参数,可以修改模块的参数,但是不会通知模块,故不应该让模块是可写的。

11.如果用户空间想访问内存,则需要mmap映射/dev/mem才能直接访问。

12.如果用户空间想访问端口需要调用ioperm或iopl。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值