自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

潘振杰的工作室

小小P快点长大,爸爸教你C语言哈~

  • 博客(9)
  • 资源 (7)
  • 收藏
  • 关注

原创 Android存储系统如何优化?

Android存储系统如何优化? 我也不知道…那为什么会想到要写这篇文章哪?主要是因为有天晚上和以前一个同事讨论到Android手机存储系统的优化问题。用过Android手机的人可能都会有这么个感觉,就是手机用久了之后系统会越来越慢。慢,其中很重要的一点就是和Android的存储系统有关。我们现在主流手机的内置存储芯片一般都是EMMC,一些旗舰级的Android手机已经在使用UFS接口的存储芯片,

2016-06-30 06:35:01 4003 2

原创 I2C(smbus、pmbus)和SPI协议分析

I2C和SPI作为两种非常常用的低速外部总线,已经不是什么新新技术了。 有些知识点,明白了,一段时间不用了,又忘记了。所以决定乘最近正好碰过这两个东西,还是写下来以备后患。I2CI2C是以前的飞利浦半导体制定的标准,也就是如今的NXP。I2C总线由一条数据线(SDA)和一条时钟线(SCL)组成。设备分主从,主设备提供时钟,并发起操作。 看一下这张I2C协议必须和可选的功能表。最简单的模式的话,只

2016-06-17 20:10:33 30085 5

原创 linux里的nvme驱动代码分析(加载初始化)

基于qemu2.5 + linux4.5.3学习nvme驱动

2016-06-04 16:17:51 34018 13

原创 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 7790

原创 x86架构里的cache

对x86里的cache不同种类的具体行为和特点进行了总结,并和arm进行了一些比较。当然,还有一些细节没有搞清楚,待未来继续学习。

2013-12-26 21:22:32 3675

原创 linux中mutex和semaphore的区别

很多编程的书里在介绍mutex和semaphore的时候都会说,mutex是一种特殊的semaphore.当semaphore的N=1时,就变成了binary semaphore,也就等同与mutex了。但是实际上,在linux中,他们的实现什有区别的,导致最后应用的行为也是有区别的。先看下面这个例子,这是一段linux kernel的代码:#include #inclu

2013-08-19 19:59:02 6214

原创 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 30307 3

原创 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 6653

原创 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 1857 1

wifi setup cooee

wifi setup cooee

2016-08-02

TCP.IP.Illustrated.Volume.1.2nd.Edition

TCP/IP详解卷一第二版(英文版)

2016-07-27

HY57V561620C(L)T(P)(Rev.0.5)

HY57V561620C(L)T(P)(Rev.0.5)

2009-03-18

K9F1208U0M

K9F1208U0MK9F1208U0M

2009-03-18

ubootuboot

ubootubootubootubootuboot

2009-03-17

嵌入式Linux应用开发完全手册

嵌入式Linux应用开发完全手册 嵌入式Linux应用开发完全手册

2009-03-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除