自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (5)
  • 收藏
  • 关注

转载 工作队列(workqueue) create_workqueue/schedule_work/queue_work

项目需要,在驱动模块里用内核计时器timer_list实现了一个状态机。郁闷的是,运行时总报错“Scheduling while atomic”,网上搜了一下:"Scheduling while atomic" indicates that you've tried to sleep somewhere that you shouldn't - like within a spinlo

2012-12-28 16:12:29 22596

转载 platform_set_drvdata()/platform_get_drvdata()/container_of()

platform_set_drvdata(struct platform_device *pdev, void *data)platform_get_drvdata(const struct platform_device *pdev):驱动中常用到platform_set_drvdata 和 platform_get_drvdata这两个函数,用于保存局部变量:inc

2012-12-27 15:32:05 3188

转载 select()/FD_ZERO()/FD_SET()/FD_CLR()/FD_ISSET()

Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。        可是使用Select就可

2012-12-23 18:06:26 1043

转载 struct timeval

DESCRIPTION   The functions gettimeofday and settimeofday can get and set the time as   well as a timezone. The tv argument is a timeval struct, as specified   in :   struct

2012-12-22 17:11:11 2381

转载 linux设备驱动中file_operations结构体分析

struct module *owner第一个 file_operations 成员根本不是一个操作; 它是一个指向拥有这个结构的模块的指针. 这个成员用来在它的操作还在被使用时阻止模块被卸载. 几乎所有时间中, 它被简单初始化为 THIS_MODULE, 一个在 中定义的宏.loff_t (*llseek) (struct file *, loff_t, int);llseek 方

2012-12-19 10:15:41 850

转载 MISC混杂设备 struct miscdevice /misc_register()/misc_deregister()

在Linux系统中,存在一类字符设备,他们共享一个主设备号(10),但此设备号不同,我们称这类设备为混杂设备(miscdeivce),查看/proc/device中可以看到一个名为misc的主设备号为10.所有的混杂设备形成一个链表,对设备访问时内核根据次设备号找到对应的miscdevice设备。相对于普通字符设备驱动,它不需要自己去生成设备文件。Linux内核使用struct miscd

2012-12-19 10:02:28 11668 1

转载 struct platform_device/platform_driver

一个现实的linux设备和驱动通常要挂接在一种总线上,像pci,usb,iic,spi等都是总线结构,这当然不是问题,但是嵌入式系统中,Soc系统集成的独立外设控制器,挂接在soc内存空间的外设等却不依附于此类总线。基于这个背景,linux发明了一种虚拟总线:platform总线,相应的设备称为platform_device,而驱动成为platform_driver。注意,platfo

2012-12-18 19:52:58 1816

转载 在内核中创建文件 filp_open/sys_open

之前以为在内核中不能创建文件,其实不是这样子的,只要文件系统跑起来之后就可以像在用户空间一样操作文件. 用户空间                   内核open()                    sys_open(), filp_open()close()                   sys_close(), filp_close()rea

2012-12-18 17:47:06 1872

转载 sys_read()/vfs_read()/vfs_write() Linux VFS文件系统之读写(read/write)文件

------------------------------------------------#纯属个人理解,如有问题敬请谅解!#kernel version: 2.6.26#Author: andy wang-------------------------------------------------一: 概述  在上文中讨论了VFS层是如何打开

2012-12-18 17:07:22 12861 1

转载 files_struct 与 struct file

