linux
wangrunmin
这个作者很懒,什么都没留下…
展开
-
Linux下的多进程编程
转自:http://blog.csdn.net/sailor_8318/article/details/3863226什么是一个进程?当用户敲入命令执行一个程序的时候,对系统而言,它将启动一个进程。但和程序不同的是,在这个进程中,系统可能需要再启动一个或多个进程来完成独立的多个任务。多进程编程的主要内容包括进程控制和进程间通信。1 Linux下进程的结构Linux下转载 2013-04-19 14:49:37 · 1920 阅读 · 0 评论 -
Linux时钟处理-时钟的软中断处理
转自:http://www.lampbrother.net/php/bencandy.php?fid=42&id=230在 Linux 操作系统中,很多活动都和时间有关,本文分析了 Linux 2.6.25 内核的时钟处理机制,首先介绍了在计算机系统中的一些硬件计时器,然后重点介绍了 Linux 操作系统中的硬件时钟和软件时钟的处理过程以及软件时钟的应用。 时钟的软中转载 2013-03-12 11:06:09 · 2396 阅读 · 0 评论 -
ARM Linux系统的时钟机制
转自:http://www.linuxidc.com/Linux/2012-03/55895.htm1. Linux下有两类时钟:1.1 实时钟RTC它由板上电池驱动的“Real Time Clock”也叫做RTC或者叫CMOS时钟,硬件时钟。当操作系统关机的时候,用这个来记录时间,但是对于运行的系统是不用这个时间的。1.2 系统时钟“System clock”也叫内核时钟或者转载 2013-03-09 21:02:56 · 961 阅读 · 0 评论 -
进程同步机制及优缺点
1.信号量机制:一个信号量只能置一次初值,以后只能对之进行p操作或v操作。由此也可以看到,信号量机制必须有公共内存,不能用于分布式操作系统,这是它最大的弱点。2.自旋锁:旋锁是为了保护共享资源提出的一种锁机制。调用者申请的资源如果被占用,即自旋锁被已经被别的执行单元保持,则调用者一直循环在那里看是否该自旋锁的保持着已经释放了锁自旋锁是一种比较低级的保护数据结构和代码片段的原原创 2012-09-04 13:09:32 · 10693 阅读 · 0 评论 -
mini6410蜂鸣器驱动学习(混杂设备)
mini6410的蜂鸣器Buzzer是通过PWM控制的,原理图如下所示,其中,连接蜂鸣器的PWM0对应GPF14,该引脚可通过软件设置为PWM输出,也可以作为普通的GPIO使用。由以上可知,我们需要在驱动程序中,首先把GPF14端口设置为PWM功能输出,再设定相应的Timer就可以控制PWM的输出频率了。友善给的驱动代码如下所示:#include #include #include原创 2012-05-28 09:35:41 · 3752 阅读 · 1 评论 -
/dev/tty0和/dev/console .
转自:http://blog.csdn.net/contain_universe/article/details/1629002终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。tty是Teletype的缩写。Teletype是最早出现的一种终端设备,很象电传打字机(或者说就是),是由Teletype公司生产的。在Linux系统的设备特殊文件目录/dev/下,终端特转载 2012-08-08 01:19:29 · 893 阅读 · 0 评论 -
嵌入式视频采集编程思路(Video 4 Linux)
转自:http://zyg0227.blog.51cto.com/1043164/2719541. linux 内核有video for linux简称V4L。V4L是Linux影像系统与嵌入式影像的基础,是Linux kernel里支持影像设备的一组APIs,配合适当的视频采集卡与视频采集卡驱动程序,V4L可以实现影像采集、AM/FM无线广播、影像CODEC、频道切换等功能。目前,V4转载 2012-07-19 20:21:21 · 2068 阅读 · 0 评论 -
嵌入式Linux之我行——S3C2440上LCD驱动(FrameBuffer)实例开发讲解(一)
转自:http://blog.chinaunix.net/uid-22174347-id-1786942.html 一、开发环境主 机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand, Kernel:2.6.30.4 编译器:arm-linux-gcc-4.3.2二、背景知识1. LCD工作的硬件需求: 要使一块LCD正转载 2012-06-18 15:54:36 · 1366 阅读 · 0 评论 -
嵌入式Linux之我行——S3C2440上LCD驱动(FrameBuffer)实例开发讲解(二)
四、帧缓冲(FrameBuffer)设备驱动实例代码:①、建立驱动文件:my2440_lcd.c,依就是驱动程序的最基本结构:FrameBuffer驱动的初始化和卸载部分及其他,如下:#include #include #include #include #include #include #include #include #include #incl转载 2012-06-18 20:32:06 · 1533 阅读 · 0 评论 -
mini6410之UBOOT移植
本文参考网友muge0913的http://blog.csdn.net/muge0913/article/details/7167599#一文。1. 网上下载u-boot-2010.09版本并解压 tar -jxvf u-boot-2010.09.tar.bz2 2. 6410和6400的资源差不多,主频和外设有点差别,所以我们就在board/samsung/下建立自己开发板的项目,原创 2012-05-26 11:29:20 · 3445 阅读 · 0 评论 -
Linux进程调度时机Schedule函数解析
转自:http://www.linuxdiyf.com/linux/201107/648.html Linux的调度程序是一个叫Schedule()的函数,由它来决定是否要进行进程的切换。而所谓的调度时机则是在什么情况下执行调度程序。 主要有一下几种状况: 1、进程状态转换的时刻:进程终止、进程睡眠; 2、当前进程的时间片用完时(current->counter=转载 2013-03-01 21:45:29 · 1210 阅读 · 0 评论 -
进程描述符的处理
转自:http://edsionte.com/techblog/archives/2198/comment-page-1对于每一个进程而言,内核为其单独分配了一个内存区域,这个区域存储的是内核栈和该进程所对应的一个小型进程描述符——thread_info结构。01struct thread_info {02转载 2013-03-17 17:52:04 · 1302 阅读 · 0 评论 -
linux进程调度浅析
转自:http://hi.baidu.com/_kouu/item/38c81042455c97d2c1a592d9操作系统要实现多进程,进程调度必不可少。有人说,进程调度是操作系统中最为重要的一个部分。我觉得这种说法说得太绝对了一点,就像很多人动辄就说"某某函数比某某函数效率高XX倍"一样,脱离了实际环境,这些结论是比较片面的。 而进程调度究竟有多重要呢? 首先,我们需要明确转载 2013-03-31 11:28:34 · 743 阅读 · 0 评论 -
Linux系统调用函数
转自:http://blog.csdn.net/rootsongjc/article/details/7062694以下是Linux系统调用的一个列表,包含了大部分常用系统调用和由系统调用派生出的的函数。这可能是你在互联网上所能看到的唯一一篇中文注释的Linux系统调用列表,即使是简单的字母序英文列表,能做到这么完全也是很罕见的。 按照惯例,这个列表以man pages第2节,即系统调用转载 2013-04-19 20:45:29 · 2102 阅读 · 0 评论 -
Linux中通过/proc/stat等文件计算Cpu使用率
转自:http://www.blogjava.net/fjzag/articles/317773.htmlLinux平台Cpu使用率的计算proc文件系统/proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为内核与进程提供通信的接口。用户和应用程序可以通过/proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变转载 2013-04-19 10:58:58 · 2196 阅读 · 0 评论 -
如何在Linux中查看所有正在运行的进程
你可以使用ps命令。它能显示当前运行中进程的相关信息,包括进程的PID。Linux和UNIX都支持ps命令,显示所有运行中进程的相关信息。ps命令能提供一份当前进程的快照。如果你想状态可以自动刷新,可以使用top命令。ps命令输入下面的ps命令,显示所有运行中的进程: # ps aux | less其中,-A:显示所有进程a:显示终端中包括其它用户的所有进程x:显示转载 2013-04-25 08:24:43 · 2355 阅读 · 0 评论 -
详细剖析Linux进程调度时机
转自:http://os.51cto.com/art/201003/187407.htmLinux在众多进程中是怎么进行调度的,这个牵涉到Linux进程调度时机的概念,由Linux内核中Schedule()的函数来决定是否要进行进程的切换,如果要切换的话,切换到哪个进程等等。Linux进程调度时机主要有:1、进程状态转换的时刻:进程终止、进程睡眠;2、当前进程的时间转载 2013-04-03 21:00:40 · 830 阅读 · 0 评论 -
Linux 时钟处理机制
跳转到主要内档库Linux 时钟处理机制赵 健博 (zhaojianbo@ncic.ac.cn), 硕士, 中国科学院计算技术研究所简介: 在 Linux 操作系统中,很多活动都和时间有关,例如:进程调度和网络处理等等。所以说,了解 Linux 操作系统中的时钟处理机制有助于更好地了解 Linux 操作系统的运作方式。本文分析了转载 2013-04-04 21:22:13 · 2146 阅读 · 0 评论 -
Linux中断处理之时钟中断--X86
转自:http://tech.ddvip.com/2008-11/122725541294197.html 一:前言 时钟是整个操作系统的脉搏,它为进程的时间片调度,定时事件提供了依据.另外,用户空间的很多操作都依赖于时钟,例如select.poll,make.操作系统管理的时间为分两种,一种称为当前时间,也即我们日常生活所用的时间.这个时间一般保存在CMOS中.主板转载 2013-04-03 21:33:51 · 2692 阅读 · 0 评论 -
Linux内核抢占实现机制分析
转自:http://blog.csdn.net/sailor_8318/article/details/2870184【摘要】本文详解了Linux内核抢占实现机制。首先介绍了内核抢占和用户抢占的概念和区别,接着分析了不可抢占内核的特点及实时系统中实现内核抢占的必要性。然后分析了禁止内核抢占的情况和内核抢占的时机,最后介绍了实现抢占内核所做的改动以及何时需要重新调度。【关键字】内核抢占,转载 2013-04-01 20:11:52 · 806 阅读 · 0 评论 -
测试进程上下文切换时间
测试Context Switch time(进程上下文切换时间) -------------------------------------------------- 创建两个进程(实时进程)并在它们之间传送一个令牌,如此往返传送一定的次数。其中一个进程在读取令牌时就会引起阻塞。另一个进程发送令牌后等待其返回时也处于阻塞状态。发送令牌带来的开销与上下文切换带来的开销相比,可以忽略不转载 2013-03-31 21:59:10 · 1678 阅读 · 0 评论 -
详解Linux内核红黑树算法的实现
转自:http://blog.csdn.net/npy_lp/article/details/7420689平衡二叉树(BalancedBinary Tree或Height-Balanced Tree)又称AVL树。它或者是一棵空树,或者是具有下列性质的二叉树:它的左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过1。若将二叉树上结点的平衡因子BF(BalanceFac转载 2013-03-31 11:44:07 · 983 阅读 · 0 评论 -
嵌入式系统 Boot Loader 技术内幕
转自:http://www.ibm.com/developerworks/cn/linux/l-btloader/1. 引言在专用的嵌入式板子运行 GNU/Linux 系统已经变得越来越流行。一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次: 1. 引导加载程序。包括固化在固件(firmware)中的 boot 代码(可选),和 Boot Loader 两大部分。转载 2012-05-26 10:10:25 · 821 阅读 · 0 评论 -
国嵌视频学习之交叉工具链
1.什么是交叉工具链 背景: 嵌入式开发采用交叉开发的开发模式。 运行在宿主机上面,通过交叉编译工具链编译出的程序才能在目标机上运行。2.编译器:arm-linux-gcc arm-linux-gcc hello.c -o hello3.反汇编工具:arm-linux-objdump原创 2012-05-23 09:56:16 · 2633 阅读 · 0 评论 -
国嵌视频学习之UBOOT命令
1.help:查看当前单板所支持的命令2.环境变量相关 a.printenv:查看环境变量 b.setenv:添加、修改、删除环境变量 setenv 名字 值:添加和修改 setenv 名字:删除 c.saveenv:保存环境变量:从RAM保存至flash3.文件下载 tftp:通过网络下载文件原创 2012-05-23 12:28:46 · 2912 阅读 · 0 评论 -
Linux 2.6.9源码结构
于linux2.4内核源码结构相比主要不同点如下:目录结构更合理,i386和其他体系结构修改成平级,每种体系结构下都有相对应的内核,内存管理,库,引导程序等,每种体系架构下的子目录不尽相同,这里只列出i386结构的子目录内容. Documentation目录:关于内核组件的一般解释及提示的文本文件Arch目录Alpha HP的alpha体系结构Cris转载 2011-08-09 10:02:54 · 963 阅读 · 1 评论 -
linux内核register_chrdev_region()系列函数
内核中所有已分配的字符设备编号都记录在一个名为 chrdevs 散列表里。该散列表中的每一个元素是一个 char_device_struct 结构,它的定义如下: static struct char_device_struct { struct char_device_struct *next; // 指向散列冲突链表中的下一个元素的指针 uns转载 2011-08-08 16:30:48 · 980 阅读 · 0 评论 -
mini6410----led驱动学习
LED是开发中最常用的状态指示设备,本开发板具有4个用户可编程LED,它们直接与CPU的GPIO相连接,低电平有效(点亮),详细的硬件连接如下表:mini6410开发板上用到的4个LED的硬件资源如下图: 要操作所用到的IO口,就要设置它们所用到的寄存器,需要调用一些现成的函数或者宏,在此用到的是readl和writel,它们将直接对相应的寄存器执行读取和写入的操作。在原创 2012-05-30 10:26:33 · 2322 阅读 · 1 评论 -
tiny6410温度传感器2(测试中)
/*tiny6410_temp.c,温度传感器驱动*/#include #include #include #include #include #include #include #include #include #include #include #include #include #i原创 2012-05-31 09:30:11 · 1713 阅读 · 0 评论 -
linux字符设备驱动一般模板
#include //头文件有很多,可以根据具体的情况添加删除,这里给一个例子。#include #include #include #include #include #include #include #include #include #include #include #include #include #include #i原创 2012-05-30 09:48:12 · 1248 阅读 · 0 评论 -
tiny6410温度传感器驱动学习1(测试通过)
参考http://www.arm9home.net/read.php?tid-16249.html的驱动代码如下#include #include #include #include #include #include #include #include #include #define DEV原创 2012-05-29 17:47:28 · 1170 阅读 · 0 评论 -
linux驱动头文件说明
#include 是在linux-2.6.29/include/linux下面寻找源文件。#include 是在linux-2.6.29/arch/arm/include/asm下面寻找源文件。#include 是在linux-2.6.29/arch/arm/mach-s3c2410/include/mach下面寻找源文件。#include在linux-2.6.31_转载 2012-05-29 21:16:25 · 1361 阅读 · 0 评论 -
Linux 下操作gpio(两种方法,驱动和mmap)
目前我所知道的在linux下操作GPIO有两种方法: 1. 编写驱动,这当然要熟悉linux下驱动的编写方法和技巧,在驱动里可以使用ioremap函数获得GPIO物理基地址指针,然后使用这个指针根据ioctl命令进行GPIO寄存器的读写,并把结果回送到应用层。这里提供一点程序片断供大家参考: int init_module(void){ printk(原创 2011-08-09 10:27:38 · 8587 阅读 · 0 评论 -
Linux设备驱动子系统-SD卡
1. 总论2. 主控制器3. 协议层4. 块设备1. 总论 1.1 概念MMC - MultiMedia Card SD - Secure Digital Card 1.2 分类按存储大小,普通SD卡(2GB,按体积大小,普通SD卡,mini-SD卡,micro-SD卡(TF卡) 1.3 速度默认模式: 12.5MB/s 高速模式: 2转载 2012-02-23 16:23:43 · 8617 阅读 · 0 评论 -
国嵌--linux字符设备驱动学习之memdev设备
memdev设备驱动源码memdev.h 自定义头文件******************************************************************************#ifndef _MEMDEV_H_#define _MEMDEV_H_#ifndef MEMDEV_MAJOR#define MEMDEV_MAJOR 254原创 2012-05-16 10:31:07 · 4379 阅读 · 0 评论 -
linux /dev/console设备解析
tty是一类char设备的通称,它们有相同的特性,比如对^C的处理,驱动使用tty_register_driver注册一个tty。/dev/console是一个虚拟的tty,它映射到真正的tty上,如何映射等会再说。 console有多种含义,这里特指printk输出的设备,驱动使用register_console注册一个console。 console和tty有很大区转载 2012-05-17 20:46:44 · 14634 阅读 · 0 评论 -
内核怎样启动第一个应用程序--韦东山教程学习
1.打开一个设备“/dev/console”,这个设备称为“终端设备”,也是打开的第一个设备,作为标准输入设备。2.将标准输入设备作为标准输出设备和标准错误设备。3.启动由UBOOT传给内核的命令行启动参数中设置的应用程序“init = ……”,如果没有设置就启动“/sbin/init”等。原创 2012-05-18 10:47:28 · 2360 阅读 · 0 评论 -
国嵌视频学习--UBOOT介绍
1.UBOOT源码下载地址: ftp://ftp.denx.de/pub/u-boot/2.目录结构 board:开发板相关的文件。如board/samsung/smdk6410。 common:UBOOT支持的命令 CPU:与特定处理器架构相关的代码 Disk:对磁盘的支持 Doc:文档 Drivers:Uboot支原创 2012-05-23 10:30:08 · 3174 阅读 · 0 评论 -
国嵌视频学习之Bootloader介绍
一、BootLoader介绍1.定义: 操作系统运行之前的一小段程序2.功能: 初始化硬件设备; 调用操作系统;3.安装: S3C6410在复位后从地址0x00000000起开始执行,从NANDFLASH启动时,在0地址处,前4KB是RAM,上电后会将NANDFLASH前4KB的内原创 2012-05-23 09:23:33 · 3304 阅读 · 0 评论 -
mini2440 root_qtopia 文件系统启动过程分析
原文链接:http://www.arm9home.net/read.php?tid-1702.html,在此基础上做了更多解释。对于mini2440最新的root_qtopia文件系统启动过程,我在这里做了一些简单的分析,和大家分享一下经验,不足之处也请大家及时指出。 其实,虽然root_qtopia这个文件系统的GUI是基于Qtopia的,但其初始化启动过程却是由大部分由b原创 2012-05-19 17:05:44 · 2354 阅读 · 0 评论