自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

清风专栏

沉下心,做点事

  • 博客(66)
  • 资源 (2)
  • 收藏
  • 关注

原创 对于两个独立随机变量X,Y, E(XY)=E(X)E(Y)

在掷硬币的情境中,掷硬币正面朝上和反面朝上的概率都为0.5,即掷硬币的结果是随机的,可以看成是一个有两种结果的随机试验。因此,Y可以表示掷硬币正面朝上的概率,它的取值范围为0到1,符合概率的定义。假设骰子是均匀的,点数从1到6出现的概率相等,即P(X=1)=P(X=2)=...=P(X=6)=1/6。硬币是公平的,正面朝上的概率是0.5,背面朝上的概率也是0.5。根据上面的例子,掷一枚硬币正面朝上的概率为Y,是一个固定的值。因此,XY的期望等于X的期望乘以Y的期望,即E(XY) = E(X)E(Y)。

2024-03-06 16:27:24 672

原创 Linux SCHED_FIFO, SCHED_RR和SCHED_OTHER

SCHED_FIFO: 先进先出调度在先进先出的调度方式下,一个线程直到它被更高优先级的线程抢占或者运行结束,才会交出控制权。相同优先级的任务不能打断该线程。当线程完成后,内核会去寻找处于就绪状态相同优先级的线程,如果不存在, 则寻找低优先级线程。FIFO调度本身实现了数据的互斥, 在线程运行的时间内其他相同优先级线程无法进行资源抢占。SCHED_RR: 时间片轮转调度在时间片轮转(RR: RoundRobin)调度下,一个线程放弃内核有三种情况:运行结束,被更高级优先级抢占或者消耗完自己的时间片。时间片

2021-08-25 10:58:06 3033

原创 v4l2结构体关系图

v4l2 结构体关系图

2021-05-26 17:28:18 244

转载 slab中colour_off的意义

对于arm9处理器,当使用指令控制协处理器cp15打开数据缓存(DCache)时,arm9内部的数据总线上的数据就都会被缓存到arm9内部的物理cache中,对于arm9处理器at91rm9200来说,dcache大小为16k,物理分布情况是这样的:"每条cpu物理cache缓存线数据大小为32字节,一共512条,即:16K",cpu访问cpu内部dcache区的速度远远高于访问外部sdram,此时,arm9处理器操作的所有数据将直接来自于dcache-16k的cpu内部高速物理缓存,处理器将只和处

2021-05-14 14:50:35 233

原创 Linux Process vs Thread

进程:资源分配(cpu time and memory)的基本的单位.线程:程序执行的基本单位。进程: 拥有独立的内存单元,多进程之间要用IPC通信线程:同一个进程的多个线程共享内存,多于一些要求同时进行并且又要求共享某些变量的并发操作,最好用线程。进程:切换耗费资源大,效率差线程:切换所需时间远小于进程fork is expensive. Memory is cop...

2019-04-23 11:32:04 248

原创 48位地址线,PAGE size是4KB, 每个页表项是8Byte, 至少需要多少级页表?

1. 一个page等于:4KB = 2^122. 装下全部48bits的地址空间需要2^36个page(2^48)/(2^12) = 2^363. 一页中可以装下2^9个页表项(PTE):(2^12)/(2^3) = 2^94.则至少需要4级页表:2^9*2^9*2^9* 2^9= 2^36...

2019-04-22 21:36:28 1717 1

原创 SDM845 虚拟地址分配

宏定义符号 描述 value VA_START 内核地址空间的起始地址 0xffffff80-00000000 TEXT_OFFSET bootloader会把kernel image从外设copy到RAM中,那么具体copy到什么位置呢?从RAM的起始地址开始吗?实际上是从TEXT_OFFSET开始的,偏移这么一小段内存估计是为了bootloader和ker...

2019-04-22 21:12:36 349

转载 Deciphering Android Garbage collection (GC) logs

http://infinitesproutingthoughts.wordpress.com/2013/06/21/deciphering-android-garbage-collection-gc-logs/More often  android adb log dumps below text for GC:19:30:22.188 26517 26519 D dalvikvm

2014-03-13 18:14:02 1033

转载 Android DalvikVM threads and ANR dump.

http://infinitesproutingthoughts.wordpress.com/2013/06/21/deciphering-android-garbage-collection-gc-logs/Android dalvikVM (DVM) provides own Thread wrapper on top of native threads(Linux posix thr

