linux驱动编程注意事项

1 license问题,Linux驱动必须有license,使用MODULE_LICENSE("GPL");解决

2 避免“名字空间污染”,模块动态链接进内核里,最好不要输出内核中的全局变量灯,解决方法:EXPORT_NO_SYMBOLS,使用此宏后的文件内容不能输出任何符号,EXPORT_SYMBOLS,强制输出某符号,可以输出static的符号,需要在EXPORT_NO_SYMBOLS使用之前使用。(所谓的输出符号,就是说外面的文件可以使用该变量)

3 模块之间的依赖问题

4 集成模块到内核

5 查看系统支持的设备:cat /proc/devices

6 dmesg查看系统的启动信息

7 查看设备的IO内存物理地址:cat /proc/ioports

8 查看正在使用的终端号:cat /proc/interrupt


发布了30 篇原创文章 · 获赞 21 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/oushaojun2/article/details/60873768