自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(252)
  • 资源 (5)
  • 收藏
  • 关注

转载 CSDN的博客搜索功能太弱,教你怎么搜索自己博客的文章

原文地址:http://blog.csdn.net/pendle/article/details/6980120不得不说,CSDN博客的搜索功能是在太弱了。而且一直都很弱,以至于我每次想在自己博客上找自己发的文章都变得那么难。做一个搜索博客内文章的功能没有那么难吧? 还是说CSDN已经放弃了博客这一块了? 我发现我的博客排名好像靠前了,难道是CSDN的博客没落了?        既

2014-04-07 09:39:45 673

转载 vim 中Ctags的安装和使用

『插件介绍』Ctags工具是用来遍历源代码文件生成tags文件,这些tags文件能被编辑器或其它工具用来快速查找定位源代码中的符号(tag/symbol),如变量名,函数名等。比如,tags文件就是Taglist和OmniCppComplete工作的基础。『下载和安装』一、我是使用apt-get安装的:sudo apt-get install ctags

2017-06-09 11:02:47 243

转载 INIT_WORK和INIT_DELAYED_WORK详解

朋友,你相信,一只蝴蝶在北京拍拍翅膀,将使得纽约几个月后出现比狂风还厉害的龙卷风吗?看过那部经典的影片蝴蝶效应的朋友们一定会说,这不就是蝴蝶效应吗.没错.蝴蝶效应其实是混沌学理论中的一个概念.它是指对初始条件敏感性的一种依赖现象.蝴蝶效应的原因在于蝴蝶翅膀的运动,导致其身边的空气系统发生变化,并引起微弱气流的产生,而微弱气流的产生又会引起它四周空气或其它系统产生相应的变化,由此引起连锁反应,最终导

2017-06-06 17:18:11 843

转载 (DT系列六)devicetree中数据和 struct device有什么关系

