自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

转载 可重入函数与不可重入函数

转自:http://www.cppblog.com/franksunny/archive/2007/08/03/29269.html主要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,

2011-07-27 14:13:26 424

转载 可重入函数的概念

在多线程或有异常控制流的情况下,当某个函数运行到中途时,控制流(也就是当前指令序列)就有可能被打断而去执行另一个函数.而"另一个函数"很有可能是它本身.如果在这种情况下不会出现问题,比如说数据或状态不会被破坏,行为确定。那么这个函数就被称做"可重入"的.补充:函数是可重入(ree

2011-07-27 14:12:33 739

转载 lcd基础知识

1. LCD工作的硬件需求:   要使一块LCD正常的显示文字或图像,不仅需要LCD驱动器,而且还需要相应的LCD控制器。在通常情况下,生产厂商把LCD驱动器会以COF/COG的形式与LCD玻璃基板制作在一起,而LCD控制器则是由外部的电路来实现,现在很多的MCU内部都集成了LC

2011-07-26 09:38:36 985

转载 strtol()详解

今天,在review 一些代码的时候,看到了strtol()这个函数,由于以前使用它的时候,还没有深刻的了解,这次,我决定探个究竟。网上关于这个函数的资料大都来源于同份资料,linux库函数,讲的不够细致。于是,我花了几个小时,认真地尝试其功能,并整理了这篇文章,希望能对C语言的

2011-07-25 09:55:10 467

转载 strcpy strncpy和strlcpy

好多人已经知道利用strncpy替代strcpy来防止缓冲区越界。但是如果还要考虑运行效率的话,也许strlcpy是一个更好的方式。1. strcpy我们知道,strcpy 是依据\0作为结束判断的,如果 to 的空间不够,则会引起 buffer overflow。strcpy

2011-07-25 09:40:07 662

原创 linux设备驱动中的阻塞IO和非阻塞IO

1.阻塞IO:在linux驱动中,可使用等待队列实现阻塞I/O。信号量在内核中就是依赖等待队列来实现的。等待队列://定义初始化‘等待队列头’Wait_queue_head_t  my_queue;Init_wait_queue_head(&my_queue);DECLARE_W

2011-07-23 17:03:40 1068

转载 set_current_state 应用

A: A是一个等待进程等待condition 满足过后退出死循环 A:    while(1)  {   if ( condition )  //条件成立了    goto: OUT   else{    //1:----------------------    set_cur

2011-07-23 15:42:20 771

原创 linux驱动中的并发控制

1.linux 内核中发生竞态的几种情况:a) 对称多处理器的多个CPUb) 单CPU内进程与抢占它的进程(2.6内核以后支持内核抢占)。c) 中断与进程之间。2.linux内核中的互斥机制:a) 中断屏蔽:中断屏蔽一般不单独使用,一般和自旋锁配合使用。因为这几个函数,只能禁用本

2011-07-23 13:00:30 705

转载 sysconf、pathconf和fpathconf函数

1. 限制 Unix系统实现定义了很多幻数和常量,这些在不同程度上依从POSIX,也遵从POSIX.1标准。这就有助于软件的可移植性。 以下两种类型的限制是必须的: 1) 编译时限制(例如,短整型的最大值是什么?) 2) 运行时限制(例如,文件名可以有多少个字符?) 编

2011-07-22 15:41:14 993

原创 内核延时函数和定时器

一内核延时函数:  1.短延时:                         void ndelay(unsignedlong nsecs);Void udelay(unsigned long usecs);Void mdelay(unsigned long msecs);

2011-07-21 20:49:24 3626

原创 对中断的一点理解

1.中断分为:(1)同步中断和异步中断                   (2)可屏蔽中断和不可屏蔽中断(NMI)                          (3)根据中断入口跳转方法的不同:向量中断:不同中断有不同的入口地址。由硬件提供中断服务程序入口地址。非向量中断

