驱动
驱动
~AI钢铁侠~
怕什么真理无穷,进一寸有进一寸的欢喜!
展开
-
cdev_init() / cedev_alloc() / cdev_del()
1) 内核中每个字符设备都对应一个 cdev结构的变量,下面是它的定义: linux-2.6.22/include/linux/cdev.h struct cdev { struct kobject kobj; // 每个 cdev都是一个 kobject struct module *owner; //指向实现驱动的模块 cons转载 2017-11-07 14:35:27 · 922 阅读 · 0 评论 -
jiffies
全局变量jiffies用来记录自系统启动以来产生的节拍的总数。启动时,内核将该变量初始化为0,此后,每次时钟中断处理程序都会增加该变量的值。一秒内时钟中断的次数等于Hz,所以jiffies一秒内增加的值也就是Hz。 系统运行时间以秒为单位,等于jiffies/Hz。 注意,jiffies类型为无符号长整型(unsigned long),其他任何类型存放它都不正确。转载 2017-11-08 09:48:19 · 366 阅读 · 0 评论 -
Linux 内核中的 cdev_alloc和cdev_add
内核中每个字符设备都对应一个 cdev 结构的变量,下面是它的定义: linux-2.6.22/include/linux/cdev.h struct cdev { struct kobject kobj; // 每个 cdev 都是一个 kobject struct module *owner; // 指向实现驱动的模块 const struct fi转载 2017-11-06 17:05:53 · 1125 阅读 · 0 评论 -
关于jiffies
iffies在内核中是一个全局变量,声明包含在#include 中, 几个内核中常用的的概念: 1. HZ 内核常量,ARM架构HZ=100,X86架构HZ=1000 例如HZ=100,表示硬件定时器1秒钟给CPU发送100个定时器中断信号 每发生一次中断的时间间隔为10ms 注意:不同的环境HZ的值都是可能不一样的,我曾经遇到过一个TI的开发板,他的jif转载 2017-11-06 17:10:25 · 365 阅读 · 0 评论 -
Linux内核中读写文件数据的方法
Linux内核中读写文件数据的方法 有时候需要在Linuxkernel--大多是在需要调试的驱动程序--中读写文件数据。在kernel中操作文件没有标准库可用,需要利用kernel的一些函数,这些函数主要有: filp_open() filp_close(), vfs_read()vfs_write(),set_fs(),get_fs()等,这些函数在linux/fs.h和asm/u转载 2017-11-06 17:14:41 · 1825 阅读 · 1 评论