深刻理解Linux进程间通信(IPC)
文章平均质量分 83
Amao_come_on
这个作者很懒,什么都没留下…
展开
-
编辑文章 - 博客频道 - CSDN.NET
一个大型的应用系统,往往需要众多进程协作,进程(Linux进程概念见附1)间通信的重要性显而易见。本系列文章阐述了Linux环境下的几种主要进程间通信手段,并针对每个通信手段关键技术环节给出详细实例。为达到阐明问题的目的,本文还对某些通信手段的内部实现机制进行了分析。3评论:郑彦兴 (mlinux@163.com)国防科大计算机学院关闭 [x]转载 2014-06-21 20:00:18 · 432 阅读 · 0 评论 -
linux内核中断、异常、系统调用的分析以及实践
中断、异常、系统调用的分析 报告内容中断是由间隔定时器和和I/O设备产生的。异常则是由程序的错误产生,或者由内核必须处理的异常条件产生。第一种情况下,内核通过发送一个信号来处理异常;第二种情况下,内核执行恢复异常需要的所有步骤,或对内核服务的一个请求。中断和异常改变处理器执行的指令顺序,通常与CPU芯片内部或外部硬件电路产生的电信号相对应。它们提供了一种特殊的转载 2015-01-10 17:35:51 · 1232 阅读 · 0 评论 -
时间触发和状态机思想的嵌入式系统 分析都给大家传上去了
今天我给大家讲一下:时间触发的嵌入式系统 :我先给大家了一个程序:这个程序是在PC机上测试过,大家给点意见! #include "stdio.h" #define TASKmax 5 typedef unsigned long u32; typedef unsigned int u16; typedef unsigned char转载 2014-12-06 00:07:52 · 2235 阅读 · 0 评论 -
中断-整体流程
文章疏理自>http://blog.csdn.net/droidphone/article/category/1118447感谢以上两位大侠的创作,读者亦可查阅原文.读完此文你可以了解到:1. 中断的处理流程2. 中断在linux中的实现3. arm架构对中断做的处理4. 电平/边沿触发时中断控制器所做的动作中断控制器PIC,与CPU连接,然后产生中断的转载 2014-12-20 22:41:56 · 434 阅读 · 0 评论 -
s3c2440地址空间的分配
s3c2440地址空间的分配 s3c2440启动过程详解一:地址空间的分配1:s3c2440是32位的,所以可以寻址4GB空间,内存(SDRAM)和端口(特殊寄存器),还有ROM都映射到同一个4G空间里.2:开发板上一般都用SDRAM做内存flash(nor、nand)来当做ROM。其中nand flash没有地址线,一次至少要读一页(512B).其他两个有地址线3:nor转载 2014-12-04 01:02:30 · 2413 阅读 · 0 评论 -
分析2440test中的中断处理部分
================================================================================= 作者 : Etual 日期 : 2009-4-17 邮箱 : Etual@163.com =============================================转载 2014-12-04 00:15:39 · 422 阅读 · 0 评论 -
μCOS-II移植到ARM处理器上的几个要点
一、uCOS II在ARM处理器上移植过程中的中断处理 uCOS II是一个源码公开、可移植、可固化、可剪裁和抢占式的实时多任务操作系统,其大部分源码是用ANSI C编写,与处理器硬件相关的部分使用汇编语言编写。总量约200行的汇编语言部分被压缩到最低限度,以便于移植到任何一种其它的CPU上。 uCOS II最多可支持56个任务,其内核为占先式,总是执行就绪态的优先级最高的任务转载 2014-12-04 00:06:35 · 2071 阅读 · 0 评论 -
main函数及ISR init分析
初始化中断服务程序。当中断产生时,处理相应的程序void Isr_Init(void){pISR_UNDEF=(unsigned)HaltUndef;pISR_SWI =(unsigned)HaltSwi;pISR_PABORT=(unsigned)HaltPabort;pISR_DABORT=(unsigned)HaltDabort;rINTMOD=0x0; /转载 2014-12-04 00:00:23 · 1428 阅读 · 0 评论 -
对MTK平台的一些认识
对MTK平台的一些认识 一、 目的 来到这里近两月,更近距离的接近了MTK。身处基于MTK平台的产品开发浪潮之中,让我对MTK有更多的了解,不光是在平台技术本身。就技术上,从软件角度、系统角度,对MTK我应该能给出深度而全面的评价或看法。就产品上,我也有自己的一些见解和思考。总之,对于MTK我所产生的思考及结论,希望能在这里同大家分享。如果能抛砖引玉,引发大家更有意义转载 2014-12-02 14:41:25 · 697 阅读 · 0 评论 -
一些高效嵌入式ARM开发的编程技巧
在多媒体、通信等计算复杂度高的应用中,为了满足制造费用、功耗、性能以及实时性等诸多限制条件的要求,嵌入式系统程序往往需要特殊设计。这使得设计师在设计面向特定应用的嵌入式软件时,需要有一套切实可行的编程准则。而在实际程序设计中,工程师尤其需要考虑对变量的使用和循环程序的处理。变量使用 在进行实际程序开发时,变量的使用至关重要,其中使用全局变量比向函数传递参数更加有效,这样免去了函数调用时参数转载 2014-12-05 23:41:59 · 1357 阅读 · 0 评论 -
中断处理“下半部”机制
目录(?)[-]中断处理下半部机制软中断请求softirq机制软中断描述符软中断触发机制初始化软中断softirq_init 软中断服务的执行函数do_softirq小任务 tasklet机制tasklet描述符改变一个tasklet状态的操作改变一个tasklet的运行状态使能禁止一个tasklettasklet描述符的初始化与杀死tasklet对列软中断转载 2015-01-10 15:08:22 · 566 阅读 · 0 评论 -
缓冲区相关知识介绍
这里所说的缓冲区指的是为标准输入与标准输出设置的缓冲区,为什么要设置一个标准输入缓冲区主要是从效率上来考虑的,如果不设缓冲区会降低cpu的效率,因为它总是会等待用户输入完之后才会去执行某些指令!同样设置一个标准输出缓冲区是为了解决打印的问题!总之这样做的目的就是为了效率!接下来讲解一下怎么设置标准输入与标准输出缓冲区。如果我们不认为的设置的话,系统会自动的为标准输入与标准输入设置一个缓冲区转载 2015-01-05 20:53:16 · 1095 阅读 · 0 评论 -
Linux内核态抢占机制分析
作者:SAE团队 朱荣泽 【摘要】本文首先介绍非抢占式内核(Non-Preemptive Kernel)和可抢占式内核(Preemptive Kernel)的区别。接着分析Linux下有两种抢占:用户态抢占(User Preemption)、内核态抢占(Kernel Preemption)。然后分析了在内核态下:如何判断能否抢占内核(什么是可抢占的条件);何时触发重新调度(何时设置转载 2015-01-05 20:45:58 · 458 阅读 · 0 评论 -
linux0.11 块设备驱动与高速缓冲区
好久没继续,心中有愧呀。一、介绍块设备驱动中包含了三部分代码:硬盘驱动,ramdisk驱动,软盘驱动。这三个部分的代码是一致的,采用了相同的处理方式。就是说对底层来说,不同硬件采用不同的方式读取数据,但上层用同样的接口来处理读写操作。大致流程:1:程序要读取数据,首先向缓存区管理程序发出申请,并进入睡眠。2:缓冲区管理程序在缓冲区中查找是否已经读取过该数据块,是转载 2015-01-05 20:25:00 · 672 阅读 · 0 评论 -
简单的回调函数
最简单的回调函数类型为无参数,无返回值的函数。最简单的回调函数的格式即是这种形式。其类型定义如下所示:typedef void (*T_SIMPLE_CALL)(void )在以下的例子中,回调函数为simple_callback,这个函数没有参数和返回值,只是简单的调用了printf打印信息,它的定义如下所示:void simple_callback(void ){转载 2015-01-05 19:57:15 · 804 阅读 · 0 评论 -
解释一下linux驱动程序结构框架及工作原理
一、Linux device driver 的概念 系统调用是操作系统内核和应用程序之间的接口,设备驱动程序是操作系统内核和机器硬件之间的接口。设备驱动程序为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件,应用程序可以象操作普通文件一样对硬件设备进行操作。设备驱动程序是内核的一部分,它完成以下的功能: 1、对设备初始化和释放; 2、把数据从内核传送到硬件和转载 2015-01-05 13:57:25 · 2567 阅读 · 0 评论 -
Windows驱动开发技术详解笔记(10) 基本概念
一、基本框架二、基本概念1、操作系统的主要任务是调度线程,还有一些必要的工作,如:内存管理,进程管理,安全管理和I/O管理,这些部分叫做执行部件。2、Ring是CPU的概念,而用户/内核模式是操作系统的概念。编写驱动主要为了操作硬件,如访问物理内存,设备端口等。驱动程序相当于内核的补丁,不同硬件设备会有不同的补丁。Windwos中,用户态与内核态切换通过软中断来进行转载 2015-01-04 13:14:13 · 447 阅读 · 0 评论 -
可重入函数的概念
主要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误;而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如果被中断的话,可能会出现问题,这类函数是不能运行在多任务环境下的。 也可以这样理解,重入即表示重复进入,首先它意味着这个函转载 2014-12-14 01:21:11 · 795 阅读 · 0 评论 -
Android bluetooth介绍(一):基本概念及硬件接口
关键词:蓝牙硬件接口 UART PCM blueZ 版本:基于android4.2之前版本 bluez内核:linux/linux3.08系统:android/android4.1.3.4作者:xubin341719(欢迎转载,请注明作者,请尊重版权谢谢)欢迎指正错误,共同学习、共同进步!! Android bluetooth介绍(一):基本概念及硬件接口转载 2014-12-11 13:02:42 · 867 阅读 · 0 评论 -
中断体系结构
中断体系结构ARM体系CPU有以下7种工作模式。.用户模式(usr):ARM处理器正常的程序执行状态。.快速中断模式(fiq):用于高速数据传输或通道处理。.中断模式(irq):用于通用的中断处理。.管理模式(svc):操作系统使用的保护模式。.数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。.系统模式(sys):运行具有特权的操转载 2014-11-24 13:07:40 · 842 阅读 · 0 评论 -
arm+uClinux的嵌入式系统的开发
http://www.dzkf.cn/html/qianrushixitong/2006/0816/320.html转载 2014-11-23 22:04:01 · 422 阅读 · 0 评论 -
ARM嵌入式系统中断向量表的动态配置
摘要:通常32位ARM嵌入式系统的中断向量表是在程序编译前设置好的,每次编写中断程序都要改C程序的汇编启动代码,相当繁琐。本文给出一种配置ARM中断向量表新方法。该方法比通常方法仅增加一条指令执行时间,简便高效,功能完备,向量表在运行时动态生成,C程序可以使用固定向量表的启动代码,并可隐藏起来。一般32位ARM嵌入式系统的中断向量表是程序编译前设置好的。在编写32位ARM嵌入式系统的中断服转载 2014-11-26 12:52:46 · 735 阅读 · 0 评论 -
uc/os-ii信号量的理解
http://bbs.csdn.net/topics/390322007转载 2014-11-16 20:11:54 · 466 阅读 · 0 评论 -
嵌入式系统优先级反转问题的分析 (1)
发布时间:2006.12.18 05:02 来源:电子产品世界 作者:电子产品世界摘要: 本文介绍了嵌入式系统任务调度优先级反转的一个实例。通过实例的讨论对嵌入式系统优先级反转有一个更深入的了解,有助于在编程中避免此类问题的发生。关键词:嵌入式实时系统;VxWorks;多任务;优先级反转。引言VxWorks是美国Wind River转载 2014-11-16 15:30:53 · 782 阅读 · 0 评论 -
ucos试验代码实例1:任务优先级反转
任务优先级反转:原理是,信号量是稀缺资源,当一个低优先级的任务霸占了信号量,高优先级任务想要用这个信号量只好等待,于是呢,在这个间隙里,中优先级的任务(当然,这个任务是不想用该信号量的)就获得了CPU的使用权,等低优先级任务在中优先级任务的压迫下缓慢的完成了信号量的使用并做了释放,这时高优先级的任务才得以获得信号量继续运行。这样,看实际效果呢,中优先级任务就事实上比高优先级任务更加优先了,转载 2014-11-16 15:21:28 · 2377 阅读 · 0 评论 -
中断系统和程序中断方式
http://www.softwarehistory.net/h/E_Comp_ZuchengYuanli/67.php转载 2014-11-10 10:06:29 · 620 阅读 · 0 评论 -
信号量 互斥锁 条件变量的区别(讲的很好,值得收藏)
信号量用在多线程多任务同步的,一个线程完成了某一个动作就通过信号量告诉别的线程,别的线程再进行某些动作(大家都在semtake的时候,就阻塞在哪里)。而互斥锁是用在多线程多任务互斥的,一个线程占用了某一个资源,那么别的线程就无法访问,直到这个线程unlock,其他的线程才开始可以利用这个资源。比如对全局变量的访问,有时要加锁,操作完了,在解锁。有的时候锁和信号量会同时使用的”也就是说,信号量不转载 2014-09-12 09:05:31 · 615 阅读 · 0 评论 -
分层软件设计
软件为什么要分层呢?一方面软件太复杂,将器分解成若干层,使设计变得容易、易于实现。另一方面为适应更强的扩展、适配和互换,也在一定的程度上趋于分层化设计。 但需明白,任何形式的分层,都会将软件的规模扩大,也就是牺牲运行的速度、增加了代码量和增大了维护任务量来换取扩展能力和易于设计。 在分层软件设计上,我习惯于从整体部署,然后再分解到各个部分和各个层上去,这种做法对实现小规转载 2014-08-07 23:31:00 · 721 阅读 · 0 评论 -
分层结构软件各层次之间通信
对软件进行层次化分解通常是解决软件复杂性的一种手段,在操作系统、网络协议栈设计中屡见不鲜。1. 当上层模块需要传递数据给下层模块时,调用一个函数或者过程即可搞定。2. 那么,反过来,当下层模块需要把数据传递给上层模块的时候,又当如何处理呢。2.1 从网络协议栈的实现情况来看,似乎都是在下层模块中放一个队列,要递交到上层模块的数据都按照FIFO的顺序丢在这个队列里面。这个转载 2014-08-07 23:25:15 · 4096 阅读 · 0 评论 -
armlink - Scatter file文件实现将函数放在指定内存地址
armlink - Scatter file文件格式 2010-12-06 21:06:02 分类: LINUX Scatter file (分散加载描述文件)用于armlink的输入参数,他指定映像文件内部各区域的download与运行时位置。Armlink将会根据scatter file生成一些区域相关的符号,他们是全局的供用户建立运行时环境时使用。转载 2014-11-27 13:37:08 · 3928 阅读 · 0 评论 -
S3C2410 DMA详解
http://www.dzkf.cn/html/qianrushixitong/2008/0625/3193.html转载 2014-11-23 21:59:52 · 598 阅读 · 0 评论 -
实时操作系统的优秀文章
实时操作系统的概念实时系统的特点是,如果逻辑和时序出现偏差将会引起严重后果的系统。能够对外界事件和数据作出快速处理并快速响应。有两种类型的实时系统:软实时系统和硬实时系统。 1.在软实时系统中系统的宗旨是使各个任务运行得越快越好,并不要求限定某一任务必须在多长时间内完成。 2.在硬实时系统中,各任务不仅要执行无误而且要做到准时。 大多数实时系统是二者的转载 2014-11-29 00:46:00 · 719 阅读 · 0 评论 -
移植µC/OS-Ⅱ
http://www.embeddedlinux.org.cn/uCOSII/chapter8.htm转载 2014-11-29 10:38:35 · 687 阅读 · 0 评论 -
TMS320F28x上RTOS移植关键技术分析
TMS320F28x上RTOS移植关键技术分析详细分析TI公司TMS320F28x系列DSP的启动过程;说明BootROM中程序的运行过程,介绍C编译器和DSP/BIOS的工作细节;探讨DSP的中断处理及从RAM中执行代码等问题。最后分析如何在TMS320F28x系列DSP上移植实时操作系统。关键词 数字信号处理器 TMS320F28x BootROM 实时操作系统 TM转载 2014-11-29 10:35:20 · 1889 阅读 · 0 评论 -
μC/OS-II中缩短中断关闭时间的方法
μC/OS-II中缩短中断关闭时间的方法在实时操作系统中,由于是多任务的并发运行,所以在进入一些临界区时为了保证多任务的正常运行要关中断。而最大关中断时间是衡量一个实时操作系统性能的重要指标,因为外部的输入一般都是通过中断方式来通知系统的,系统如果关中断时间长,必然不能及时接收中断,对中断的及时处理就更谈不上。 更重要的是,有些应用场合对关中断的时间有非常严格的要求。例如,在电力系统转载 2014-11-29 01:00:01 · 1142 阅读 · 0 评论 -
多任务临界段(原语操作)讨论
http://www.amobbs.com/thread-4071460-1-1.htmlhttp://blog.chinaunix.net/uid-22003667-id-3291833.htmlhttp://zhangyiyu120.blog.163.com/blog/static/98906938201022462557514/转载 2014-11-29 00:39:02 · 355 阅读 · 0 评论 -
HISR和LISR的区别
http://bbs.52rd.com/Thread-143022-1-1.html转载 2014-11-29 00:27:12 · 2829 阅读 · 0 评论 -
ARM嵌入式系统中断向量表的动态配置
http://www.dzkf.cn/html/qianrushixitong/2006/0815/318.html转载 2014-11-23 22:02:39 · 615 阅读 · 0 评论 -
stm32 外部中断的使用(含实例)
http://www.cnblogs.com/moonwolf009/archive/2012/10/04/2853453.html转载 2014-11-23 22:01:43 · 540 阅读 · 0 评论 -
操作系统的硬件环境
一、中央处理器 CPU1. 每个CPU都拥有自己的指令系统。2. CPU由运算器、控制器、寄存器和高速缓存组成。3. 寄存器具有最快的访问速度,高速缓存位于CPU和内存之间,访问速度大于内存,低于寄存器。4. CPU中的寄存器分为:用户可见寄存器、控制和状态寄存器。5. 用户可见寄存器有:数据寄存器、地址寄存器和条件码寄存器。6. 控制和状态寄存器有转载 2015-01-05 20:58:21 · 599 阅读 · 0 评论