2011-07-21 20:00:31 1950

转载 Moving interrupts to threads

Moving interrupts to threads By Jake EdgeOctober 8, 2008http://lwn.net/Articles/302043/Processing interrupts from the hardware is

2011-07-21 19:37:24 731

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

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

2011-07-21 16:37:44 641

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

异常,就是可以打断CPU正常运行流程的一些事情,比如外部中断、未定义指令、试图修改只读的数据、执行swi指令(Software Interrupt Instruction ,软件中断指令)等。当这些事情发生时,CPU暂停当前的程序,先处理异常事件,然后再继续执行被中断的程序。操作

2011-07-21 16:35:42 479

转载 android的logcat详细用法

Android日志系统提供了记录和查看系统调试信息的功能。日志都是从各种软件和一些系统的缓冲区中记录下来的,缓冲区可以通过 logcat 命令来查看和使用.使用logcat命令你可以用 logcat 命令来查看系统日志缓冲区的内容:[adb] logcat [] ... [] .

2011-07-21 16:28:43 610

转载 Ubuntu中signal()函数可靠性研究

Ubuntu中signal()函数可靠性研究 Posted by lesca on March 13, 2011 Leave a comment (0)Go to comments signal(

2011-07-20 15:32:38 1228

转载 Sed学习笔记

Table of Contents1. Sed简介2. 定址3. Sed命令4. 选项5. 元字符集6. 实例7. 脚本8. 小技巧1. Sed简介sed是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space)

2011-07-19 18:43:43 361

转载 正则表达式语法

正则表达式语法一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。这里有一些可能会遇到的正则表达式示例:Visual Ba

2011-07-19 18:42:47 362

转载 关于sed替换的一点自我体会

偶尔在一个shell脚本里面看到了一个类似sed 's/(\(.*\))/\1\1/'这样的语句,鉴于对shell不是非常熟悉,所以也就没有看懂,后来理解了一下,还算明白一二,贴出来理解过程,为与兄弟姐妹们交流。其实这个sed替换就是针对含有括号的情况比如下面会提到的no1=10

2011-07-19 18:40:45 734

转载 Linux子系统之中断机制研究

本文为速成教材,非精细研究,适合想了解linux中断机制,和从事linux驱动开发或者调式IRQ相关的驱动的工程师使用。该文章也没经过osboy的review过,属于一遍速成之回忆录,所以会存在问题,请跟帖指出,我会一一回复,并整理出最终版本。注意转贴的时候你可以不加上作者的名字

2011-07-18 20:42:53 1764 2

转载 关于Android LOG系统