files_struct结构files_struct结构保存了进程打开的所有文件表数据,描述一个正被打开的文件。Linux中一个进程最多只能同时打开NR_OPEN_DEFAULT个文件,而且前三项分别设为标准输入、标准输出和出错信息输出文件,定义如下。struct files_struct {      atomic_t        count;              //自动增

2012-12-18 16:07:08 3487

转载 在linux内核中操作文件的方法--使用get_fs()和set_fs(KERNEL_DS) .bin file write/read

例1:#include linux/kernel.h>#include linux/module.h>#include linux/init.h>#include linux/fs.h>#include linux/string.h>#include linux/mm.h>#include linux/syscalls.h>#include asm/unistd.h

2012-12-18 16:05:48 3079

转载 signal_pending()

检测进程p是否有待处理的信号(p->thread_info->flags中TIF_SIGPENDING位是否置位)-----------------------------------------------------static inline int signal_pending(struct task_struct *p){    return unlikely(test

2012-12-14 16:27:52 2561

转载 schedule() -- 调度进程

The goal of the schedule( ) function consists of replacing the currently executing process with another one. Thus, the key outcome of the function is to set a local variable called next, so that it

2012-12-14 16:12:49 748

转载 进程不能睡眠的情况

进程不能睡眠的情况:1、进程已经持有一个自旋锁、seqlock、rcu锁2、在进程中关闭了中断3、除非能确保,在某处,能够找到这个进程,并且可以唤醒此进程;否则,不应进入睡眠。使用等待队列写数据时,如果无空间可写,则应进入睡眠,但应检查执行睡眠代码时,是否有空间可写,避免发生“先唤醒,后睡眠”,即将要执行睡眠代码时,读操作释放了空间,释放空间后会

2012-12-14 11:42:24 592

转载 bt

http://blog.csdn.net/newtonnl?viewmode=contents

2012-12-13 17:42:11 859

转载 copy_to_user、copy_from_user

include   copy_to_user(), copy_from_user()  在内核的学习中会遇到很多挺有意思的函数,而且能沿着一个函数扯出来很多个相关的函数。copy_to_user和copy_from_user就是在进行驱动相关程序设计的时候,要经常遇到的两个函数。由于内核空间与用户空间的内存不能直接互访,因此借助函数copy_to_user()完成用户空间到内核

2012-12-13 13:30:29 713

转载 memcpy

目录函数原型功能所需头文件返回值说明程序例展开函数原型功能所需头文件返回值说明程序例展开编辑本段函数原型  void *memcpy(void *dest, const void *src, size_t n);编辑本段功能  从源src所指的内存地址的起始位置开始拷贝n个字节到

2012-12-13 09:55:25 591

转载 fstat、stat和lstat 区别

stat系统调用系列包括了fstat、stat和lstat,它们都是用来返回“相关文件状态信息”的,三者的不同之处在于设定源文件的方式不同。1首先隆重介绍的是一个非常重要的”VIP”人物,他是fstat, stat和lstat三者都要用到的一个结构体类型,名字叫做struct stat。可以说,没有这个struct stat的支持,上述三个系统调用将寸步难行。这个s

2012-12-12 10:03:25 564

转载 sprintf()/simple_strtoul()

字符串格式化命令,主要功能是把格式化的数据写入某个字符串中。sprintf 是个变参函数,使用时经常出问题,而且只要出问题通常就是能导致程序崩溃的内存访问错误。无非就是那么几种情况,通常用眼睛再把出错的代码多看几眼就看出来了。目录函数简介参数说明及应用举例使用sprintf 的常见问题展开函数简介参数说

2012-12-11 19:48:04 4635

转载 access()

功能描述: 检查调用进程是否可以对指定的文件执行某种操作。   用法: #include #include int access(const char *pathname, int mode);     参数: pathname: 需要测试的文件路径名。   mode: 需要测试的操作模式,可能值是一个或多个R_OK(可读?), W_OK(可写?), X

2012-12-10 14:44:35 781

转载 Linux下使用daemon函数编写后台程序

以前我们在看《unix环境高级编程》的时候,有专门的整章详细介绍如何编写一个后台daemon程序(精灵程序),主要涉及到创建会话组,切换工 作目录,设置文件屏蔽字,关闭不必要的描述符等多个操作。这些操作对于每一个后台程序来说都是类似的。在Linux中专门提供了一个函数来完成这个daemon化的过程,这个函数的原型如下int daemon (int __nochdir, int __

2012-12-04 00:12:52 21417

转载 僵尸进程

僵尸进程怎样产生的:  一个进程在调用exit命令结束自己的生命的时候,其实它并没有真正的被销毁,而是留下一个称为僵尸进程(Zombie)的数据结构(系统调用 exit,它的作用是使进程退出,但也仅仅限于将一个正常的进程变成一个僵尸进程,并不能将其完全销毁)。  在Linux进程的状态中,僵尸进程是非常特殊的一种,它已经放弃了几乎所有内存空间,没有任何可执行代码,也不能被调度,仅仅

2012-12-02 22:38:50 886

转载 守护进程实现

Some basic rules to coding a daemon prevent unwanted interactions from happening. We state these rules and then show a function,daemonize, that implements them.编写一个没有交互功能的守护进程是有一定的步骤的。我们列出相关的步骤,并且给出

2012-12-02 22:37:52 525

转载 守护进程概念介绍

在linux或者unix操作系统中在系统的引导的时候会开启很多服务,这些服务就叫做守护进程。为了增加灵活性,root可以选择系统开启的模式,这些模式叫做运行级别,每一种运行级别以一定的方式配置系统。 守护进程是脱离于终端并且在后台运行的进程。守护进程脱离于终端是为了避免进程在执行过程中的信息在任何终端上显示并且进程也不会被任何终端所产生的终端信息所打断。守护进程简介  守护进程,也就是

2012-12-02 22:33:05 948

slickedit color theme solarized

slickedit color theme solarized

2013-11-27

slickedit bitstream vera fonts

slickedit bitstream vera fonts

2013-11-27

slickedit v18 18.0.1.2 序列号 破解

亲测windows7 32,ubuntu12.0.4 64 内附序列号生成软件 read_me.txt为详细使用方法。

2013-11-26

slickedit 2013 v18 win linux mac

slickedit 2013 v18 (18.0.1.2) 包含win mac linux 32/64 但个人使用的是linux 64位的 se_18000102_linux64.tar.gz

2013-11-22

UNIX环境高级编程

UNIX环境高级编程(第二版中文) 影印版

2012-12-24

空空如也

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

TA关注的人

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