2014-03-13 18:06:27 1706

转载 How to read Dalvik SIGQUIT output

If you're a long-time Java developer you're probably used to sending SIGQUIT to a Java process (either viakill -3 or hitting ctrl-\) to see what all the threads are doing. You can do the same with D

2014-03-13 17:26:37 711

转载 定位Oops错误代码行【整理】

转载:http://zjf30366.blog.163.com/blog/static/41116458201222893224924/定位Oops错误代码行【整理】  [17184178.672000] Bad mode in data abort handler detected[17184178.672000] Internal error: Oops

2014-02-27 14:51:24 11561

转载 Android Bander设计与实现 - 设计篇

关键词Binder Android IPC Linux 内核 驱动 摘要Binder是Android系统进程间通信(IPC)方式之一。Linux已经拥有管道,system V IPC,socket等IPC手段,却还要倚赖Binder来实现进程间通信,说明Binder具有无可比拟的优势。深入了解Binder并将之与传统IPC做对比有助于我们深入领会进程间通信的实现和性能优化。本文将对Bi

2013-06-19 17:15:01 718

转载 sed使用详解

使用 sed 编辑器作者:Emmett Dulaneysed 编辑器是 Linux 系统管理员的工具包中最有用的资产之一,因此,有必要彻底地了解其应用。Linux 操作系统最大的一个好处是它带有各种各样的实用工具。存在如此之多不同的实用工具,几乎不可能知道并了解所有这些工具。可以简化关键情况下操作的一个实用工具是 sed。它是任何管理员的工具包中最强大的工具之一,并且可以证明它

2012-05-22 15:51:41 372

转载 linux cut命令参数及用法详解--分段显示内容

名称:cut    使用权限:所有使用者     用法:cut -cnum1-num2 filename     说明:显示每行从开头算起 num1 到 num2 的文字。     范例:      shell>> catexample   test2    this is test1    shell>> cut -c0-6 e

2012-05-22 15:50:17 1194

转载 记录一linux命令:xargs

xargs大多数 Linux 命令都会产生输出:文件列表、字符串列表等。但如果要使用其他某个命令并将前一个命令的输出作为参数该怎么办?例如,file 命令显示文件类型(可执行文件、ascii 文本等);你能处理输出,使其仅显示文件名,目前你希望将这些名称传递给 ls -l 命令以查看时间戳记。xargs 命令就是用来完成此项工作的。他允许你对输出执行其他某些命令。记住下面这个来自于第 1 部分

2012-05-11 13:19:16 638

原创 先装win7, 再装ubuntu

The simple way to install grub/ grub2 from any linux live-CD or any other bootable medium.Step 1: boot from linux live CDStep 2: mount your hddStep 3: chroot in the mounted filesystemStep 3: i

2011-12-16 17:19:26 1076

转载 container_of()宏的简要解析