下面是第一篇(转自:http://blog.163.com/binghaitao@126/blog/static/3383532520099309366435/)1:在编译so文件的c或cpp文件之前中加入以下代码,就可以在android中的log显示日志内容       #in

2011-07-18 18:14:00 553

转载 android property system

android property systemProperty system is an important feature on android. It runs as a service and manages system configurations and status

2011-07-18 17:34:51 897

转载 android 中使用socket使native和framework通信

一般的native和framework的通信是通过jni,但是这一般只是framework调用native,native如果有消息要怎样通知上层呢?android中GSP模块提供一种解决思路,但是实现有些复杂,这里介绍一种使用socket通信的方法可以使native和framew

2011-07-18 17:19:11 553

转载 通用的使用 VIM+Ctags+Cscope 访问程序文件的方法

通用的使用 VIM+Ctags+Cscope 访问程序文件的方法1. ctags+cscope配合使用的原因:    为什么要配合,因为,比如cscope能提供更多的查找功能等功能。但是ctags远比cscope支持更多的文件。比如要访问一个java工程文件,那么cscope是

2011-07-15 12:16:20 2002

转载 vim + cscope/ctags 查看分析代码

vim + cscope/ctags 查看分析代码 http://jinsuo2007.blog.163.com/blog/static/1922799520109140110228/

2011-07-15 12:12:51 944

原创 计划

4.固件加载5.input子系统

2011-07-07 18:56:05 543

原创 linux固件

硬件越来越复杂,硬件的许多功能使用了程序实现,与直接硬件实现相比,固件拥有处理复杂事物的灵活性和便于升级、维护等优点。固件(firmware)就是这样的一段在设备硬件自身中执行的程序,通过固件标准驱动程序才能实现特定机器的操作,如:光驱、刻录机等都有内部的固件。 固件一般存放在设

2011-07-07 17:23:12 3952 1

转载 linux 驱动程序 tasklet 笔记

Tasklet机制是一种较为特殊的软中断。Tasklet一词的原意是“小片任务”的意思,这里是指一小段可执行的代码,且通常以函数的形式出现。软中断向量HI_SOFTIRQ和TASKLET_SOFTIRQ均是用tasklet机制来实现的。从某种程度上讲,tasklet机制是Linu

2011-07-07 09:48:50 719

转载 tasklet和workqueue

一、中断处理的tasklet(小任务)机制中断服务程序一般都是在中断请求关闭的条件下执行的,以避免嵌套而使中断控制复杂化。但是,中断是一个随机事件,它随时会到来,如果关中断的时间太长,CPU就不能及时响应其他的中断请求,从而造成中断的丢失。因此,Linux内核的目标就是尽可能快的

2011-07-07 09:46:40 995

转载 Android中G-Sensor相关流程

1.使G-sensor正常工作需要做的事:G-sensor driver文件包括:driver/i2c/chips/lis331dl.cdriver/i2c/chips/sensorioctl.hinclude/linux/lis331dl.h并在/kerne

2011-07-06 18:32:41 770

原创 G-sensor(1)

G-sensor(1) 2011-03-18 22:26:57|  分类: Android 学习总结 |  标签:无 |字号 订

2011-07-06 18:29:49 967

原创 个人对kobject的一点研究

http://www.chinaunix.net/jh/4/1058833.html

2011-07-06 18:28:38 550

转载 kthread_run()和kthread_stop()函数

感觉lwn.net有很多好的文档,下面介绍了kthread函数的一些使用, 1 使用kthread_create创建线程:    struct task_struct *kthread_create(int (*threadfn)(void *data),

2011-07-06 15:53:44 3786

转载 kthread_run

最近发现在内核创建线程的时候经常会用到kthread_run()这样的一个调用。于是准备拿出来学习一下。首先看看它的定义之处才发现它是一个宏函数,而不是一个真正意义上的函数。在include/linux/Kthread.h里有/*** kthread_run

2011-07-06 15:44:01 1337

转载 抛弃中断bottom half,使用中断线程吧

在linux里,中断处理分为顶半(top half),底半(bottomhalf),在顶半里处理优先级比较高的事情,要求占用中断时间尽量的短,在处理完成后,就激活底半,有底半处理其余任务。底半的处理方式主要有soft_irq,tasklet,workqueue

2011-07-05 15:40:05 2898 1

转载 Linux 中断学习之小试牛刀篇

前言 在前面分析了中断的基本原理后,就可以写一个内核中断程序来体验以下,也可以借此程序继续深入来了解内核中断的执行过程 一.内核中断程序 : 我们还是来看一看成程序: 在看程序之前,要熟悉如何进行模块编程,和了解module_pararm()的用法。如果不熟悉

2011-07-04 16:45:35 916

转载 Linux 中断学习之前言篇 中断之原理篇 一.中断的基本知识

一.中断的基本知识1.中断的概念:所谓中断,是指CPU在正常运行程序时,由于程序的预先安排或内外部事件,引起CPU中断正在运行的程序,而转到发生中断事件程序中。这些引起程序中断的事件称为中断源。其实从物理学的角度看,中断是一种电信号,由硬件设备产生,并直接送入

2011-07-04 16:41:36 689

空空如也

空空如也

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

TA关注的人

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