自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(221)
  • 资源 (3)
  • 收藏
  • 关注

原创 QSPI nor flash相关驱动代码

QSPI nor flash drvier

2017-03-31 17:45:23 7941 1

原创 spi nor flash使用汇总

OverviewSPI flash, 分为spi flash, DUAL spi flash, QUAD spi flash,3-wire spi, 4-wire spi, 6-wire spi. 在clock一定的情况下, 理论上线数越多速度越快NOR flash和Nand flash相比 NOR缺点: 价格贵, 容量小, 擦除块大, 擦除速度慢, N

2017-02-24 16:38:45 24791 2

原创 uboot sf 命令用法

uboot中如果支持spi/qspi flash, 那么可以使用sf的erase, read, write命令操作spi flashsf read用来读取flash数据到内存sf write写内存数据到flashsf erase 擦除指定位置,指定长度的flash内容, 擦除后内容全1具体用法sf probe [[bus:]cs] [hz] [mode] - i

2017-02-20 14:32:13 31117

原创 内存分配器memblock

背景在Linux内核开发过程中, 多少都会存在一个patch, 引入了远超预期的麻烦. 内核2.6.34开发过程中, 这个奖项非CONFIG_NO_BOOTMEM莫属bootmem本身是个简单的,低级的内存分配器. 在引导程序的初期用来分配内存. 有人可能会想, 没有必要再增加一个内存分配器, 但是由于内存管理代码在被调用前需要很多内核功能都准备好, 要想在启动初期使用内存管理代码会大

2017-01-24 20:48:42 3290

原创 linux kernel内存管理数据结构

mem_map 是一个全局变量, 指向一个struct page数组, 管理着系统中的所有物理页面, 数组中的每个page结构,对应一个物理页框.mem_map仅当系统为单NODE时有效NODE_DATA(0)->node_mem_map系统中的每个内存node的node_mem_map都指向一个struct page数组, 用来描述这个node所有zone的物理内存页

2017-01-23 20:01:44 2754

原创 dts中memreserve和reserved-memory的区别

