自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Am_111的专栏

越艰难,越要有勇气走下去! Am_111

  • 博客(53)
  • 资源 (3)
  • 收藏
  • 关注

原创 向linux内核提交了第一个patch,在3.8中发布,庆祝一下!

向linux内核提交了第一个patch,关于MMC CORE的,在3.8中发布,庆祝一下!am_111

2013-01-21 10:25:13 1915

转载 关于MIPS平台的asid_cache debug的总结

最近遇到一个非常有意思的问题,MIPS平台的CPUHOTPLUG会有一定的概率导致应用程序出现段错误,花了几天的时间排除了一大堆问题后,最后定位到了MIPS公司的一段代码上,竟然是在trap_init里又对asid_cache进行了初始化!在网上很少有关于asid的内容,有也讲的不详不尽,今天写完了文档,决定把它贴出来!欢迎一起讨论。  ====================

2013-03-20 16:05:19 2733

转载 Android/Linux Kernel 記憶體管理-入門筆記

這是一篇寫給自己看的筆記,牽涉的範圍是Android/Linux Kernel上下層的記憶體管理機制,由於牽涉到基礎,核心與使用者空間的Framework,這系列的文章會分為幾個單元,依據筆者自己的時間安排,逐一分享出來,並希望對各位有所助益.相對於整理Kernel 排程,FileSystem,與相關核心模組的知識,重新再去彙整Kernel記憶體機制的Topics,會發現表現上看似簡單的Mal

2013-03-13 11:03:42 3110

原创 CACHE & TLB (三)

source code以ARM926EJ-S为例分析,主要的代码位于arch/arm/mm/cache-arm926.s和arch/arm/mm/proc-arm926.s1. cache和tlb的定义 #ifdef MULTI_CACHE ENTRY(\name\()_cache_fns)            .long    \name\()_flush_ic

2013-03-12 09:56:09 3400

原创 CACHE & TLB(二)

四.虚拟高速缓存            1.虚拟高速缓存的概念                                             2.别名和歧义的概念           歧义:(ambiguity)           在高速缓存建立映射表之后,如果虚拟地址和物理地址的映射关系发生变化,而从虚拟高速缓存来看,虚拟地址不变,所以依然会命中而直接返回,从

2013-03-11 15:15:38 4515

原创 CACHE & TLB (一)

一.unix内核简单回顾(内存相关)               1. 当使用传统的分时调度策略的时候,在用户级执行的进程总会被分到时间片内执行,从而让所有的进程公平的共享CPU,在内核态执行的进程却不会分入时间片内执行,只有当前的内核进程明确允许的情况下,才能切换到内核级执行另一个进程。               2. 线程的开销比进程小主要体现在线程共享进程的地址空间。linux内核

2013-03-08 12:12:47 2697

原创 Transcendent memory(TMEM)

