- 博客(9)
- 资源 (7)
- 收藏
- 关注
原创 Android存储系统如何优化?
Android存储系统如何优化? 我也不知道…那为什么会想到要写这篇文章哪?主要是因为有天晚上和以前一个同事讨论到Android手机存储系统的优化问题。用过Android手机的人可能都会有这么个感觉,就是手机用久了之后系统会越来越慢。慢,其中很重要的一点就是和Android的存储系统有关。我们现在主流手机的内置存储芯片一般都是EMMC,一些旗舰级的Android手机已经在使用UFS接口的存储芯片,
2016-06-30 06:35:01
4102
1
原创 I2C(smbus、pmbus)和SPI协议分析
I2C和SPI作为两种非常常用的低速外部总线,已经不是什么新新技术了。 有些知识点,明白了,一段时间不用了,又忘记了。所以决定乘最近正好碰过这两个东西,还是写下来以备后患。I2CI2C是以前的飞利浦半导体制定的标准,也就是如今的NXP。I2C总线由一条数据线(SDA)和一条时钟线(SCL)组成。设备分主从,主设备提供时钟,并发起操作。 看一下这张I2C协议必须和可选的功能表。最简单的模式的话,只
2016-06-17 20:10:33
30832
5
原创 linux kernel编译产生的vmlinux Image zImage之间的关系
linux kernel的编译过程比较复杂,最后生成的给用户使用的文件也不是一蹴而就的。 先来看一段编译kernel时命令行最后的输出,主要可以分为5个步骤: 1. 生成vmlinux 2. 生成arch/arm/boot/Image 3. 生成arch/arm/boot/compressed/piggy.gzip LD vmlinux SYSMAP Syste
2015-09-03 06:56:55
7899
原创 x86架构里的cache
对x86里的cache不同种类的具体行为和特点进行了总结,并和arm进行了一些比较。当然,还有一些细节没有搞清楚,待未来继续学习。
2013-12-26 21:22:32
3799
原创 linux中mutex和semaphore的区别
很多编程的书里在介绍mutex和semaphore的时候都会说,mutex是一种特殊的semaphore.当semaphore的N=1时,就变成了binary semaphore,也就等同与mutex了。但是实际上,在linux中,他们的实现什有区别的,导致最后应用的行为也是有区别的。先看下面这个例子,这是一段linux kernel的代码:#include #inclu
2013-08-19 19:59:02
6271
原创 soft lockup和hard lockup介绍
在linux kernel里,有一个debug选项LOCKUP_DETECTOR。使能它可以打开kernel中的soft lockup和hard lockup探测。这两个东西到底有什么用处那?首先,soft/hard lockup的实现在kernel/watchdog.c中,主体涉及到了3个东西:kernel线程,时钟中断,NMI中断(不可屏蔽中断)。这3个东西具有不一样的优先
2013-08-19 16:52:48
30547
2
原创 fork()后父子进程间的变量共享情况
#include #include #include #include int golobal_a = 0;int main(){ int local_a = 0; pthread_mutex_t local_mutex_a; pthread_mutex_t local_mutex_b; pid_t pid; pthread_mutex_init(&local_mute
2013-08-19 15:30:47
6727
原创 C语言函数调用的汇编实现
int fun2(){ return 2;}int fun1(int a, int b, int c, int d, int e, int f, int g, int h, int i, int j, int k){ int aa; int bb; aa = 0x11; bb = 0x22; fun2(); aa = h; bb = i; return 1;}
2013-08-19 12:36:37
1897
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人