上一页 1 ··· 57 58 59 60 61 62 63 64 65 ··· 136 下一页
摘要: TEMPLATE = app CONFIG -= qt 阅读全文
posted @ 2015-07-14 16:34 katago 阅读(563) 评论(0) 推荐(0)
摘要: 基于linux-2.6.35的class_create(),device_create解析 作者:苗老师,华清远见嵌入式学院讲师。 从linux内核2.6的某个版本之后,devfs不复存在,udev成为devfs的替代。提醒一点,udev是应用层的,不要试图在内核的配置选项里找到它;加入对udev的支持很简单,以作者所写的一个字符设备驱动为例,在驱动初始化的代码里调用class_create为... 阅读全文
posted @ 2015-07-13 17:01 katago 阅读(370) 评论(0) 推荐(0)
摘要: 在目录的 Makefile 中关于 RTC_DRV_S3C 的编译脚本为: obj -$(CONFIG_RTC_DRV_S3C) += rtc-s3c.o 上述脚本意味着如果 RTC_DRV_S3C 配置选项被选择为“Y” 或“M”,即 obj-$(CONFIG_RTC_ DRV_S3C)等同于 obj-y 或 obj-m 时,则编译 rtc-s3c.c,选“ Y” 的... 阅读全文
posted @ 2015-07-13 17:00 katago 阅读(994) 评论(0) 推荐(0)
摘要: 内核中每个字符设备都对应一个 cdev 结构的变量,下面是它的定义: linux-2.6.22/include/linux/cdev.h struct cdev { struct kobject kobj; // 每个 cdev 都是一个 kobject struct module *owner; // 指向实现驱动的模块 c... 阅读全文
posted @ 2015-07-10 17:24 katago 阅读(561) 评论(0) 推荐(0)
摘要: private_data是Linux下连接VFS文件系统框架和不同文件/文件系统底层实现之间的一个核心数据结构,虽然它只是一个指针,但是一个指针可以解决所有问题。 因 为file是VFS框架的一个基本概念,它要支持文件操作结构,例如open/read/write/release之类的接口,甚至还有poll等,只 有有了这些结构,它们才能被纳入VFS这个大家庭。但是对于不同的设备文件来说,它们只是... 阅读全文
posted @ 2015-07-09 16:34 katago 阅读(1082) 评论(0) 推荐(0)
摘要: 浅析pc机上如何将vmlinuz-2.6.31-14-generic解压出vmlinux luther@gliethttp:~$ vim /boot/grub/grub.cfg 可以看到我们进入的系统的内核为 linux /boot/vmlinuz-2.6.31-14-generic 查找1F 8B 08这是gzip的标志头 我找到的内容为 0000 366... 阅读全文
posted @ 2015-07-09 16:28 katago 阅读(777) 评论(0) 推荐(0)
摘要: /proc/iomem和/proc/ioports对应的fops static int __init ioresources_init(void) { struct proc_dir_entry *entry; entry = create_proc_entry("ioports", 0, NULL); if (entry) ... 阅读全文
posted @ 2015-07-09 16:25 katago 阅读(827) 评论(0) 推荐(0)
摘要: http://blog.chinaunix.net/uid-20564848-id-74706.html 《/proc/iomem和/proc /ioports对应的fops》 《浅析pc机上如何将vmlinuz- 2.6.31-14-generic解压出vmlinux》 fs_initcall(chr_dev_init); chr_dev_init ==> reg... 阅读全文
posted @ 2015-07-09 16:24 katago 阅读(844) 评论(0) 推荐(0)
摘要: http://docs.linuxtone.org/ebooks/C&CPP/c/ch17s03.html 访问设备还有一点和访问内存不同。内存只是保存数据而不会产生新的数据,如果CPU不去读它,它也不需要主动提供数据给CPU,所以内存总是被动地等待被读或被写。而设备往往会自己产生数据,并且需要主动通知CPU来读这些数据,例如敲键盘产生一个输入字符,用户希望计算机马上响应自己的输入,这就要... 阅读全文
posted @ 2015-07-07 17:50 katago 阅读(202) 评论(0) 推荐(0)
摘要: 现在明确一下阻塞(Block)这个概念。当进程调用一个阻塞的系统函数时,该进程被置于睡眠(Sleep)状态,这时内核调度其它进程运行,直到该进程等待的事件发生了(比如网络上接收到数据包,或者调用sleep指定的睡眠时间到了)它才有可能继续运行。与睡眠状态相对的是运行(Running)状态,在Linux内核中,处于运行状态的进程分为两种情况: 正在被调度执行。CPU处于该进程的上下... 阅读全文
posted @ 2015-07-07 17:31 katago 阅读(209) 评论(0) 推荐(0)
上一页 1 ··· 57 58 59 60 61 62 63 64 65 ··· 136 下一页