自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (19)
  • 收藏
  • 关注

转载 DM9000网卡驱动分析

原始出处:http://infohacker.blog.51cto.com/6751239/1221348Preface   内核源码版本:linux-2.6.18DM9000芯片   DM9000是一款高度集成低功耗快速以太网处理器,该芯片集成了MAC和PHY。DM9000可以和CPU直接连接,支持8位、16位和32位数据总线宽度。该芯片支持10M和100

2013-12-29 10:34:36 917

转载 网卡驱动·linux内核网络分层结构

原始出处:http://infohacker.blog.51cto.com/6751239/1221140   Linux内核对网络驱动程序使用统一的接口,并且对于网络设备采用面向对象的思想设计。   Linux内核采用分层结构处理网络数据包。分层结构与网络协议的结构匹配,既能简化数据包处理流程,又便于扩展和维护。内核网络结构   在Linu

2013-12-29 10:22:38 1085

转载 Linux中IS_ERR()函数的理解

在Linux源码中的fs部分,经常会碰到这样的函数(位于kernel/include/linux/fs.h):/* * Kernel>static>     retval = PTR_ERR(dir_page);    >IS_ERR()有一些妙处。内核中的函数常常返回指针,问题是如果出错,也希望能够通过返回的指针体现出来。所幸的是,内核返回的指针一般是指向页面的边

2013-12-25 22:06:39 914

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

项目需要,在驱动模块里用内核计时器timer_list实现了一个状态机。郁闷的是,运行时总报错“Scheduling>一、workqueue简介workqueue与tasklet类似,都是允许内核代码请求某个函数在将来的时间被调用(抄《ldd3》上的)每个workqueue就是一个内核进程。workqueue与tasklet的区别:   1.tasklet是通过软中断实

2013-12-25 20:26:03 990

转载 linux工作队列和等待队列的区别

work queue是一种bottom half,中断处理的后半程,强调的是动态的概念,即work是重点,而queue是其次。wait queue是一种「任务队列」,可以把一些进程放在上面睡眠等待某个事件,强调静态多一些,重点在queue上,即它就是一个queue,这个queue如何调度,什么时候调度并不重要。对这2个容易混淆的队列做简单概念上的区别,怎么用? 等待队列

2013-12-25 19:19:14 672

原创 中断处理中不能睡眠的原因

这个问题实际上是一个老生常谈的问题,答案也很简单,Linux在软中断上下文中是不能睡眠的,原因在于Linux的软中断实现上下文有可能是中断上下文,如果在中断上下文中睡眠,那么会导致Linux无法调度,直接的反应是系统Kernel Panic,并且提示dequeue_task出错。所以,在软中断上下文中,我们不能使用信号量等可能导致睡眠的函数,这一点在编写IO回调函数时需要特别注意。在最近的一个项目

2013-12-25 14:55:44 2535

转载 C++中extern “C”含义深层探索

原文地址:http://www.cppblog.com/Macaulish/archive/2008/06/17/53689.html1.引言  C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定

2013-12-16 10:54:08 378

转载 各种排序算法的稳定性和时间复杂度小结

选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。冒泡法:  这是最原始,也是众所周知的最慢的算法了。他的名字的由来因为它的工作看来象是冒泡:  复杂度为O(n*n)。当数据为正序,将不会有交换。复杂度为O(0)。直接插入排序:O(n*n)选择排序:O(n*n)快速排序:平均时间复杂度log2(n)*n,

2013-12-16 10:52:20 445

转载 ARM中断及其处理

1,关于硬件部分的介绍。1.1ARM920T的中断两种中断模式:FIQ,IRQ。1.2几个寄存器SRCPND:请求中断的中断源。可以有多个位被置为1,可读可写,用完清0。只对irq模式有效。INTPND:当前正在执行的中断服务程序。只有一个为被置为1,可读可写,用完清0只对irq模式有效。INTMOD:某一位置1,则该位的中断源被设置为FIQ模式,否则为IRQ模式。INTMSK:某

2013-12-16 10:43:22 808

转载 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_TX2440

2013-12-16 10:36:26 1055

转载 getaddrinfo函数

今天在看完APUE第16章:网络IPC:套接字后,就开始编写书中的示例代码,结果出现了问题:调用getaddrinfo函数时,返回错误:Servname not supported for ai_socktype,觉得很费解,就直接google之,发现下面这篇好文,不仅解决了问题,还使我更加理解了如何使用getaddrinfo来编写服务器/客户端程序。 原文地址:blog.csdn

2013-12-13 21:38:32 704

转载 linux 信号量

Linux信号量(semaphore)是一种互斥机制。即对某个互斥资源的访问会收到信号量的保护,在访问之前需要获得信号量。在操作完共享资源后,需释放信号量,以便另外的进程来获得资源。获得和释放应该成对出现。       获得信号量集,需要注意的是,获得的是一个集合,而不是一个单一的信号量。       #include        #include        #inclu

2013-12-11 18:45:40 689

转载 poll函数

poll函数起源于SVR3,最初局限于流设备。SVR4取消了这种限制,允许poll工作在任何描述字上。poll提供的功能与select类似,不过在处理流设备时,它能够提供额外的信息。  1.#include   2.  3.int poll(struct pollfd *fdarray, unsigned long nfds, int timeout);  4.

2013-12-08 20:11:30 420

转载 建议性锁和强制性锁

fcntl有强大的功能,它能够复制一个现有的描述符,获得/设置文件描述符标记,获得/设置文件状态标记,获得/设置异步I/O所有权,获得/设置纪录锁。当多个用户共同使用,操作一个文件的情况,Linux通常采用的方法就是给文件上锁,来避免共享资源产生竞争的状态。fcntl文件锁有两种类型:建议性锁和强制性锁建议性锁是这样规定的:每个使用上锁文件的进程都要检查是否有锁存在,当然还得尊重已

2013-12-08 19:23:38 637

转载 qt 的close和系统的close冲突。close(),close(fd)

系统函数使用::来调用,所以close(fd)应该这样:::close(fd);其他函数亦然。注意,别忘了加头文件:#include      /*Unix 标准函数定义*/          #include       /*文件控制定义*/

