
嵌入式 -- Linux驱动
齐达内斯塔
这个作者很懒,什么都没留下…
展开
-
Linux设备驱动入门 -hello world
参考书籍《Linux设备驱动第三版》一、源码解析--hello_module.c--#include #include static int __init hello_init(void){ printk(KERN_ALERT "Hello, world.\n"); return 0; }static void __exit hello_exit(vo原创 2017-12-20 16:03:05 · 1761 阅读 · 1 评论 -
Linux设备驱动--字符设备(一)
Linux的设备分为三类:字符设备、块设备和网络设备。字符设备:指一个字节一个字节读写的设备,不能随机读取设备内存中的某一数据,数去数据需要按照先后顺序。字符设备是面向流的设备,常见的字符设备有鼠标、键盘、串口、控制台和LED等;块设备:指可以从设备的任意位置读取一定长度数据的设备。常见块设备包括硬盘、磁盘、U盘和SD卡等;网络设备:用来和外界交换数据报文时调用的设备。如网卡、VETH原创 2017-12-21 11:07:04 · 550 阅读 · 0 评论 -
Linux设备驱动--字符设备(二、新注册接口)
字符设备(一)中已经介绍了2.6及之前注册设备的旧接口,为了与之前版本的兼容,Linux新版本的驱动也可以使用它来完成字符设备的注册。回顾一下字符设备注册的旧接口:static inline int register_chrdev(unsigned int major, const char *name, const struct file_operations *fops){原创 2017-12-27 09:47:10 · 455 阅读 · 0 评论 -
Linux设备驱动--字符设备(三、自动创建设备文件)
之前写Linux设备驱动程序的时候,都是利用mknod命令手动创建设备节点:% mknod Name { b | c } Major Minor用完之后,需要删除时,使用 rm Name 命令删除设备文件。这样做相当繁琐。实际上Linux内核为我们提供了一组函数,可以用来在模块加载的时候自动在/dev目录下创建相应设备节点,并在卸载模块时删除该节点,前提条件是用户空间移植了udev(嵌入式原创 2017-12-28 14:55:18 · 3485 阅读 · 0 评论