在学习Linux驱动的过程中,遇到一个宏叫做container_of。该宏定义在include/linux/kernel.h中,首先来贴出它的代码:1.       439/** 2.       440 * container_of - cast a member of a s

2011-07-28 17:24:20 500

原创 环境变量设置

环境变量配置文件在ubuntu中有如下几个文件可以设置环境变量1、/etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。2、/etc/environment:在登录时操作系统使用的第二个文

2011-07-19 10:50:56 427

原创 如何修改ubuntu系统的主机名

hostname -v -b new-name将/etc/hostname, /etc/hosts中的原hostname改为new-name

2011-07-07 11:55:35 633

原创 名词解释: mesa opengl drm dri gem kms

opengl: a system for rendering interactive 3D graphicsmesa: Mesa is an open-source implementation of the OpenGL specification drm: direct rendering manager.dri: direct rendering infrastructure

2011-06-23 15:32:00 2718 1

转载 A closer look at the Android project build system part II

<br />This is the second post on the build system where we will take a closer look at the Android.mk file and what options are available. An Android.mk file describes the build for any native module that should go in the platform. We will start by lo

2011-01-04 17:50:00 676

转载 A closer look at the Android project build system part I

<br />In this two part post we will take a closer look at the structure of the build system for native functionality. The build system is based on make and resides in the build folder in the project. The first part will look at what is found in this

2011-01-04 17:49:00 677

转载 The init process and init.rc

<br />In this post I will wrap up the analysis of what is going on at boot by looking at the Android init process and the init.rc file. If we start with the source you will find the code for the init process under /system/core/init in the source tree

2011-01-04 17:46:00 1051

转载 The System Server in Android

<br />In this post I will add some more detail on the system server in Android. The system server is the core of the Android system and as described in the boot sequence post it is started as soon as Dalvik is initialized and running. The other syste

2011-01-04 17:45:00 1599

转载 The Android boot process

The Android boot process from power on<br />Since mobile platforms and embedded systems has some differences compared to Desktop systems in how they initially start up and boot this post will discuss the initial boot stages of an Android phone in

2011-01-04 17:39:00 1715

原创 linux 一些比较有用的命令

<br />查看硬盘各分区的UUID,<br />用命令 ls -al /dev/disk/by-uuid <br /> 查看你的所有的硬盘的UUID信息!<br /> <br /> <br />查看磁盘剩余空间<br /> <br />df -k 或者df -h<br /> <br />查看设备的udev信息:<br /> <br />use udevadm instead of udevinfo<br />Code:udevadm info -q all -n /dev/sda1<br />you ca

2010-12-23 11:31:00 487

转载 USB gadget设备驱动解析(1)

作者:刘洪涛,华清远见嵌入式学院金牌讲师。利用Linux USB gadget设备驱动可以实现一些比较有意思的功能,举两个例子: 1、一个嵌入式产品中的某个存储设备,或是一个存储设备的某个分区,可以作为一个U盘被PC;设别,从而非常方便的完成文件交互,这个功能被广泛的应用于手机、数码相机等产品中。2、一个嵌入式设备通过USB连接到你的PC后,在你的PC端会出现一个新的网络连接,在嵌入式设备上也

2010-05-24 14:49:00 805

原创 linux2.6中的console_init初始化的研究

在linux初始化过程中,除非启用了early console,否则直到console_init调用之前是没有任何输出的,它们的输出都放在__log_buf这个缓冲内的,在console_init调用时再将这个缓冲区内的数据一次性输出。 void __init console_init(void){ initcall_t *call; /* Setup the defaul

2010-05-06 14:51:00 3571 1

原创 Attaching serial input devices to the kernel input system

Although USB is the most popular way to connect input devices suchas mice, serial input devices, such as older mice, and more exoticinput devices such as 3Dconnexion Spaceballs are still quite usa

2010-04-26 09:58:00 1197

原创 诸葛亮为什么难以入围千古名相之列

诸葛亮是千古名相似乎是历史定论。其实,诸葛亮只能算是一个千古忠臣,并非千古名相;而史书中说诸葛亮是一个千古名相,这就有待于商讨了。因为诸葛亮就是不能识大体、弃细务,凡事必亲躬,说明身边人才贫乏;有良才而不用,以庸才而误事,没有识人之明;统兵无功导致几次伐魏失败,这乃是为官为相之忌。但诸葛亮对蜀汉忠心不二,真正鞠躬尽瘁,死而后已,所以说诸葛亮只能说是忠臣,而非千古名相。诸葛亮是英雄,他自称才比管

2010-04-15 14:17:00 930 1

转载 fcntl函数

文件控制函数         fcntl -- file controlLIBRARY         Standard C Library (libc, -lc)SYNOPSIS         #include ;         int fcntl(int fd, int cmd, ...);[描述]            Fcntl()针对(文件)描述符提供控制.参数fd 是被参数cmd操

2010-04-15 10:07:00 885

原创 Linux下select函数的使用

一.Select 函数详细介绍    Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。    

2010-04-13 16:26:00 6755 1

转载 《Essential Linux Device Drivers》 第8章 I2C Protocol

第 8 章 I2 C 协议 I2 C ( The Inter-Integrated Circuit )及其 子集 SMBus ( System Management Bus )均为同步串行接口,普遍存在于桌面电脑和嵌入式设备中。 本章通过实现访问 I2 C EEPROM 和 I2 C RTC 的驱动实例,让我们理解内核如何支持 I2 C /SMBus 主机适配器和客户设备。在结束本章之前,让我

2010-04-08 15:32:00 4435

转载 《Essential Linux Device Drivers》 第7章 Input Drivers

第7章 输入设备驱动内核的输入子系统是为了对分散的、多种不同类别的输入设备(如键盘、鼠标、跟踪球、操纵杆、辊轮、触摸屏、加速计和手写板)进行统一处理的驱动。输入子系统带来了如下好处:·         统一了物理形态各异的相似的输入设备的处理功能。例如,各种鼠标,不论PS/2、USB,还是蓝牙,都被同样处理。·        提供了用于分发输入报告给用户应用程序的简单的事件(event

2010-04-08 15:30:00 4503

转载 《Essential Linux Device Drivers》 第6章 Serial Drivers

第6章 串行设备驱动串口是被许多技术和应用广泛使用的基本通信通道。通用异步收发器(Universal Asynchronous Receiver Transmitter,UART)常用来实现串行通信。在PC兼容机硬件上,UART是Super I/O芯片组的一部分,如图6.1所示。图 6.1. PC串口连接图 尽管RS-232串口是常见的串行硬件,内核的串行子系统还是用通用化的方

2010-04-08 15:18:00 2240 1

转载 《Essential Linux Device Drivers》 第5章 Character Driver

第5章 字符设备驱动 现在,你已经准备就绪了,可以尝试去写一个简单、但实用的设备驱动了。在这一章,我们将深入字符设备驱动的内幕:顺序存取设备数据的内核代码。字符设备驱动能从如下几类设备获取原始的数据:如打印机、鼠标、看门狗、键盘、内存、实时时钟等,但它不适合用于以块方式存储的、随机访问的设备,如硬盘、软盘和光盘。  字符设备驱动基础让我们以自顶向下的方式开始字符设备驱动学习之旅

2010-04-08 15:09:00 1357

转载 《Essential Linux Device Drivers》 第4章 Laying the Groundwork

第4章 打下基础我们现在已经与编写设备驱动之间的距离已经非常逼近。但是,在此之前,让我们先装备一些驱动的概念。本章首先开始于对本书的问题陈述的理念,接下来分析PC兼容的系统和嵌入式计算机中典型的设备和I/O接口。中断处理在大多数驱动中的都存在,因此,本章讨论了编写中断服务程序的方法问题。之后,我们将注意力转移到了2.6内核中新引入的设备模型,该新模型建立于sysfs、kobject、设备类、u

2010-04-08 15:07:00 1062

原创 《Essential Linux Device Drivers》 第3章 Kernel Facilities

第3章 内核组件本章将对一些驱动开发相关的内核组件进行讲解。我们首先以内核线程开始,它类似于用户空间的进程,通常用于并发处理。另外,内核还提供了一些接口,使用它们可以简化代码、消除冗余、增强代码可读性并有利于代码的长期维护。本章会学习链表、哈希链表、工作队列、通知链(notifier chain)、完成以及错误处理辅助接口等。这些辅助接口经过了优化,而且清除了bug,因此你的驱动可以继承这

2010-04-08 15:05:00 1085

原创 《Essential Linux Device Drivers》 第2章 A Peek Inside the Kernel

第 2 章 内核一瞥 在我们开始步入 Linux 设备驱动的神秘世界之前,让我们先熟悉一些从驱动开发人员应该理解的基本的内核概念。我们将学习到内核定时器、同步机制以及内存分配方法,但是,先让我们从顶层视角开始探索,扫描一下内核发出的启动信息,并在感兴趣的地方设置停下来看一看。 启动过程 图 2.1 显示了基于 x86 计算机 Linux 系统的启动顺序。第一步是 BIOS 从启动设备中

2010-04-08 14:57:00 906

原创 《Essential Linux Device Drivers》 第1章 Introduction

第1 章 简介 Linux 具有诱人的魅力,它是一个由全世界不同民族、不同信仰、不同性别的人共同参与和协作的国际性项目。免费提供源代码 以及容易理解的类 UNIX 应用程序编程环境,促成了 Linux 的重大成功。 通过因特网从 专家 处即时获得的 高 质量的免费 支持发挥了重要 的 作用, 这促使了一个 庞大的 Linux 社区 的形成 。 由于在技术方面 开发 人员可以获得所有源码,并

2010-04-08 14:55:00 1100

Essential Linux Device Drivers 中文版.rar

Essential Linux Device Drivers的中文版,只有1~8章.迄今我读过的最全面深入的linux设备驱动程序著作.

2010-04-09

空空如也

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

TA关注的人

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