2013-12-06 11:07:26 1262

转载 守护进程,setsid()函数

守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进 程。Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任务。比如,作业规划进程crond,打印进程lpd等。守护进程的编程本身并不复杂,复杂的是各种版本的Uni

2013-12-06 09:53:54 514

转载 dup() 和 dup2()函数的介绍

dup() 和 dup2()  2011-10-07 11:06:31|  分类:Linux学习心得 |  标签:dup  dup2  linux  c  |字号 订阅dup和dup2都可用来复制一个现存的文件描述符,使两个文件描述符指向同一个file结构体。#include int dup(int newfd);int dup2(int n

2013-12-05 18:51:08 476

[rar文件] Ldd(linux设备驱动程序) snull修改文件

修改过的LDD snull.c,编译成功。 使用方法:可以直接覆盖makefile和snull.c。也可以只将patch文件拷到snull/下,运行patch -p1 < snull_2.6.32.patch。 该压缩文件包含snull.c,snull.h,Makefile,snull.ko,snull_2.6.32.patch文件。

2014-01-02

AT24C02驱动

在linux系统上面实现的at24c02的设备驱动,利用IIC设备总线架构完成的,在相关开发板文件中注册IIC设备,再安装该文件编译所得的模块即可。

2013-12-28

平台总线架构按键驱动

linux设备驱动,利用platform总线架构写的按键驱动,同时使用到input子系统实现。

2013-12-28

数据库课程设计,学生管理系统,sql

数据库课程设计,基于sql数据库,管理系统,功能完善,界面漂亮。

2012-10-19

C++课程设计,学习成绩管理系统

C++课程设计,学生成绩管理系统,包含代码和文档,绝对有用。

2012-08-16

电路实习报告

计算机电路,数字电路的实习报告,包含详细的实习过程,设计,画图,焊接,调试等。

2012-07-22

计算机网络 第五版

计算机网络,谢希仁的最新版,可供在校学生,开发人员参考,是一本很不错的书。

2012-07-22

数据结构课程设计

数据结构课程设计,文档百分之百有效,代码绝对能够运行,有关哈弗曼编码对字符串的加密解密,以及各个字符的哈弗曼编码的得到等。

2012-07-17

数据结构学习笔记

数据结构的学习笔记,对初学数据结构的读者有很好的帮助。

2012-02-29

wince启动流程

wince的开发,以及启动流程,让你充分学习驱动的结构……

2011-11-18

arm中NAND FLASH的应用 eboot的启动

介绍了eboot的启动流程,以及arm驱动,很值得学习!

2011-11-18

模拟的串口调试助手,VC编程

模拟,串口调试助手,VC编程,包括画出所采集的图像,形象实用,内部还包含许多实用的类。

2011-09-04

虚位的万能餐饮管理系统,适用于各个场合

万能的餐饮管理系统,包括登入的对话框,里面包含各种功能服务!适用于各种场合!

2011-08-10

自己编的音乐播放器,内部包含了很多功能!

包括音乐播放,打开文件,发送到移动盘,显示歌词等等功能!

2011-08-09

空空如也

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

TA关注的人

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