Android 库文件
文章平均质量分 62
宁可一思进莫在一思停
这个作者很懒,什么都没留下…
展开
-
Android .so 共享库(动态链接库)
转载自:http://blog.csdn.net/bat603/article/details/1438408烟雨楼 http://hi.baidu.com/yanyulouc2]$ ar -r mylib.a mylib.oar: 正在创建 mylib.a[yufei@localhost perl_c2]$ dirmylib.a mylib.c mylib.h转载 2015-11-26 15:25:16 · 2977 阅读 · 0 评论 -
六、typeof()
转载来自:http://blog.csdn.net/ganggexiongqi/article/details/6764999typeof关键字是C语言中的一个新扩展。只要可以接受typedef名称,Sun Studio C 编译器就可以接受带有typeof的结构,包括以下语法类别:声明函数声明符中的参数类型链表和返回类型类型定义类型操作符ssizeof操作符复合文字typeo转载 2016-08-18 17:20:14 · 228 阅读 · 0 评论 -
五、container_of()
Container_of在Linux内核中是一个常用的宏,用于从包含在某个结构中的指针获得结构本身的指针,通俗地讲就是通过结构体变量中某个成员的首地址进而获得整个结构体变量的首地址。 Container_of的定义如下: [cpp] view plain copy#define container_of(ptr, type, membe原创 2016-08-18 16:56:54 · 247 阅读 · 0 评论 -
四、 class_create(),device_create(),device_create_file()
转载来自:http://blog.csdn.net/hustyangju/article/details/21019967?utm_source=tuicool&utm_medium=referral开始写Linux设备驱动程序的时候,很多时候都是利用mknod命令手动创建设备节点(包括ldd3中不少例子也是这样),实际上现在Linux内核为我们提供了一组函数,可以用来在模块加载的时候自动原创 2016-08-18 15:10:41 · 1312 阅读 · 0 评论 -
四、linux驱动的类class及其节点(2)
转载来自:http://blog.csdn.net/ramon1892/article/details/8443668一个类是一个设备的高级视图, 它抽象出低级的实现细节. 驱动可以见到一个SCSI 磁盘或者一个 ATA 磁盘, 在类的级别, 它们都是磁盘. 类允许用户空间基于它们做什么来使用设备, 而不是它们如何被连接或者它们如何工作.几乎所有的类都在 sysfs 中在 /s转载 2016-08-18 15:14:00 · 524 阅读 · 0 评论 -
九、set_bit(int nr,long * addr)
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/kernel_details/archive/2007/01/12/1481204.aspx将addr的第nr位置为1 假设*addr = 0, nr = 3;则执行结果为1000(二进制数)extern __inline__ int set_bit(int nr,long * addr){转载 2016-08-29 10:54:24 · 617 阅读 · 0 评论 -
八、find_next_zero_bit
find_next_zero_bit:int find_next_zero_bit(const unsigned long *addr, int size, int offset)查询*addr所在的地址中中,从第偏移位offset位开始,第一个不为0的位的位数(最低位从0开始),注:offset最小值为0,最大值为sizeof(unsigned long)*8 - 1//why *原创 2016-08-29 10:40:44 · 1119 阅读 · 0 评论 -
三、kzalloc kalloc 以及标志位
转载来自:http://blog.csdn.net/armeasy/article/details/6861978用kzalloc申请内存的时候, 效果等同于先是用 kmalloc() 申请空间 , 然后用 memset() 来初始化 ,所有申请的元素都被初始化为 0.view plain/** * kzalloc - allocate转载 2016-08-18 10:53:50 · 1589 阅读 · 0 评论 -
二、linux 内核OOPS(1)
什么是Oops?从语言学的角度说,Oops应该是一个拟声词。当出了点小事故,或者做了比较尴尬的事之后,你可以说"Oops",翻译成中国话就叫做“哎呦”。“哎呦,对不起,对不起,我真不是故意打碎您的杯子的”。看,Oops就是这个意思。在Linux内核开发中的Oops是什么呢?其实,它和上面的解释也没什么本质的差别,只不过说话的主角变成了Linux。当某些比较致命的问题出现时,我们的Linux转载 2016-08-18 09:39:17 · 2214 阅读 · 0 评论 -
二、linux 内核OOPS(2)
Oops 信息来源及格式Oops 这个单词含义为“惊讶”,当内核出错时(比如访问非法地址)打印出来的信息被称为 Oops 信息。Oops 信息包含以下几部分内容。1 一段文本描述信息。比如类似“Unable to handle kernel NULL pointer dereference at virtual address 00000000”的信息,它说明了发生的是转载 2016-08-18 10:25:11 · 498 阅读 · 0 评论 -
linux 调试语句BUG_ON WARN_ON dump_stack panic
一.BUG BUG_ON 作用:在内核调用可以用来方便标记bug,提供断言并输出信息。最常用的两个是BUG()和BUG_ON()。当被调用的时候,它们会引发oops,导致栈的回溯和错误信息的打印。为什么这些声明会导致 oops跟硬件的体系结构是相关的。大部分体系结构把BUG()和BUG_ON()定义成某种非法操作,这样自然会产生需要的oops。你可以把这些调用当作断言原创 2016-08-18 09:36:48 · 3941 阅读 · 0 评论 -
android下运行时动态链接dlopen()和dlsym()的实现
出处:http://my.oschina.net/wolfcs/blog/144412#OSC_h2_1android下运行时动态链接dlopen()和dlsym()的实现在android中,就如同在Linux下一样,我们也可以在app中,运行时动态加载一些动态链接库,执行调用其中的函数等操作。实现这一切最终依靠的就是dlopen()等几个函数。关于这几个函数的原型转载 2015-11-27 19:37:11 · 3241 阅读 · 0 评论 -
动态库 dlopen dlsm dlclose dlerror
Linux提供了一套API来动态装载库。下面列出了这些API:- dlopen,打开一个库,并为使用该库做些准备。- dlsym,在打开的库中查找符号的值。- dlclose,关闭库。- dlerror,返回一个描述最后一次调用dlopen、dlsym,或dlclose的错误信息的字符串。C语言用户需要包含头文件dlfcn.h才能使用上述API。glibc还增加了两个P原创 2015-11-27 15:00:56 · 2042 阅读 · 0 评论 -
Android HAL dlopen dlsym的调用
使用 dlopendlopen()是一个强大的库函数。该函数将打开一个新库,并把它装入内存。该函数主要用来加载库中的符号,这些符号在编译的时候是不知道的。比如 Apache Web 服务器利用这个函数在运行过程中加载模块,这为它提供了额外的能力。一个配置文件控制了加载模块的过程。这种机制使得在系统中添加或者删除一个模块时,都不需要重新编译了。 可以在自己的程序中使用 dlopen(原创 2015-11-27 18:26:04 · 1280 阅读 · 0 评论 -
androidstudio register_chrdev_region
转载来自http://www.cnblogs.com/androidstudio/p/5296530.htmlandroidstudioregister_chrdev_region 1 /** 2 * register_chrdev_region() - register a range of device numbers 3 *转载 2016-09-02 10:53:56 · 608 阅读 · 0 评论