自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一介码农

向前辈们学习,记录下学习的点滴。

  • 博客(49)
  • 收藏
  • 关注

转载 linux驱动request_threaded_irq

内核开始支持中断线程(threaded interrupt handler),使用接口request_threaded_irq;原来的request_irq也继续支持。使用时可根据实际情况选择合适的接口,可使用request_threaded_irq的地方没必要继续使用request_irq加tasklet/workqueue或者内核线程的方式;如果中断处理简单时也不要执着使用request_th

2017-06-26 11:28:07 1734

转载 this module

一直都在耿耿于怀,这个THIS_MODULE到底是个什么玩意,linux内核中无处不在的东西。今天上网搜了一下,算是基本明白了。网上牛人写的已经比较详细,另外目前暂时没有时间往更深层次分析,所以直接贴过来得了。。。 转帖网址:http://blog.csdn.net/a954423389/archive/2010/12/27/6101369.aspx 源码位置:@ ke

2017-04-27 15:05:02 389

转载 adb logcat 详解

一、logcat命令介绍1.android log系统 2.logcat介绍logcat是android中的一个命令行工具,可以用于得到程序的log信息log类是一个日志类,可以在代码中使用logcat打印出消息常见的日志纪录方法包括:方法描述v(String,String) (verv

2017-04-10 10:42:27 6888

转载 Linux 进程控制——等待队列详解(二)

一、什么是睡眠    对于一个进程"睡眠"意味着什么? 当一个进程被置为睡眠, 它被标识为处于一个特殊的状态并且从调度器的运行队列中去除. 直到发生某些事情改变了那个状态, 这个进程将不被在任何 CPU 上调度, 并且, 因此, 将不会运行. 一个睡着的进程已被搁置到系统的一边, 等待以后发生事件.    LDD3说得很玄乎,睡眠是“自愿调度”,其实就是将当前进程的状态设置

2017-03-13 15:35:31 933

转载 linux中的阻塞机制及等待队列

一、阻塞与非阻塞阻塞调用是没有获得资源则挂起进程,被挂起的进程进入休眠状态,调用的函数只有在得到结果之后才返回,进程继续。非阻塞是不能进行设备操作时不挂起,或返回,或反复查询,直到可以进行操作为止,被调用的函数不会阻塞当前进程,而会立刻返回。对象是否处于阻塞模式和函数是不是阻塞调用有很强的相关性,但并不是一一对应的。阻塞对象上可以有非阻塞的调用方式,我们可以通过一定的API

2017-03-13 15:34:15 1658

转载 工作队列解析

工作项、工作队列和工作者线程把推后执行的任务叫做工作(work),描述它的数据结构为work_struct ,这些工作以队列结构组织成工作队列(workqueue),其数据结构为workqueue_struct ,而工作线程就是负责执行工作队列中的工作。系统默认的工作者线程为events。工作队列(work queue)是另外一种将工作推后执行的形式。工作队列可以把工作推后,交由一

2017-03-07 13:57:36 723

转载 使用工作队列

我们先来看一下默认的events任务队列,然后再看看创建新的工作者线程。     1.创建推后的工作      首先要做的是实际创建一些需要推后完成的工作。可以通过DECLARE_WORK在编译时静态地创建该结构体:在中#define DECLARE_WORK(n, f)                  /    struct work_struct n = __

2017-03-06 15:17:25 501

转载 终于理解list_entry和list_for_each_entry

内核中经常采用链表来管理对象,先看一下内核中对链表的定义    struct list_head {        struct list_head *next, *prev;    };     一般将该数据结构嵌入到其他的数据结构中,从而使得内核可以通过链表的方式管理新的数据结构,看一个例子:    struct example {        mem

2017-02-25 14:52:45 7485 1

转载 例解make命令、Makefile

例解 Linux 下 Make 命令Linux 下 make 命令是系统管理员和程序员用的最频繁的命令之一。管理员用它通过命令行来编译和安装很多开源的工具,程序员用它来管理他们大型复杂的项目编译问题。本文我们将用一些实例来讨论 make 命令背后的工作机制。Make 如何工作的对于不知道背后机理的人来说,make 命令像命令行参数一样接收目标。这些目标通

2017-02-10 15:13:44 718

转载 Ubuntu 创建开机自启动脚本的方法

http://www.linuxidc.com/Linux/2011-12/48922.htm1) 将你的启动脚本复制到 /etc/init.d目录下以下假设你的脚本文件名为 test。2) 设置脚本文件的权限$ sudo chmod 755 /etc/init.d/test3) 执行如下命令将脚本放到启动脚本中去:$ cd 

2017-02-08 14:51:45 523

转载 makefile经典实例

makefile实例【转载,非常不错的一篇博文,循序渐进,简单易懂】假设我们有下面这样的一个程序,源代码如下: /* main.c */ #include  #include  int main(int argc,char **argv) { mytool1_print("hello"); mytool2_print("hello"); } 

2017-02-08 14:26:06 405

转载 c语言调用Linux的命令--很有效果

system(" "); popenexec 系列execl等等类似的函数都可以执行任何shell下的命令。#include intmain(){system("ls -l");return 1;}或者int execl(const char *path, const char *arg, ...);int execl

2017-02-08 14:06:17 14375

转载 OpenSSH的安装和使用

OpenSSH的安装和使用由于许多网络服务(包括telnet、ftp、http、rsh、rlogin以及其他服务)都可以被电子窃听,我们必须采用安全的方式进行文件移动、权限设置、shell脚本的运行等等。        为了防止攻击者窃取每天的网络数据,我们可以安装使用Secure Shell(ssh)。这里就向大家具体介绍如何安装和使用ssh服务器和客户端程序。这

2017-02-08 11:42:16 37899

转载 Linux上创建共享库so

在Linux上用C创建共享库so1、创建math1.c,在命令行中输入:nano math1. cint add(int x, int y){return x+y;}2、编译生成共享库libmath1.sogcc -fPIC -shared -olibmath1.so math1.c3、创建测试程序testmath.c,在命令行中输入:nano testma

2017-02-08 11:34:15 425

转载 Libudev和sysfs指南

Libudev和sysfs指南    这是一篇译文,原文在:http://blog.csdn.net/fjb2080/article/details/7528894            在unix和类unix系统中,硬件设备可以通过/dev目录下的特殊文件进行访问,这些文件又被称为设备文件或设备节点。通过操作普通文件一样读写这些文件可以利用内核设备驱动程序与硬件设备通信,而这

2017-02-08 11:28:07 6000

转载 property_get/property_set

每个属性都有一个名称和值,他们都是字符串格式。属性被大量使用在Android系统中,用来记录系统设置或进程之间的信息交换。属性是在整个系统中全局可见的。每个进程可以get/set属性。 在系统初始化时,Android将分配一个共享内存区来存储的属性。这些是由“init”守护进程完成的,其源代码位于:device/system/init。“init”守护进程将启动一个属性服务。

2015-01-19 11:05:38 1631

转载 Linux常用操作之sshfs挂载、卸载

windows之外的世界比想像中要大得多呢,几乎天天都在用ssh,却到今天才知道有sshfs这个好东西,前几天还在为ZendStudio可以远程编辑文件欣喜,惭愧啊,终于有比vi scp://hostname//path/to/file更方便的方式了。sshfs,就是可以把ssh连接到的主机资源,映射到本机的文件系统当中,然后用户可以像操作本地文件一样操作,而实际的文件改动将通过ssh传输

2014-12-26 20:29:11 10696

转载 Extern用法

用例子给你示范 // 1.cpp int x = 10; // 2.cpp 注意没有包含1.cpp #include using namespace std; extern int x;int main () { cout << x << endl; } //则输出10 两个文件同在一个项目(project)中,你不包含某个文件(cpp)而可以用它内部定义的变量,(里是.pp

2014-10-24 15:18:40 390

转载 emacs入门教程

Emacs 快速指南.(查看版权声明请至本文末尾)【注意:位于【】之间的内容是译注,比如本行,下同。】Emacs 键盘命令通常包含 CONTROL 键(有时候以 CTRL 或 CTL 来标示)和META 键(有时候用 EDIT 或 ALT 来标示)。为了避免每次都要写出全名,我们约定使用下述缩写:C- 表示当输入字符 时按住 CONTROL 键。          

2014-10-09 16:59:08 642

转载 Android.mk文件详解

Android.mk 编译文件是用来向 Android NDK描述你的 C,C++源代码文件的,   这篇文档描述了它的语法。在阅读下面的内容之前,假定你已经阅读了 docs/OVERVIEW.TXT 文件,了解了它们的脚色和用途。一、概述  一个 Android.mk file 用来向编译系统描述你的源代码。具体来说:  (1) 该文件是GNU Makefile的一小部分,会

2014-09-25 11:43:15 604

转载 关于atomic_t 原子变量的操作

yuan所谓原子操作,就是该操作绝不会在执行完毕前被任何其他任务或事件打断,也就说,它的最小的执行单位,不可能有比它更小的执行单位,因此这里的原子实际是使用了物理学里的物质微粒的概念。  原子操作需要硬件的支持,因此是架构相关的,其API和原子类型的定义都定义在内核源码树的include/asm/atomic.h文件中,它们都使用汇编语言实现,因为C语言并不能实现这样的操作。  原子操

2014-09-23 18:01:32 7053

转载 一些重要函数

C/C++中的strncpy()函数功能为将第source串的前n个字符拷贝到destination串,原型为:char * strncpy ( char * destination, const char * source, size_t num );各个参数的含义显而易见,其中返回值与destination相同。这个函数会出现三种情况:1、num不会自动为d

2014-09-05 10:01:50 505

原创 sys/class 下文件节点创建实例

1 创建读版本号节点   firmware_class = class_create(THIS_MODULE, "ms-touchscreen-msg20xx");    if (IS_ERR(firmware_class))        pr_err("Failed to create class(firmware)!\n");    firmware_cmd_dev = de

2014-08-29 14:16:45 6280

原创 读写proc节点几个实例

1 充电时间int turnoff_chr_time_read(char *page, char **start, off_t off, int count, int *eof, void *data){char *ptr = page;ptr += sprintf(ptr, "turnoff_chr_time = %d\n", turnoff_chr_time);*eof =

2014-08-29 13:35:03 2520

转载 指针强制类型转换

当我们初始化一个指针或给一个指针赋值时,赋值号的左边是一个指针,赋值号的右边是一个指针表达式。在我们前面所举的例子中,绝大多数情况下,指针的类型和指针表达式的类型是一样的,指针所指向的类型和指针表达式所指向的类型是一样的。例:1。 float f=12.3;2。 float *fptr=&f;3。 int *p;在上面的例子中,假如我们想让指针p指向实数f,

2014-08-28 16:07:53 1549

转载 makefile中三种赋值的差别

在Makefile中我们经常看到 = := ?= +=这几个赋值运算符,那么他们有什么区别呢?我们来做个简单的实验新建一个Makefile,内容为:ifdef DEFINE_VRE    VRE = “Hello World!”elseendififeq ($(OPT),define)    VRE ?= “Hello World! First!”endif

2014-06-27 14:10:04 4091

转载 git详解之git分支

Git 分支几乎每一种版本控制系统都以某种形式支持分支。使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。在很多版本控制系统中,这是个昂贵的过程,常常需要创建一个源代码目录的完整副本,对大型项目来说会花费很长时间。有人把 Git 的分支模型称为“必杀技特性”,而正是因为它,将 Git 从版本控制系统家族里区分出来。Git 有何特别之处呢?Git 的分支可谓是

2014-06-25 13:23:11 614

转载 git详解之二----git 基础

读完本章你就能上手使用 Git 了。本章将介绍几个最基本的,也是最常用的 Git 命令,以后绝大多数时间里用到的也就是这几个命令。读完本章,你就能初始化一个新的代码仓库,做一些适当配置;开始或停止跟踪某些文件;暂存或提交某些更 新。我们还会展示如何让 Git 忽略某些文件,或是名称符合特定模式的文件;如何既快且容易地撤消犯下的小错误;如何浏览项目的更新历史,查看某两次更新之间的差异;以及如何从远程

2014-06-25 11:30:49 570

转载 UltraEdit 删除空行和注释

不仅在代码中会用到正则表达式,其实在日常软件应用中也会涉及正则表达式。比如字处理软件、代码开发工具中都提供对正则表达式查找和替换的支持。这里以UltraEdit为例来介绍正则表达式在日常软件中的应用。UltraEdit是一款功能强大的编辑器,支持正则表达式的使用。UltraEdit虽然和IDE无法相提并论,但是在处理一些小文件时,会显出其快速、轻量级的特点。例如,PHP源文件中包含

2014-06-12 10:25:24 4039

转载 cscope相关之一

1. vim的准备首 先 vim –version | grep cscope,看看vim是否支持cscope,如果不支持需要重新安装vim。最简单的是在. /configure 后加上-enable-cscope,当然可以在Makefile文件(./src/Makefile)中修改(把原来的注释去 掉),这是最根本的:CONF_OPT_CSCOPE = –enable-cscop

2014-04-30 14:12:32 435

转载 VIM配置之最后一篇

1.按F5可以直接编译并执行C、C++、java代码以及执行shell脚本,按“F8”可进行C、C++代码的调试2.自动插入文件头 ,新建C、C++源文件时自动插入表头:包括文件名、作者、联系方式、建立时间等,读者可根据需求自行更改3.映射“Ctrl + A”为全选并复制快捷键,方便复制代码4.按“F2”可以直接消除代码中的空行5.“F3”可列出当前目录文件,打开树

2014-04-30 10:49:36 624

转载 VIM配置大全

set nocompatible   " 不要使用vi的键盘模式,而是vim自己的set syntax=on   " 语法高亮set noeb  or noerrorbells "关闭错误信息响铃set confirm     " 在处理未保存或只读文件的时候,弹出确认set autoindent    自动缩进set cindentset tabstop=4 " Ta

2014-04-30 10:34:35 1029

原创 VIM配置之输入括号光标移动至中间

在输入配对的括号或引号后,文本光标会自动移动到括号或引号之间以便用户输入包含在括号或引号之间的内容。为了让 VIM 也支持这一功能,只需要在 ~/.vimrc 文件里增加以下几行即可(如果复制下面内容粘贴后后面有空格的话请将空格删除):imap () ()imap [] []imap {} {}imap "" ""imap " "

2014-04-30 09:39:46 2765

转载 VIM之花括号补全并格式化

在编程时,eclipse中当键入{时,能自动补全,并调整格式为{Bbbb//行首一个tab}要在vim中实现这个功能,可在.vimrc文件中添加如下配置:inoremap { {}kA格式为:Inoremap + 键值 + 要替换成的目标序列 上面指令的意思就是,当在insert模式下按下{键时,替换成{}kA,即{,回车,}

2014-04-30 09:37:53 2331

转载 VIM使用

1.移动光标在当前行里面有效的移动光标,注意这些字母都可以配合删除、移动等操作。fx:移动光标到当前行的下一个 x 处。很明显,x 可以是任意一个字母,而且你可以使用 ; 来重复你的上一个 f 命令。tx:和上面的命令类似,但是是移动到 x 的左边一个位置。(这真的很有用)Fx:和 fx 类似,不过是往回找。% 跳转到配对的括号去[[ 跳转到代码块的开头去(但要求代

2014-04-29 20:15:58 564

转载 初学者VIM配置

VIM 中可供用户定制的选项非常非常多, 作为初学者, 我们没有必要了解这么多东西。 下面, 滇狐简单列出了一些最常用的配置项, 大家可以根据自己的需要将这些内容添加到自己的 .vimrc 中。1 基本设置set nocp 该命令指定让 VIM 工作在不兼容模式下。 在 VIM 之前, 出现过一个非常流行的编辑器叫 vi。 VIM 许多操作与 vi 很相似, 但也有许多操作

2014-04-28 17:00:29 611

转载 Python完全新手手册

作者:taowen, billriceLesson 1 准备好学习Python的环境下载的地址是:www.python.org为了大家的方便,我在校内作了copy:http://10.1.204.2/tool/compiler&IDE/Python-2.3.2-1.exelinux版本的我就不说了,因为如果你能够使用linux并安装好说明你可以一切自己搞定的。运

2014-04-24 15:26:30 830

转载 i2c子系统

linux驱动目录(?)[+]linux系统核心层的东西基本都是xx-core。一 主要数据结构[cpp] view plaincopystruct i2c_msg {      __u16 addr; /* slave address            */      __u16 flags;

2014-04-24 14:18:38 611

转载 Android休眠唤醒机制简介(二)

Android休眠唤醒机制简介(二)******************************************************************作者:sean日期:2012-11-29修改历史:2014-1******************************************************************接上一节,结合

2014-04-24 13:49:47 4084

转载 Android休眠唤醒驱动流程分析

Android休眠唤醒驱动流程分析(一)****************************************************作者:Sean日期:2012-11-29修改历史:2013-1****************************************************标准linux休眠过程:power managem

2014-04-24 13:48:42 2477

空空如也

空空如也

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

TA关注的人

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