Devicetree 提供了两种方式保留内存:, reserved-memory示例如下:memreserve示例/memreserve/ 0x40000000 0x01000000reserved-memory示例 reserved-memory { #address-cells = ; #size-cells = ;

2017-01-23 15:04:19 15659 2

原创 printk 输出函数调用栈的方法

有时在linux kernel过程中, 想知道当前函数的调用者是谁, 一直没查到内这个功能, 今天终于发现了这个好东西void * __init memblock_virt_alloc_try_nid_nopanic(                phys_addr_t size, phys_addr_t align,                phys_addr_t min_a

2017-01-23 14:22:52 3025

原创 linux file命令查看elf文件信息

使用file命令查看动态链接库, 得到如下结果:#/usr/libx32$ file ../lib32/libgomp.so.1.0.0../lib32/libgomp.so.1.0.0: ELF 32-bit LSB  shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=57e

2017-01-06 18:00:21 8216

转载 FIQ和IRQ区别

FIQ和IRQ区别 FIQ和IRQ是两种不同类型的中断,ARM为了支持这两种不同的中断,提供了对应的叫做FIQ和IRQ处理器模式(ARM有7种处理模式)。一般的中断控制器里我们可以配置与控制器相连的某个中断输入是FIQ还是IRQ,所以一个中断是可以指定为FIQ或者IRQ的,为了合理,要求系统更快响应,自身处理所耗时间也很短的中断设置为FIQ,否则就设置了IRQ。如果该中断设置为了I

2016-06-08 13:37:04 6383

原创 EMMC子系统分析-读写流程

EMMC read/write流程

2016-04-22 10:21:21 9202

原创 Linux EMMC子系统分析-初始化流程

最近在解EMMC的一个bug,发现Linux EMMC有点小复杂,先整理个文档出来吧用的是TI 平台,仅分析MMC,不分析SD和SDIO1初始化1.1mmc_init2769 static int __init mmc_init(void)2770 {2774 2775 workqueue = alloc_ordered_workqueue("kmmcd",

2016-04-12 13:04:53 13047

原创 Out of memory, OOM killer输出信息分析

当out of memory发生时,out_of_memory函数会选择一个内核认为犯有分配过多内存 “罪行”的进程,并杀死该进程。这就有很大的几率腾出较多的空闲页,然后再跳转回重试内存分配的操作。这里我们不讨论out_of_memory的:1. 函数流程2. 选择要牺牲进程的策略方法。我们仅讨论out of memory发生时,内核输出信息的含义。以下是一段典型的ou

2015-12-17 10:42:54 20294 1

翻译 pdflush 几个参数的含义

参考3.4内核文档pdflush是Linux 内核的数据同步机制,系统通常会有多个pdflush内核线程存在,当前没有研究内核线程的数目是由什么决定的。系统内脏页积累到一定程度,或者系统需要释放脏页占用的内存时,需要把脏页中的数据写回磁盘,这个写回机制由内核线程pdflush实现。pdflush受多个控制参数控制,分别是:dirty_background_bytesdi

2014-12-15 11:49:52 3115

原创 Ubuntu broken pipe 无法启动, 解决办法

Ubuntu启动时显示could not write Byte:Broken pipe

2014-06-13 17:44:43 4974 2

原创 APK签名原理

网上已有多篇分析签名的类似文章,但是都有一个共同的问题,就是概念混乱,混乱的一塌糊涂。在了解APK签名原理之前,首先澄清几个概念:消息摘要 -Message Digest简称摘要,请看英文翻译,是摘要,不是签名,网上几乎所有android签名分析的文章都对这两个概念乱用摘要的链接http://en.wikipedia.org/wiki/Message_digest简

2014-01-14 20:25:46 32567 9

转载 Camera 的3A

就是AE AF AWBAuto ExposeAuto FocusAuto White Balance

2013-12-05 19:27:30 9034

原创 移植ubuntu core到Arm开发板

最初是想把整个ubuntu移植到MX51开发板,项目不需要运行桌面系统,所以只移植了一个基本的ubuntu core系统 1. 下载ubuntu core rootfs,关于ubuntu core参考https://wiki.ubuntu.com/Corehttp://cdimage.ubuntu.com/ubuntu-core/releases/12.04/release/ubunt

2013-11-11 18:06:18 26964

原创 移植apache2 ARM版 - 交叉编译apache2

下载apache2 http://apache.fayea.com/apache-mirror//httpd/httpd-2.4.6.tar.bz21. tar jxvf httpd-2.4.6.tar.bz22. cd httpd-2.4.63. ./configure --host=arm-linux --prefix=/usr/local/arm/4.4.3 --with-a

2013-11-08 15:47:31 8059

原创 移植apache2 ARM版 - 交叉编译apr-util

下在apr-util-1.5.2 http://apache.fayea.com/apache-mirror//apr/apr-util-1.5.2.tar.gz1. tar zxvf apr-util-1.5.2.tar.gz2. cd apr-util-1.5.23. ./configure --host=arm-linux --prefix=/usr/local/arm/4.

2013-11-08 14:33:17 4329

原创 移植apache2 ARM版 - 交叉编译apr-1.4.8

1. 下载apr-1.4.8, http://mirrors.hust.edu.cn/apache//apr/apr-1.4.8.tar.gz2. tar zxvf apr-1.4.8.tar.gz3. cd apr-1.4.84. ./configure --host=arm-linux --prefix=$PREFIX --enable-static5. export PREF

2013-11-07 19:35:15 5320

原创 移植apache2 ARM版 - 交叉编译pcre-8.33

1. 下载pcre-0.83, http://jaist.dl.sourceforge.net/project/pcre/pcre/8.33/pcre-8.33.tar.gz2. tar zxvf pcre-8.33.tar.gz3. cd pcre-8.33我的交叉编译工具链位置在/work/icar2/prebuilt/linux-x86/toolchain/arm-eabi-

2013-11-07 18:09:36 5045 3

原创 lowmemorykiller的几点思考

lowmemkiller的实现机制调用lowmemkiller的时机如何设置应用程序的oom_adjlowmemkiller的现存问题在lowmemkiller.c源代码有如下注释: * The driver considers memory used for caches to be free, but if a large *

2013-11-01 18:22:47 9393

原创 CD-ROM Red book, Yellow Book, White Book, Green Book

Red book红皮书标准是专门定义数字audio CDs。所有的audio CDs使用这个标准,以确保任意的audio CD-ROM能够被任意的audio CD-player播放。红皮书是由Phillips和Sony开发的。红皮书定义了CD的物理参数和属性,激光笔的参数,背离和出错率,调制系统(Eight-to-fourteen modulation, EFM)以及纠错设施,和八个子码通

2013-10-25 14:38:24 2019

原创 MingW编译virt-viewer

在http://www.spice-space.org/download.html可以下载到windows版本的virt viewer,virt-viewer-x86-0.5.7.msi和virt-viewer-x64-0.5.7.msi是使用MingW编译出来的,源码就是使用virt-viewer-0.5.7.tar.gz如果需要定制自己的virt viewer,就需要从源码编译出可执行的二

2013-08-31 18:12:43 10698 12

原创 virt viewer Usbredir USB重定向

编译virt viewer之前执行的configure命令,是没有使能usb-redir相关的功能,virt viewer是否支持usbredir是完全依赖于spice-gtk的。virt viewer对spice-gtk的依赖关系,可以从virt viewer的configure结果看出来configure: Configuration summaryconfigure: ====

2013-08-20 10:36:42 10341 2

原创 GTK - 隐藏Titlebar

需求:碰到客户非要把GTK标准的titlebar换成自己的贴图栏,因此需要在显示窗口时把title去掉。在缺省情况下,窗口是带有一个 title bar的,用来进行缩放控制,最大化,最小化,关闭等等,有些window managers允许GTK+ disable掉边框和titlebar。应用程序可以调用gtk_window_set_decroated进行设置,GTK+将尽力和window ma

2013-08-15 14:03:55 3060

原创 红帽Spice 入门

IntroductionSPICE(独立计算环境的简单协议)- Simple Protocol for independent Computing EnvironmentSpice 是一个开放的远程计算解决方案,使得客户端可以访问远程机器桌面和设备(比如键盘,鼠标,audio和USB)。通过Spice我们可以像使用本地计算机一样访问远程机器,这样可以把CPU GPU密集工作从客户端移交

2013-08-11 12:10:40 20082 3

原创 linux进程调度 - 周期性调度器

周期性调度器是在scheduler_tick中实现。如果系统正在活动中,内核会按照频率HZ自动调用该函数。如果没有进程在等待调度,那么在计算机电力供应不足的情况下,也可以关闭该调度器以减少电能消耗。3469 /*3470  * This function gets called by the timer code, with HZ frequency.3471  * We call i

2013-08-02 16:14:32 2892

原创 linux进程调度 - cpu进程负载均衡

当某个cpu负载过轻而其他的cpu负载过重时,系统会把进程从较重负载cpu迁移到负载较轻的cpu上

2013-08-02 16:13:01 2479

原创 linux进程调度 - 完全公平调度类

完全公平调度类是调度类的一个实例static const struct sched_class fair_sched_class = { .next = &idle_sched_class, .enqueue_task = enqueue_task_fair, .dequeue_task = dequeue_task_fair

2013-08-01 18:27:05 3374

翻译 linux进程管理 - 核心调度器

linux内核进程调度器基于两个函数:周期性调度器函数和主调度器函数.周期性调度器所谓周期性调度器就是scheduler_tick中实现。如果系统正在活动中,内核会按照HZ自动调用这个函数。实际上在每个滴答的handler中会调用这个函数。如果在没有进程等待调度,那么在计算机电力供应不足的情况下,也可以关闭该调度器以减少电能消耗。该函数会激活负责当前进程的调度类的周期性调度方法。

2013-07-31 16:19:41 1589 2

翻译 Linux 进程调度

CFS调度器传统的调度器使用时间片的概念,对系统中的进程分别计算时间片,使得进程运行至时间片结束。在所有的进程时间片都以用尽后,重新计算时间片。而CFS调度器完全摒弃了时间片,会重点考虑进程的等待时间。CFS调度器的目的是,向系统中每个激活的进程提供最大的公正性,或者说确保没有进程被亏待。CFS引入了虚拟时钟的概念,该时钟的流逝速度小于实时时钟,精确的速度依赖于当前等待

2013-07-30 17:32:56 1854

转载 Linux 文件系统 - Ext4 Howto

去年就发现项目Android系统中已经用上了Ext4文件系统,当时并没有深究为什么要使用Ext4文件系统,使用ext4带来的优点和缺点。最近有时间,正好整理下Ext4对于Ext2/Ext3带来的变化。网上关于Ext4的文章并不多,只找到了来自http://kernelnewbies.org/Ext4/的Ext4 Howto,是一篇概括性的文章。1. 介绍Ext4是Linux操作

2013-07-29 10:14:12 7169

原创 理解linux虚拟文件系统VFS - 路径查找 path_lookup

VFS的一个主要操作,是给定一个文件名,获取该文件名的inode。路径查找是VFS中相当繁琐的一部分,主要是符号链接,文件系统装载点,已经. ..和//等奇怪路径带来了一些额外处理。nameidata数据结构查找过程涉及到很多函数调用,在这些调用过程中,nameidata起到了很重要的作用:1. 向查找函数传递参数;2. 保存查找结果。struct nameidata {

2013-07-27 16:06:50 10493 1

原创 理解linux虚拟文件系统VFS - 数据结构

file_system_type1406 struct file_system_type {1407 const char *name;1408 int fs_flags;1409 int (*get_sb) (struct file_system_type *, int,1410 const

2013-07-25 17:24:00 4800

原创 理解linux虚拟文件系统VFS - 概述

当前,除了linux标准的文件系统Ext2/Ext3/Ext4外,存在很多种文件系统,比如reiserfs, xfs, Windows的vfat NTFS,网络文件系统nfs 以及flash 文件系统jffs2, yaffs/yaffs2 ubifs。linux通过叫做VFS的中间层最这些文件系统提供了完美的支持。对于用户来说,这些文件系统是几乎透明的,在大部分情况下(比如fat vfat不支

2013-07-25 14:43:07 21309 3

原创 进程地址空间 - 地址空间布局

虚拟地址空间包含了若干区域,其分布方式是特定于体系结构的。但是基本都包含下列共同的成分。当前运行代码的二进制代码,代码段又称为text,所处的地址空间由称为text段。程序使用的动态库的代码存储全局变量和动态产生的数据的堆。用于保存局部变量和实现函数/过程调用的栈环境变量和命令行参数的段将文件内容映射到虚拟地址空间的内存映射。是由elf标准确定。每个体系结构都指定了一个特定起始

2013-07-22 21:40:15 2870

原创 进程地址空间 - 堆管理

TBD

2013-07-17 19:50:24 2162

原创 进程地址空间 - page fault处理

TBD

2013-07-17 19:48:04 1427

原创 进程地址空间 - 内存区操作

TBD

2013-07-17 19:47:30 1178

Google GFS 文件系统(英)

Google GFS开发者写的论文,描述了GFS设计理论

2012-11-09

A COMPACT GUIDE TO LEX & YACC

This document explains how to construct a compiler using lex and yacc.

2010-10-29

空空如也

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

TA关注的人

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