devicetree中数据和structdevice有什么关系总体来说,devicetree与structdevice的关系应该还是在其生成platformdevice的时候,一直传递的structdevice *parent参数。下面先把其源码中传递过程描述如下(仍以At91rm9200为例):1,DT_MACHINE_START(at91sam_dt,"

2017-06-06 10:46:33 297

转载 (DT系列五)Linux kernel 是怎么将 devicetree中的内容生成plateform_device

Linux kernel 是怎么将 devicetree中的内容生成plateform_device1,实现场景(以Versatile Express V2M为例说明其过程)以arch/arm/mach-vexpress/v2m.c 为例,在该文件中的v2m_dt_init函数的作用就是利用 dt(device tree)结构初始化 platform device。static

2017-06-06 10:45:06 212

转载 (DT系列四)驱动加载中, 如何取得device tree中的属性

本文以At91rm9200平台为例,从源码实现的角度来分析驱动加载时,Device tree的属性是如何取得的。一:系统级初始化DT_MACHINE_START 主要是定义"struct machine_desc"的类型,放在 section(".arch.info.init"),是初始化数据,Kernel 起来之后将被丢弃。#define DT_MACHINE_START(_name

2017-06-06 10:42:33 130

转载 (DT系列三)系统启动时, dts 是怎么被加载的

一,主要问题:系统在启动的时候,是怎么加载 dts的;Lk,kernel中都应调查。二:参考文字dts加载流程如下图所示:启动过程中,bootloader(默认是bootable/bootloader/lk)会根据机器硬件信息选择合适的devicetree装入内存,把地址等相关信息传给kernel。kernel中,会根据传入的信息创建设备。1,先从l

2017-06-06 10:39:00 205

转载 (DT系列二)device tree的书写规范

devicetree的书写规范下面从节点,属性,reg,ranges,中断控制器等几个方面叙述devicetree的书写规范。1,dts的基本元素:节点.dts(或者其include的.dtsi)基本元素为结点和属性。举例说明节点的概念:/ { node1 { a-string-property = "A string"; a

2017-06-06 10:34:45 124

转载 (DT系列一)DTS结构及其编译方法

DTS结构及其编译方法一:主要问题1,需要了解dtsi与dts的关系2,dts的结构模型3,dts是如何被编译的,以及编译后会生成一个什么文件.二:参考文字1,DTS(device tree source).dts文件是一种ASCII文本格式的DeviceTree描述。基本上,在ARMLinux内,一个.dts文件对应

2017-06-06 10:32:53 279

原创 非root用户安装软件

首先需要解释一下程序是怎样运行的。在Linux下,用户在终端下输入一个命令,比如ls,这个命令是怎样被执行的呢?大致流程为:在当前用户的path路径文件夹下查找名为ls的可执行文件名,如果找到,则执行ls文件;如果找不到,则提示未安装或者找不到。这里很重要的就是path路径的内容,如果没有指定路径,则会在path路径里寻找。可以echo $PATH看看里面的内容。在以冒号分割的文件夹下,你会发现你

2017-06-06 10:04:21 1228

转载 编译android 之后生成的 img 文件介绍

在编译android 之后,会生成几个image 文件, 这些文件是:   1。 ramdisk.img    :   一个分区影像文件,它会在kernel 启动的时候,以只读的方式被 mount , 这个文件中只是包含了 /init 以及一些配置文件,这个ramdisk 被用来调用init,以及把真正的root file system mount 起来。   2。system.i

2017-06-06 09:16:10 687

转载 Linux系統管理講義:VI編輯器

Linux系統管理講義:VI編輯器 一、vi簡介: 1. vi是各種UNIX-Like系統都會支援的全螢幕文字編輯器,任何一位UNIX/Linux系統管理者都應該學會vi。 2. vi的操作環境是針對熟悉UNIX系統的使用者而設計,內建大量的快速鍵指令,初學者必須多加練習。 二、vi的操作環境: vi 共分為三種模式,分別是命令模式(Command mode)、編輯模式(Insert

2017-06-06 09:08:24 159

转载 WIFI基本知识整理

这里对wifi的802.11协议中比较常见的知识做一个基本的总结和整理,便于后续的学习。因为无线网络中涉及术语很多,并且许多协议都是用英文描述,所以有些地方翻译出来会有歧义,这种情况就直接英文来描述了。 主要内容:一、基本概述二、实践基础三、一些原理四、补充五、其它  一、基本概述============================1、有线和无线

2017-03-23 08:56:41 640

转载 linux内核input子系统解析

作者:刘老师,华清远见嵌入式学院讲师。Android、X windows、qt等众多应用对于linux系统中键盘、鼠标、触摸屏等输入设备的支持都通过、或越来越倾向于标准的input输入子系统。因为input子系统已经完成了字符驱动的文件操作接口,所以编写驱动的核心工作是完成input系统留出的接口,工作量不大。但如果你想更灵活的应用它,就需要好好的分析下input子系统了。

2014-06-16 11:26:22 583

转载 等待队列(二)

通过 前一篇文章 的介绍我们队等待队列有了一个比较具体的认识,本文将来分析一下等待队列是如何睡眠一个进程和如何唤醒一个进程的。使用等待队列前通常先定义一个等待队列头:static wait_queue_head_t wq ,然后调用wait_event_*函数将等待某条件condition的当前进程插入到等待队列wq中并睡眠,一直等到condition条件满足后,内核再将睡眠在等待队列wq上的

2014-06-11 11:44:26 580

转载 等待队列(一)

在Linux内核中等待队列有很多用途,可用于中断处理、进程同步及定时。我们在这里只说,进程经常必须等待某些事件的发生。等待队列实现了在事件上的条件等待: 希望等待特定事件的进程把自己放进合适的等待队列,并放弃控制全。因此,等待队列表示一组睡眠的进程,当某一条件为真时,由内核唤醒它们。等待队列由循环链表实现,其元素包括指向进程描述符的指针。每个等待队列都有一个等待队列头(wait queue h

2014-06-11 11:41:57 737

转载 MTK camera image sensor driver

camera_sensor_driverimage_sensr首先要进行板极设备的初始化的工作:代码路径是在:/mediatek/platform/mt6577/kernel/core/mt6577_devs.c里面#if1 ///defined(CONFIG_VIDEO_CAPTURE_DRIVERS)retval =platform_device_register(&s

2014-06-10 15:58:39 1092

转载 Mtk Ft6306 touch 驱动

Linux Tt6306 Touch 驱动1、    MTk Touch 驱动程序1.1、    MTK Touch 驱动的组成Mtk  Touch  driver 驱动包括:Mtk platform 虚拟平台设备驱动、Module touch IC 驱动、Input subsystem。Mtk platform 设备驱动是mtk为了兼容多个touch IC 驱动而设计出来的虚

2014-06-10 15:57:45 828

转载 mtk LCD 驱动过程详解

MTK 平台LCD 驱动的整个过程的讲解MTK_LCD_Driver代码的路是在/mediatek/source/kernel/driver/vedio/mtkfb.cmodule_init(mtkfb_init);模块初始化函数int__init mtkfb_init(void){int r = 0;MSG_

2014-06-10 15:55:03 4075

转载 android电池(四):电池 电量计(MAX17040)驱动分析篇

关键词:android 电池  电量计  MAX17040 任务初始化宏 power_supply平台信息:内核:linux2.6/linux3.0系统:android/android4.0 平台:samsung exynos 4210、exynos 4412 、exynos 5250作者:xubin341719(欢迎转载,请注明作者)欢迎指正错误,共同学习、共同进步!!

2014-05-14 14:52:59 861

转载 android 电池(三):android电池系统

关键词:android电池系统电池系统架构 uevent power_supply驱动平台信息:内核:linux2.6/linux3.0系统:android/android4.0 平台:S5PV310(samsungexynos4210) 、samsung exynos4412作者:xubin341719(欢迎转载,请注明作者)欢

2014-05-14 14:50:56 670

转载 android 电池(二):android关机充电流程、充电画面显示

关键词:android 电池关机充电 androidboot.mode charger关机充电 充电画面显示 平台信息:内核:linux2.6/linux3.0系统:android/android4.0 平台:S5PV310(samsungexynos 4210) 作者:xubin341719(欢迎转载,请注明作者)欢迎指正错误,共同学习、共同进步!!

2014-05-14 14:49:27 1907

转载 android 电池(一):锂电池基本原理篇

关键词:android  电池关机充电 androidboot.mode charger平台信息:内核:linux2.6/linux3.0系统:android/android4.0 平台:S5PV310(samsungexynos 4210) 作者:xubin341719(欢迎转载,请注明作者)欢迎指正错误,共同学习、共同进步!!       电池在电子产品中所

2014-05-14 14:47:43 618

转载 C语言的谜题---from coolshell

这几天,本站推出了几篇关于C语言的很多文章如下所示:语言的歧义 [酷壳链接] [CSDN链接]谁说C语言很简单? [酷壳链接] [CSDN链接]6个变态的C语言Hello World程序 [酷壳链接] [CSDN链接]如何加密/弄乱C源代码 [酷壳链接] [CSDN链接]C语言的谜题 [酷壳链接] [CSDN链接]我们可以看到很多C语言相关的一些东西。比如《语言的歧义》主要告诉

2014-04-01 14:35:27 514

转载 深入理解C语言---from coolshell

Dennis Ritchie  过世了,他发明了C语言,一个影响深远并彻底改变世界的计算机语言。一门经历40多年的到今天还长盛不衰的语言,今天很多语言都受到C的影响,C++,Java,C#,Perl, PHP, Javascript, 等等。但是,你对C了解吗?相信你看过本站的《C语言的谜题》还有《谁说C语言很简单?》,这里,我再写一篇关于深入理解C语言的文章,一方面是缅怀Dennis,另一方面是

2014-04-01 11:53:35 525

转载 谁说C语言很简单?---from coolshell

前两天,Neo写了一篇《语言的歧义》其使用C语言讨论了一些语言的歧义。大家应该也顺便了解了一下C语言中的很多不可思异的东西,可能也是你从未注意到的东西。是的,C语言并不简单,让我们来看看下面这些示例:为什么下面的代码会返回0?(这题应该很简单吧) int x; return x == (1 && x);本题主要是关于C/C++中变量初始化的问题。

2014-04-01 11:40:08 601

转载 C语言结构体里的成员数组和指针---from coolshell

单看这文章的标题,你可能会觉得好像没什么意思。你先别下这个结论,相信这篇文章会对你理解C语言有帮助。这篇文章产生的背景是在微博上,看到@Laruence同学出了一个关于C语言的题,微博链接。微博截图如下。我觉得好多人对这段代码的理解还不够深入,所以写下了这篇文章。为了方便你把代码copy过去编译和调试,我把代码列在下面:123456

2014-04-01 09:34:57 4650

转载 Android wakelock 自上而下浅析

Wake Lock是一种锁的机制, 只要有人拿着这个锁,系统就无法进入休眠,可以被用户态程序和内核获得. 这个锁可以是有超时的或者是没有超时的,超时的锁会在时间过去以后自动解锁. 如果没有锁了或者超时了, 内核就会启动休眠的那套机制来进入休眠.PowerManager.WakeLock 有加锁和解锁两种状态,加锁的方式有两种,一种是永久的锁住,这样的锁除非显式的放开,是不会解锁的,所以这种锁用

2014-03-29 15:10:40 726

转载 Android Alarm自上而下 调试浅析

1.为了创建一个新的Alarm,使用set方法并指定一个Alarm类型、触发时间和在Alarm触发时要调用的Intent。如果你设定的Alarm发生在过去,那么,它将立即触发。这里有4种Alarm类型。你的选择将决定你在set方法中传递的时间值代表什么,是特定的时间或者是时间流逝:❑ RTC_WAKEUP在指定的时刻(设置Alarm的时候),唤醒设备来触发Intent。

2014-03-29 15:08:34 4808

转载 Android RTC 自下往上浅析

1.首先搞清楚RTC在kernel内的作用: linux系统有两个时钟:一个是由主板电池驱动的“Real Time Clock”也叫做RTC或者叫CMOS时钟,硬件时钟。当操作系统关机的时候,用这个来记录时间,但是对于运行的系统是不用这个时间的。另一个时间是 “System clock”也叫内核时钟或者软件时钟,是由软件根据时间中断来进行计数的,内核时钟在系统关机的情况下是不存在的,所以,

2014-03-29 15:06:52 1489

转载 使用 /proc 文件系统来访问 Linux 内核的内容

使用 /proc 文件系统来访问 Linux 内核的内容简介: /proc 文件系统是一个虚拟文件系统,通过它可以使用一种新的方法在 Linux 内核空间和用户空间之间进行通信。在 /proc 文件系统中,我们可以将对虚拟文件的读写作为与内核中实体进行通信的一种手段,但是与普通文件不同的是,这些虚拟文件的内容都是动态创建的。本文对 /proc 虚拟文件系统进行了介绍,并展示了它的用法。

2014-03-26 21:29:12 991

转载 proc_create的使用方法

proc_create的使用方法proc文件系统是个有用的东东。创建一个proc虚拟文件,应用层通过读写该文件,即可实现与内核的交互。proc虚拟文件是如何创建的呢?先看看比较简单的,创建proc文件夹。调用以下函数,即可实现proc文件夹的创建:struct proc_dir_entry *proc_mkdir(const char *name, struct p

2014-03-26 21:26:10 5649 1

原创 bugfix:reboot模式下不能开机

system:android4.2platform:rk3026pum: axp192系统在插充电器的时候关机进入充电模式,当显示电池图标的时候不能开机,黑屏的时候能开机。henglong@henglong-desktop:~/projects/ricks/rk3026/kernel$ git show 58af187f647e66cfcc5a86508bf2ee0ed69a1

2014-03-26 20:42:37 1303 1

转载 sprintf函数的用法

sprintf() 格式化输出函数(图形)功能: 函数sprintf()用来作格式化的输出。用法: 此函数调用方式为int sprintf(char *string,char *format,arg_list);说明: 函数sprintf()的用法和printf()函数一样,只是sprintf()函数给出第一个参数string(一般为字符数组),然后再调用outtextxy()函数将串

2014-03-26 18:34:51 681

原创 bugfix: 待机休眠arm电压保持在1.2v(希望降到1v)

platform: rk3026 MIDpmu: axp192system: android4.2日前碰到机器休眠arm电压偏高的问题。自己找问题,找啊找,就是找不到,一直改那个arm电压表,没用,因为那个表是机器运行时的arm动态电压调整。当机器休眠时的arm电压是另外设置的,不在这个表格内。baord-rk3026-86v.c文件中的arm电压表如下:/

2014-03-26 09:55:30 1668

转载 Linux内核链表的研究与应用

Linux内核链表的研究与应用(“2012年度CSDN博客之星”评选,欢迎为我投上一票,多谢)Author:tiger-johnTime:2012-12-20Mail:[email protected]:http://blog.csdn.net/tigerjb/article/details/8299599转载请注明出处。前

2014-02-28 09:23:51 465

转载 container_of分析

1.container_of宏1> Container_of在Linux内核中是一个常用的宏,用于从包含在某个结构中的指针获得结构本身的指针,通俗地讲就是通过结构体变量中某个成员的首地址进而获得整个结构体变量的首地址。2>接口:container_of(ptr, type, member)  ptr:表示结构体中member的地址 type:表示结构体类型 membe

2014-02-28 09:23:12 549

转载 offset宏的讲解

1.offset宏讲解#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE*)0)->MEMBER)对这个宏的讲解我们大致可以分为以下4步进行讲解:1>( (TYPE *)0 )  0地址强制 "转换" 为 TYPE结构类型的指针;2>((TYPE *)0)->MEMBER   访问TYPE结构中的MEMBER数据成员;

2014-02-28 09:22:36 656

转载 GNU C的扩展

GNU C的扩展Author:tiger-johnTime:2013-08-3(重新修改)mail:[email protected]:http://blog.csdn.net/tigerjb/article/details/8299557转载请注明出处!一.  结构体赋值:1、对成员赋值例如结构体[cp

2014-02-28 09:19:29 775

转载 GNU C的扩展

GNU C的扩展Author:tiger-johnTime:2013-08-3(重新修改)mail:[email protected]:http://blog.csdn.net/tigerjb/article/details/8299557转载请注明出处!一.  结构体赋值:1、对成员赋值例如结构体[cp

2014-02-28 09:16:58 155

amixer与widget、controls

amixer 、widget、controls

2013-05-09

UNIX环境高级编程第二版.pdf

大家都懂! unix 操作系统鼻祖

2013-03-19

精通linux+shell编程教程pdf完整版.pdf

非常完美的linux+shell教程,学习shell编程同学必备。物有所值

2013-03-19

telos revision B驱动

telosb驱动程序,安装很简单、方便、快捷 选择自动安装即可

2009-10-15

空空如也

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

TA关注的人

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