摘要:
一,注册字符设备[cpp]view plaincopy#defineGLOBALMEM_MAJOR256#defineGLOBALMEM_SIZE0X1000//4kstaticintchar_major=GLOBALMEM_MAJOR;//主设备号structchartest_dev{struct... 阅读全文
摘要:
一,块设备的注册1,linux中默认的块设备的最大主设备号为255,调用register_blkdev(unsigned int major,const char*name)来注册块设备,如果major参数为0的时候那么从系统1到255中选择一个最大的没有使用的号作为当前设备的块设备号,name是在... 阅读全文
摘要:
一,主设备号和次设备号代表的含义?linu内核是如果根据主设备号找驱动,次设备号找设备的。答:通常一个主设备号代表一个驱动,比如在block设备中,一个主设备号代表一个emmc设备,不同次设备号代表的是不同的分区Linux内核允许多个驱动共享一个主设备号,但更多的设备都遵循一个驱动对一个主设备号的原... 阅读全文
摘要:
1,在/proc文件系统下创建节点的APIhttp://www.cnblogs.com/ziziwu/archive/2011/10/20/2218975.html struct proc_dir_entry *create_proc_entry (const char *name, mode_t ... 阅读全文
摘要:
http://www.cnblogs.com/hanyan225/archive/2010/10/28/1863854.html1,概念DMA是一种无须CPU的参与就可以让外设与系统内存之间进行双向数据传输的硬件机制。使用DMA可以是系统CPU从实际的IO数据传输过程中摆脱出来,从而大大提供系统吞吐... 阅读全文
摘要:
1,gendisk结构体在linux内核中,使用gendisk结构体来表示一个实际的磁盘设备的抽象,结构体定义如下所示:[cpp]view plaincopystructgendisk{intmajor;//主设备号intfirst_minor;//次设备号intminors;//最大次设备数,如果... 阅读全文
摘要:
1,区别块设备和字符设备:块设备是系统中能随机访问固定大小的数据片的硬件。,扇区是所有块设备物理上的最小可寻址单位,通常大小为512Byte,块是文件系统的最小寻址单位,大小是扇区的整数倍,同时不能超过一个页的大小~操作块设备的时候需要在内存中有一个对应的缓冲区,用struct buffer_hea... 阅读全文
摘要:
一,内核模块的概念经常在内核驱动代码看到类似fs_init()等驱动初始化函数,那么这个和module_init()函数的差别在哪里,宏定义__define_initcall(level,fn)对于内核的初始化很重要,他指示编译器在编译的时候,将一系列初始化函数的起始地址值按照一定的顺序放在一个se... 阅读全文
摘要:
1,以下为示例代码:[cpp]view plaincopy#include#include#include#include#includeMODULE_LICENSE("DualBSD/GPL");staticchar*Version="2.0.1";staticintmy_match(struct... 阅读全文
摘要:
一,桶排序以下代码转自:桶排序[cpp]view plaincopy#include#includeusingnamespacestd;structNode{doublevalue;Node*next;};//桶排序主程序voidbucketSort(double*arr,intlength){No... 阅读全文