- 博客(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 468
转载 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 994
原创 内核延时函数和定时器
一内核延时函数: 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 2006
转载 vim + cscope/ctags 查看分析代码
vim + cscope/ctags 查看分析代码 http://jinsuo2007.blog.163.com/blog/static/1922799520109140110228/
2011-07-15 12:12:51 944
原创 linux固件
硬件越来越复杂,硬件的许多功能使用了程序实现,与直接硬件实现相比,固件拥有处理复杂事物的灵活性和便于升级、维护等优点。固件(firmware)就是这样的一段在设备硬件自身中执行的程序,通过固件标准驱动程序才能实现特定机器的操作,如:光驱、刻录机等都有内部的固件。 固件一般存放在设
2011-07-07 17:23:12 3953 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 771
原创 G-sensor(1)
G-sensor(1) 2011-03-18 22:26:57| 分类: Android 学习总结 | 标签:无 |字号 订
2011-07-06 18:29:49 967
转载 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关注的人