Linux-Android Kernel
zhuxp1
各种打杂,各种学习
展开
-
Linux中__init、__devinit等初始化宏解析和入口函数
一、初始化宏1.1、定义 在内核里经常可以看到__init, __devinit这样的语句,这都是在init.h中定义的宏,gcc在编译时会将被修饰的内容放到这些宏所代表的section,编译器通过这些宏可以把代码优化放到合适的内存位置,以减少内存占用和提高内核效率。 其典型的定义如下:点击(此处)折叠或打开转载 2015-11-17 15:43:51 · 1186 阅读 · 0 评论 -
kmalloc kfree学习笔记
http://blog.csdn.net/hzn407487204/article/details/5482056slub中的kmalloc和kfree学习笔记 2.6.26中的内存管理大概分为3个层次 SLUB,伙伴系统和ZONE,其中SLUB在最高层,这里通过分析kmalloc和kfree来分析SLUB的转载 2015-11-06 11:13:10 · 2085 阅读 · 0 评论 -
Linux内核中_IO,_IOR,_IOW,_IOWR宏的用法与解析
在驱动程序里, ioctl() 函数上传送的变量 cmd 是应用程序用于区别设备驱动程序请求处理内容的值。cmd除了可区别数字外,还包含有助于处理的几种相应信息。 cmd的大小为 32位,共分 4 个域: bit31~bit30 2位为 “区别读写” 区,作用是区分是读取命令还是写入命令。 bit29~bit15 14位为 "数据大小" 区,表示 ioctl() 中的 ar转载 2015-11-06 11:17:54 · 5391 阅读 · 0 评论 -
linux kernel 动态输出模块调试log的方法
1. 动态输出某个函数的log: cd d/dynamic_debug echo -n 'func 函数名 +p' > control cat /proc/kmsg2. 动态输出某个文件的log: cd /sys/kernel/debug echo -n 'file 文件名.c +p' > dynamic_debug/control原创 2016-02-25 17:23:56 · 3476 阅读 · 0 评论 -
Device Tree GPIO引脚控制
第一次接触Devicetree,在调试IC驱动的时候居然发现Reset引脚一直无法控制,驱动调试被Block了,后来终于摸索出一个步骤。这个是在高通MSM8976平台上控制GPIO的步骤:1、从of node中得到GPIO的number of_get_named_gpio(i2c_client->dev.of_node, "cirrus,reset-gpio", 0);原创 2015-12-24 13:41:58 · 9703 阅读 · 0 评论