
KERNEL
leolinux
嵌入式、计算机网络
展开
-
编写Linux设备驱动时内核版本号的判断
当设备驱动需要同时支持不同版本内核时,在编译阶段,内核模块需要知道当前使用的内核源码的版本,从而使用相应的内核 API。2.4 与 2.6 内核下,源码头文件 linux/version.h 定义有:LINUX_VERSION_CODE ― 内核版本的二进制表示,主、从、修订版本号各对应一个字节;KERNEL_VERSION(major, minor, release) - 由主、从、修订版本号构造二进制版本号。在同时支持2.4与2.6 内核的设备驱动程序中,经常可以看到以下代码段:#define LIN原创 2010-08-23 20:02:00 · 3874 阅读 · 0 评论 -
Linux 2.6 字符设备驱动程序分配和释放设备编号
(1) 静态分配主设备号:register_chrdev_region(dev_t from, unsigned count, const char *name),其中from包含了主、次设备号两个部分。需要静态分配的主设备号必须包含在from中,from的次设备号通常为0。使用该函数前,需要首先查看Documentation/devices.txt文件哪些主设备号没有被分配。(2) 动态分配主设备号:alloc_chrdev_region(dev_t *dev, uns原创 2010-08-25 10:42:00 · 1565 阅读 · 1 评论 -
Linux 下获取某虚拟地址对应的页表信息
即给出某个虚拟地址,通过查询页表信息,将其转换成物理地址。static void dump_pagetable(unsigned long address){ pgd_t *base = __va(read_cr3() & PHYSICAL_PAGE_MASK); //页目录表基址 pgd_t *pgd = base + pgd_index(address); pud_t *pud; // 页表级数大于 3 pmd_t *pmd;原创 2010-12-27 15:36:00 · 4068 阅读 · 0 评论 -
Linux 物理内存分配器中 kmem_cache 的使用
<br />转自: http://blog.youkuaiyun.com/unbutun/archive/2010/06/02/5643177.aspx<br /> <br />在内核编程中,可能经常会有一些数据结构需要反复使用和释放,按照通常的思路,可能是使用kmalloc和kfree来实现。<br />但是这种方式效率不高,Linux为我们提供了更加高效的方法——Slab高速缓存管理器<br />通过先使用kmem_cache_create函数创建一个高速缓存的头指针——在内核中是struct kmem_cache转载 2010-12-28 20:31:00 · 4123 阅读 · 0 评论 -
Linux 2.6.35内核配置和网卡驱动添加
Linux 2.6.35内核配置和网卡驱动添加【环境】1:Ubuntu 10.102:u-boot-2010.033:linux-2.6.354:优龙FS24105:交叉编译器:arm-none-linux-gnueabi-gcc version 4.3.转载 2011-10-16 19:24:34 · 4584 阅读 · 0 评论 -
使用sockopt与内核交换数据
http://blog.chinaunix.net/space.php?uid=127037&do=blog&cuid=245767 使用sockopt与内核交换数据本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性转载 2011-10-18 14:08:15 · 832 阅读 · 0 评论 -
创建和读写linux下面的/proc文件
http://hi.baidu.com/52hack/item/b402910fc405c5ce9157180e创建和读写linux下面的/proc文件/*********create ,read and write a /proc file based on linux******/#include #include #include #include #includ转载 2012-08-09 15:06:15 · 1713 阅读 · 1 评论 -
Linux内核驱动之paltform总线
现实的linux设备和驱动通常都需要挂接在一种总线上,比较常见的总线有USB、PCI总线等。但是,在嵌入式系统里面,SoC系统中集成的独立的外设控制器、挂接在SoC内存空间的外设却不依附与此类总线。基于这样的背景下,2.6内核加入了platform虚拟总线。platform机制将设备本身的资源注册进内核,有内核统一管理,在驱动程序使用这些资源时使用统一的接口,这样提高了程序的可移植性。平台设备转载 2012-07-30 15:13:43 · 712 阅读 · 0 评论