![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Andorid_LinuxKernel
文章平均质量分 75
archie_lei
这个作者很懒,什么都没留下…
展开
-
ARM指令教程
ARM汇编程序特点:l 所有运算处理都是发生通用寄存器(一般是R0~R14)的之中.所有存储器空间(如C语言变量的本质就是一个存储器空间上的几个BYTE).的值的处理,都是要传送到通用寄存器来完成.因此代码中大量看到LDR,STR指令来传送值.l ARM汇编语句中.当前语句很多时候要隐含的使用上一句的执行结果.而且上一句的执行结果,是放在CPSR寄存器里,(原创 2014-07-03 09:29:35 · 582 阅读 · 0 评论 -
Linux驱动中delayed_workqueue使用:
在驱动中,有时不能使用中断(这种情况很少遇到),此时delayed_workqueue就可以发挥其巨大的功效了。也可以用其它同类的内核API实现:如timer.delayed_workqueue的使用过程如下:(1)定义workqueue: struct workqueue_struct *test_workqueue; // kernel/workqueue.c(2)定义wor原创 2018-01-26 17:10:34 · 693 阅读 · 0 评论 -
Linux workqueue
Workqueue引入在之前的softirq中提到过,内核在中断的bottom half引入了softirq, tasklet, workqueue。 而softirq和tasklet只能用在中断上下文中,而且不可以睡眠。所以内核引入了workqueue,工作队列运行在进程上下文,同时可以睡眠。在以前版本的内核中workqueue的代码比较简单。在linux2.6.30代码量在10原创 2018-01-25 11:18:23 · 323 阅读 · 0 评论 -
SLUB
内核管理页面使用了2个算法:伙伴算法和slub算法,伙伴算法以页为单位管理内存,但在大多数情况下,程序需要的并不是一整页,而是几个、几十个字节的小内存。于是需要另外一套系统来完成对小内存的管理,这就是slub系统。slub系统运行在伙伴系统之上,为内核提供小内存管理的功能。 slub把内存分组管理,每个组分别包含2^3、2^4、...2^11个字节,在4K页大小的默认情况原创 2018-01-22 10:12:34 · 354 阅读 · 0 评论 -
minicom用法
在android开发过程中,通常需要输出串口log原创 2014-10-23 09:25:42 · 901 阅读 · 0 评论 -
android gdb gdbserver
1:弄一个和平台相关的程序放入手机#adb push memtest /data/bin2:启动gdbserver我们编译出来的系统都已经自带了gdbserver,如果没有,例如真机,可以在prebuilt里面找到编译好的安装上去这里我们直接在adbshell中启动gdbserver$adb shell#gdbserver :1234 /data/bin/memtest正常的话应该显示:Proc转载 2014-08-21 19:56:06 · 639 阅读 · 0 评论 -
动态电压与频率调节在降低功耗中的作用
关键字:芯片运行负载采集1 DVFS的工作流程 现在,为了延长便携式设备(如手机、MP3、多媒体播放器、笔记本电脑等)的电池寿命,芯片厂商们正在绞尽脑汁开发新的节电技术。简单地说,这些节电技术可以分为两类——动态技术和静态技术。静态技术包括不同的低功耗模式,芯片内部不同组件的时钟或电源的按需开关等。动态技术则是根据芯片所运行的应用程序对计算能力的不同需要,动态调节芯片的运行频率和电转载 2014-09-05 15:13:18 · 1202 阅读 · 0 评论 -
Linux kernel Kobjects解析
Kobjectskobject是一种数据结构,定义在 。 struct kobject { const char * k_name;/*kobject 的名字数组(sysfs 入口使用的名字)指针;如果名字数组大小小于KOBJ_NAME_LEN,它指向本数组的name,否则指向另外分配的一个名字数组空间 */ char name[KOBJ_N原创 2014-09-05 14:01:18 · 496 阅读 · 0 评论 -
PROC文件及文件夹创建
创建一个proc虚拟文件,应用层通过读写该文件,即可实现与内核的交互。先看看比较简单的,创建proc文件夹。调用以下函数,即可实现proc文件夹的创建:struct proc_dir_entry *proc_mkdir(const char *name, struct proc_dir_entry *parent);name就是要创建的文件夹名称。parent是要创原创 2018-01-26 17:41:12 · 2056 阅读 · 0 评论