By Jonathan CorbetJuly 8, 2009 Making the best use ofavailable memory is one of the biggest challenges for any operating system.Throwing virtualization into the mix adds both new challenges (balan

2012-12-17 18:55:59 2822

原创 Cleancache and Frontswap

Dan Magenheimer's transcendent memory patch was examined here last July.  This patch creates a special class of memory which is not directly accessible to the rest of the kernel, allowing a number of

2012-12-12 15:29:52 1977

原创 《unix systems for modern architectures》 笔记---SMP和锁(二)

该部分笔记记录SMP下使用自旋锁实现的内核和使用信号量实现的内核,区别于主从处理器设计,实现的是所有core均能运行在内核态的设计。一.采用自旋锁的内核       SMP系统要求运行于不同处理器上的不同进程可以同时发生系统调用,这样的一种内核实现允许一次执行内核活动的多条线索,因为称为多线程内核(multithreaded kernel),要让操作系统成为多线程,就必须以某种方式标识和保

2012-09-15 13:23:24 2555

原创 《unix systems for modern architectures》笔记---主从处理器设计和死锁

一.主从处理器设计和短期互斥       短期互斥依赖于内核中绝不会有一个以上的进程同时执行,在MP上实现这一点最简单的技术是要求所有的内核活动都在一个物理处理器上执行,这个处理器为主处理器(master),其余为从处理器(slave),从处理器只能执行用户代码,以用户态执行的进程可以在系统中的任何处理器上执行。但是一旦进入到内核活动,则只能切换到主处理上执行。       主从处理器设计

2012-09-15 12:50:22 1854

原创 《unix systems for modern architectures》笔记---SMP和锁(一)

一.MP相关 相对于UP而言,MP可以采用多个CPU来缓解制造更高速度CPU的需求,在单位时间内能执行多项任务,不仅如此,多处理机系统可以调整CPU的数量来进行扩张,从而与应用环境相匹配。例如,对于终端用户和客户来说,可以通过计算需求的扩大而增加CPU数量来升级系统,就是一种很吸引人的方案。此外,还有可能提高系统的可用性。如果一个CPU发生故障,那么剩余的CPU就可以继续发挥作用

2012-09-14 02:29:24 2124

原创 Something about Mutex

最近打开内核Mutex debug选项,出现一些Mutex Warning,重新审查和学习了一点东西,记录一下。目前在学习SMP相关的东西,已经开始,坚持!一.Mutex Slowpath & Fastpath1. Can someone help me to understand what is the difference between> >> > fastpath> >

2012-08-26 23:00:08 1787

原创 linux中断 下半部

Linux中断体系 下半部一.Softirq二.Tasklet三.Tasklet_action 一.softirq为了提高中断的响应速度,很多操作系统都把中断分成两个部分,上半部分和下半部分(bottom half).上半部分通常是响应中断,并把中断所得到的数据保存到下半部,耗时的操作一般都会留到下半部去处理。在softirq_init()中会注册两个常用类型的软中断,

2011-06-28 00:39:00 4342

转载 linux中断处理体系结构分析(二)

1.中断处理的体系结构    我们知道编写设备驱动程序一定要用到中断处理函数,这在驱动程序的编写中,占据很重要的一部分。在响应一个特定的中断的时候,内核会执行一个函数,该函数叫做中断处理程序(interrupt handler)或中断服务例程(interrupt service routine ,ISP).产生中断的每个设备都有一个相应的中断处理程序,中断处理程序通常不和特定的设备关联,而

2011-06-28 00:07:00 2474

转载 Linux中断处理体系结构分析(一)

    异常,就是可以打断CPU正常运行流程的一些事情,比如外部中断、未定义指令、试图修改只读的数据、执行swi指令(Software Interrupt Instruction ,软件中断指令)等。当这些事情发生时,CPU暂停当前的程序,先处理异常事件,然后再继续执行被中断的程序。操作系统中经常通过异常来完成一些特定的功能。其中的中断也占有很大的一部分。例如下面的这几种情况:当CPU执行

2011-06-28 00:00:00 2158

原创 BUG_ON && WARN_ON

BUG_ON && WARN_ON一.BUG_ONLinux中BUG_ON,WARN_ON用于调试,比如14 #define BUG_ON(condition) do { / 15         if (unlikely((condition)!=0)) / 16                 BUG(); / 17 } while(0)如果觉得该condition

2011-06-27 21:13:00 6768

转载 ARM系统中, 当crash发生时的back trace调试输出

在ARM target board上, 如果发生异常,如内存访问越界等情况,有时会非常难debug到底是哪里出错,近来看了一下back trace回溯的功能及实现,在这里做个笔记。 首先,back trace要涉及到一堆寄存器, 不过不用担心, 实际上没你想象的那么难。 在linux kernel的代码中可以看到关于ARM寄存器的定义,在这里列一下:linux/include/asm-arm/pr

2011-06-27 21:07:00 3029

原创 uboot之OHCI (二)

三.HCD的初始化There are a number of steps necessary for an OS to bring its Host Controller Driver to an operational state:    ■Load Host Controller Driver and locate the Hc       ■Verify the HC and a

2011-06-26 21:39:00 2615

转载 浅析arm(kernel-2.6.13)自旋锁与信号量

浅析arm(kernel-2.6.13)自旋锁与信号量在单处理器上,自旋锁仅仅当作一个设置内核抢占的开关。如果内核抢占也不存在,那么自旋锁会在编译时被完全剔除出内核。我的是s3c2440 armv4的单核。这个内核被配置为可抢占的。# Kernel Features#CONFIG_PREEMPT=y自旋锁的实现:spin_lock的定义如下:#define spin_lock(lo

2011-06-26 21:17:00 1695

原创 uboot之OHCI (一)

       AT91SAM9260       U-BOOT       OHCI目录:一.OHCI驱动框架二.OHCI的数据结构三.HCD的初始化四.OHCI的相关代码 The purpose of OpenHCI(Open Host Controller Interface)  is to accelerate the acceptance of USB

2011-06-26 20:47:00 3315

原创 uboot之usbtty (二)

1.1.2.2                   Endpoint Transfer Descriptor(dtd)Dtd描述需要接收或发送的数据格式,结构如下,  Next link pointer存放下一个dtd所在的物理地址,其中T表示是否是DTD链表的最后一个DTD.ioc用于设置该DTD传输完之后是否产生xfer complete interrupt,tot

2011-06-26 20:31:00 2369 1

原创 uboot之usbtty (一)

Uboot之usbtty目录 1.      usb device 总体框架2.      文件组成3.      模块划分1.1    Usb device总体框架1.1.1   逻辑结构Freescale Mx25中USB部分有两部分结构组成,如下图  对于支持otg,使用的接口是UTMI,而在utmi部分也提到该逻辑结构, 从这点来

2011-06-20 23:49:00 2501 1

原创 uboot之cdc_acm枚举

一. 总述相对而言,usb从设备驱动比较好写,只要在中断服务程序中对端点数据进行相应的处理就可以。       对于U-BOOT而言,由于禁止中断,所以使用轮询的方式查询中断寄存器,查看中断是否发生。由于主设备(如PC HUB)在发送请求包的时候最多发送三次,所以应该在这三次之间调用usb的伪中断函数。在U-BOOT中,一般将从设备枚举成usbtty,而调用USB伪中断函数的过程就在控制台

2011-06-20 22:50:00 4008

原创 uboot之u盘枚举

              UBOOT 之U盘枚举简单的说下U盘的枚举过程,一下是我的U盘的枚举截图  在接口描述符,09 04 00 00 03 08 06 50 00,其后为三个端点描述符03非0端点的数目 两个批量传输 一个interrupt08 接口所使用的类为mass storage06 子类为SCSI命令集50 协议为批量传输接着与U

2011-06-20 22:43:00 2966

原创 linux 关机和重启 机制

目录:Linux 关机和重启机制一.sys_reboot二.apm capi Linux下的关机和重启可能由两种行为引发,一是通过用户编程,另外一种是系统自己产生的信息。用户和系统进行交互的方式有两种,一种是系统调用sys_reboot,另外一个则是apm或者acpi的设备文件,通过对其操作也可以是系统关机或者重启。一.sys_rebootlinux下关机和重启命令主要

2011-06-18 15:48:00 4980 1

原创 linux 一些机制 (三)

目录一.Address_space二.Dup系统调用三.Proc应用一.Address_space       内核空间到用户空间__user 这个特性,即__attribute__((noderef, address_space(1))),是用来修饰一个变量的,这个变量必须是非解除参考(__attribute__((noderef))——no dereference)的,

2011-06-18 15:41:00 1775

转载 内核中的死锁问题--当UHCI遇上OHCI

上次我上网查资料,突然弹出来一个网页,很黄很暴力,和张殊凡小朋友一样,我赶紧给关了.不过,从此……我天天上网查资料.今天我就给大家介绍一下我的成果.比如有一个网站叫做bugzilla.kernel.org,这是一个Linux hacker云集的网站.这个网站用于汇报Linux内核的那些bug,每当看到这些bug,Linux黑客们就采用各种手段去解决它,包括暴力手段.在2007年的那个枫叶飘零的

2011-06-11 00:04:00 1021

原创 linux 一些机制的总结 (二)

目录一.进程的状态       1.schedule_timeout       2.wake_up       3.task_struct current二.内核与用户空间信号传递 fasync一.进程的状态1.Schedule_timeout当我们调用schedule_timeout时,有两种情况能打断该定时器,一种为超时,一种为有信号打断。在该函数的申明中

2011-06-10 23:48:00 3450 1

原创 linux 用户空间电源管理 (三)

2) 库和接口函数       对于更上一层的应用程序而言,当其注册了自己的模块进入电源管理中之后,会调用一些接口来进行设置,那么我们该设置那些接口给应用层调用呢?(该部分在client中实现)i)        获取定时器A的超时时间ii)       设置定时器A的超时时间(注意锁)iii)      设置是否允许进入电源管理,是否开启定时器B(由state文件锁的占有情况决定

2011-06-04 04:35:00 1694

原创 linux 用户空间电源管理 (二)

三.ServerServer本身维护一个定时器,当定时器超时,就让系统进入节能模式。Server会接受其它进程的重置定时器的命令,阻止系统进入节能模式。Server主要功能包括:l        当定时器超时,让系统进入节能模式。l        接受来至其它进程的连接注册(可能)。l        接收来至其它进程的重置定时器命令。l        接收来至其它进程的修改

2011-06-04 04:20:00 1068

原创 linux 用户空间电源管理 (一)

linux 用户空间电源管理 (一)

2011-05-31 23:49:00 951

原创 udev 实现

udev 实现

2011-05-26 23:12:00 1165

原创 QT 触摸屏 TSLIB库

QT 触摸屏 TSLIB库

2011-05-26 22:54:00 4204

原创 linux 进程通信

linux 进程通信

2011-05-24 22:48:00 1373

原创 linux syscall

linux syscall

2011-05-24 22:39:00 3727

原创 linux 文件I/O 编程

linux 文件I/O 编程

2011-05-24 22:32:00 766

原创 linux 进程操作

linux 进程操作 守护进程

2011-05-24 22:23:00 964

原创 linux 用户线程

一.Linux下线程概述<br />       进程是系统中程序执行和资源分配的最小单位。每个进程都拥有自己的数据段,代码段和堆栈段。这就造成了进程在进行切换等操作时需要有比较负责的上下文切换等动作。为了进一步减少处理机的空转时间支持多处理器和减少上下文开销,由此有线程的提出。<br />       线程是进程内的一种基本调度单位,也可以称作轻量级进程。线程是在共享内存空间中并发的多道执行路径,它们共享一个进程的资源,如文件描述符,信号处理。从而大大减少了上下文切换的花销。<br />       同进

2011-05-24 22:17:00 1211

原创 linux一些机制的总结

linux 驱动编写会用到的一些机制 总结 也便于自己查找

2011-05-22 22:29:00 1331

原创 uboot之u盘启动kernel

详细分析uboot之u盘启动kernel

2011-01-04 22:41:00 8136 23

ads5121 uboot

ads5121 uboot

2013-11-21

SMP_introduction

SMP_introduction SMP cache linux

2012-08-31

空空如也

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

TA关注的人

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