- 博客(37)
- 资源 (15)
- 收藏
- 关注
转载 Linux的Netfilter框架深度思考-对比Cisco的ACL-
在前面0.1.本文不涉及具体实现,也不涉及源代码,不剖析代码0.2.本文不争辩Linux或者Cisco IOS不同版本之间的实现细节0.3.本文不正确处请指出Cisco无疑是网络领域的领跑者,而Linux则是最具活力的操作系统内核,Linux几乎可以实现网络方面的所有特性,然而肯定还有一定的优化空间,本文首先向Cisco看齐,然后从不同的角度分析Netfilter的对应特性,最
2014-07-31 14:18:56 613
转载 Linux串口上网的简单实现
Linux为串口上网提供了丰富的支持,比如PPP(Peer-to-Peer Protocol, 端对端协议)和SLIP(Serial Line Interface Protocol, 非常老的串行线路接口协议),这里所说的"上网"是指把串口当成一个网络接口,通过封装网络数据包(如IP包)以达到无网卡的终端可以通过串口进行网络通信。但是使用这两种协议必须得到内核的支持。例如,如果在没有配置PPP的L
2014-07-30 16:40:01 1179
转载 澄清关于TUN/TAP的概念
澄清关于TUN/TAP的概念 --初看VTUN的源代码 近期看了一些关于Linux下的虚拟网卡设备的文章,都写得不错,比如IBM developerWorks和china unix上的,解释了相关的驱动程序设计的问题。 但当我自己初看了VTUN的源代码,发现还是有些美中不足的地方。先把自己的看法抛砖引玉,希望大家一起探讨。最近很少用CSDN
2014-07-30 11:43:42 3346 1
转载 虚拟网卡 TUN/TAP 驱动程序设计原理
简介虚拟网卡Tun/tap驱动是一个开源项目,支持很多的类UNIX平台,OpenVPN和Vtun都是基于它实现隧道包封装。本文将介绍tun/tap驱动的使用并分析虚拟网卡tun/tap驱动程序在linux环境下的设计思路。tun/tap驱动程序实现了虚拟网卡的功能,tun表示虚拟的是点对点设备,tap表示虚拟的是以太网设备,这两种设备针对网络包实施不同的封装。利用tun/tap驱动
2014-07-30 11:37:09 574
转载 享元模式及C++实现
享元模式(flyweight)flyweight是轻量级的意思,中文这边翻译成享元,更容易让人理解一些。享元模式是为了应对大量细粒度对象重复的问题。程序中存在大量细粒度的对象,每次要使用时都必须创建一个新的对象,既影响了运行效率又增加了内存消耗。于是有了享元模式,享元模式提取出这些细粒度对象中间公共的状态(属性,我的理解),只生成一个实例对象,所有用到这些公共属性对象的地方,都指向
2014-07-23 11:39:52 467
转载 装饰者模式及C++实现
装饰者模式时常会遇到这样一种情况,我已经设计好了一个接口,并且也有几个实现类,但是这时我发现我设计的时候疏忽了,忘记了一些功能,或者后来需求变动要求加入一些功能,最简单的做法就是修改接口,添加函数,然后继承类中都相应的添加实现,这样做倒也没什么问题,但是如果这种变化来个好几次或者继承类非常多,那工作量可就大了。这时大神们就发明了装饰者模式,在不修改现在有接口和实现类的基础上实现功能
2014-07-23 11:22:11 430
转载 桥接模式及C++实现
桥接模式先说说桥接模式的定义:将抽象化(Abstraction)与实现化(Implementation)分离,使得二者可以独立地变化。桥接模式号称设计模式中最难理解的模式之一,关键就是这个抽象和实现的分离非常让人奇怪,大部分人刚看到这个定义的时候都会认为实现就是继承自抽象,那怎么可能将他们分离呢。这里引用《大话设计模式》里面的那个例子。这个例子中,每次添加一个新的手机品牌,
2014-07-23 11:08:31 471
转载 适配器模式及C++实现
适配器模式适配器模式是很好理解的模式了,生活中也非常常见,什么插头2口转3口,什么USB转PS2,这都算是适配器模式。说白了,就是如果有一些东西提供的接口你很像用,但是你手头没有好的接口使用它,这个就需要一个适配器,将你需要的接口转换成你所拥有的接口。这样的好处也是显而易见,就是你不用改变你现在所拥有的接口,保证你在任何地方的用法都不需要修改,然后底层的实现由适配器调用需要的接口来具体实现
2014-07-23 10:37:48 475
转载 C++中引用和指针的区别
下面用通俗易懂的话来概述一下:指针-对于一个类型T,T*就是指向T的指针类型,也即一个T*类型的变量能够保存一个T对象的地址,而类型T是可以加一些限定词的,如const、volatile等等。见下图,所示指针的含义:引用-引用是一个对象的别名,主要用于函数参数和返回值类型,符号X&表示X类型的引用。见下图,所示引用的含义:2、指针和引用的区别
2014-07-21 10:14:11 389
转载 Android系统的移植要做的两个工作
Android系统的移植的主要目的是为了能在特定的硬件上运行Android系统。而在移植的过程中,一个重要的方面就是把握关键要点,减少工作量。从工作的角度,首先要熟悉硬件抽象层的接口,其次要集成和复用已有的驱动程序,主要的工作量在硬件抽象层的实现中。为了更好地理解和调试系统,也应该适当地了解上层对硬件抽象层的调用情况。 移植方面主要的工作有两个部分: Linux驱动
2014-07-09 14:51:19 2059
转载 CSMA/CA与CSMA/CD的区别
1.CSMA/CD媒体访问控制协议 由于以太网(Ethernet)成为现存局域网络结构的绝大多形式,CSMA/CD(Carrier Sense Multiple ACcess/Collision Detection)载波监测多址接人协议也成为局域网采用最多的MAC协议。CSMA/CD适宜于总线型局域网拓扑结构的随机竞争型媒体访问控制。总线型网络允许同一时刻只有一个节点(Node)发送
2014-07-09 11:51:23 1552
转载 C++与Java的语法区别
C++与Java的语法区别首先,两个大的不同是主函数和怎样编译的不同,接下来是许多小的区别。main 函数C++//自由浮动的函数int main( int argc, char* argv[]){ printf( "Hello, world" );}Java// 每个函数都必须是一个类的一部分;当java 运行是一个特定类的主函数会被调用
2014-07-08 16:30:07 684
转载 Android做了些什么?
Android主要有6部分 Applications (java)-------------------------------- FrameWork (java)===================================== | Core Libraries external Lib | ----
2014-07-08 11:42:31 502
转载 嵌入式Linux之我行——S3C2440上LCD驱动(FrameBuffer)实例开发讲解
嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux中的每个步骤。一为总结经验,二希望能给想入门嵌入式Linux的朋友提供方便。如有错误之处,谢请指正。共享资源,欢迎转载:http://hbhuanggang.cublog.cn一、开发环境主 机:VMWare--Fedora 9开发板:Mini2440--64MB Nand, Kernel:2.6.30.4编译
2014-07-08 11:00:55 935
转载 Linux-2.6.20的LCD驱动分析
一、让LCD显示可爱的小企鹅还是先说说环境吧,处理器为S3C2410,linux的版本当然是2.6.20的。下面先说说怎样让LCD上显示出可爱的小企鹅。最直接的步骤如下(记住不要问为什么哈~_~,一步一步跟着走就行了):1. 添加s3c2410处理器的LCD控制寄存器的初始值,具体做法为在文件arch/arm/mach-s3c2410/mach-smdk2410.c中添加str
2014-07-07 17:31:40 490
转载 Linux-2.6.25内核帧缓冲设备驱动分析
帧缓冲(framebuffer)设备应用于linux显示技术方面。因为linux的显示平台已经全部基于framebuffer,所以目前在linux环境下开发图形化界面、游戏、影视软件等可视化应用时都必须用到帧缓冲技术,而现在随着消费逐渐娱乐化的大趋势,可视化应用已经在产品开发中越来越重要,因此,对于帧缓冲技术的理解和掌握就非常重要了。1 Frambuffer介绍 帧缓冲在li
2014-07-07 15:19:48 479
转载 S3C2410看门狗驱动分析
根据linux中总线、设备和驱动这个模型来看,所有的设备驱动都挂在总线上,并且驱动应该是和平台无关的。唯一和平台有关的一类驱动应该是芯片内部的各个控制器的驱动,例如芯片内部I2C控制器,芯片内部LCD控制器,芯片内部看门狗等等。如果是一个外部的LCD控制器的驱动程序,它的实现一定要和平台无关,这样针对不同的平台只要修改板级文件即可,而不需要修改驱动程序本身。从linux内核源代码中的S3c2410
2014-07-07 10:09:13 727
转载 Linux DM9000网卡驱动程序完全分析
版权声明: 可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息。说明1:本文分析基于内核源码版本为linux-2.6.31 说明2:本文在理解了linux中总线、设备和驱动模型的基础上加以分析代码 虽然Linux驱动程序应该是和具体的硬件平台分离的,但是为了更好的理解DM9000的驱动程序,这里还是结合一下Mini2440开发板,这样也可以更好的体会如何实现驱动和
2014-07-05 15:39:28 2204
转载 Android HAL实例解析
华清远见讲师 刘洪涛一、概述 本文希望通过分析台湾的Jollen的mokoid 工程代码,和在s5pc100平台上实现过程种遇到的问题,解析Andorid HAL的开发方法。 二、HAL介绍 现有HAL架构由Patrick Brady (Google) 在2008 Google I/O演讲中提出的,如下图。 Android的HAL是
2014-07-03 17:27:11 560
转载 GUI界的大战:QT VS GTK
Qt 是一个跨平台的 C++ 图形用户界面库,由挪威 TrollTech公司出品,目前包括Qt, 基于 Framebuffer 的 Qt Embedded,快速开发工具 Qt Designer,国际化工具 Qt Linguist 等部分. Qt支持所有 Unix 系统,当然也包括 Linux,还支持WinNT/Win2k,Win95/98 平台。 Trolltech 公司在
2014-07-03 16:33:45 765
转载 基于GTK的USB视频采集程序
基于GTK的USB视频采集程序 查了几天的资料,今天终于将USB摄像头测试程序调试成功了。这个测试程序很简单,功能就是将USB摄像头采集的数据显示在屏幕上。写这个程序的目的是熟悉usb摄像头的一些基本操作方法,为以后在开发板上编写视频采集程序打好基础。本测试程序包括两部分:一是视频采集部分,主要通过v4l2接口操作摄像头,将采集的视频帧存放在内存缓冲区。二是显示部分,将视频缓
2014-07-03 15:50:52 1578
转载 基于mini2440的USB视频采集
基于mini2440的USB视频采集 在嵌入式系统中,视频采集主要采用两种接口:一种是标准摄像头接口,一种是USB接口(USB1.1)。标准的摄像头接口,接口复杂,但传输速度快,适合高质量视频采集,而USB接口,接口简单,但有性能瓶颈,只能用于低质量的视频采集。mini2440开发板采用的是S3C2440芯片,S3C2440自带了一个OHCI的USB1.1主机接口和一个CMOS摄...
2014-07-03 15:10:52 1087 1
转载 Linux USB Gadget--设备枚举
前面介绍了Linux USB Gadget的软件结构与各软件层的整合过程。经过各种注册函数,Gadget功能驱动层,USB设备层与UDC底层结合在了一起形成了一个完整的USB设备。而这个设备已经准备好了接受主机的枚举。在介绍USB设备枚举之前。先熟悉一下各层通信所用的数据结构,在USB主机端编写USB设备驱动程序,最重要的结构就是URB了,我们只需要将各种URB提交给USB核心,核心就会自动给我们
2014-07-03 14:40:52 1199
转载 Linux USB Gadget--各环节的整合
Linux USB Gadget软件结构一文中分析Linux USB Gadget软件分为三层。这三层其中两层是与硬件无关的,分别是Gadget功能驱动层,USB设备层。一层是与硬件相关的是UDC层。每一层都提供一种关键的数据结构与函数与其他层交互。 Gadget功能驱动层: 最主要的结构是struct usb_composite_driver,这个结构在这层定义,并且实现结构
2014-07-03 13:23:24 693
转载 Linux USB Gadget--软件结构
USB Gadget是分层的软件结构,本文分析的是2.6.32.2版本的Gadget软件结构,这个软件结构与以前版本的变化很大。USB Gadget软件结构总共分为三层:一. UDC层 这一层是与硬件相关层。相关文件s3c2410_udc.c s3c2410_udc.h。s3c2410设备控制器作为一个linux设备在这一层是作为platform设备而注册到linux设备模型
2014-07-03 10:57:30 842
转载 linux RTC 驱动模型分析
linux RTC 驱动模型分析 RTC(real time clock)实时时钟,主要作用是给Linux系统提供时间。RTC因为是电池供电的,所以掉电后时间不丢失。Linux内核把RTC用作“离线”的时间与日期维护器。当Linux内核启动时,它从RTC中读取时间与日期,作为基准值。在运行期间内核完全抛开RTC,以软件的形式维护系统的当前时间与日期,并在需要时将时间回写RTC芯片
2014-07-03 09:52:22 504
转载 linux背光子系统(backlight)
(基于linux2.6.34) 概述=====linux的背光(backlight)子系统用于在/sys目录下提供用户空间控制LCD或者其他显示设备的背光亮度的接口。这里的亮度并不是亮和灭两个状态,可有很多个等级的亮度,便于用户空间根据节能、可视范围等需求调节背光的亮度。相关代码======背光子系统的代码在/driver/video/backlight目录中。
2014-07-01 16:55:38 1385
转载 amba_device使用分析
什么是AMBA? ---AMBA是一个片内总线规范。ARM官网的介绍:http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0224b/index.htmlAMBA 协议是用于连接和管理片上系统 (SoC) 中功能块的开放标准和芯片上互连规范。使用它,可以帮助开发带有大量控制器和外设的多处理器设计。AMBA 通
2014-07-01 16:48:10 796
转载 ARM amba总线驱动(转)
1).总线的注册/** Primecells are part of the Advanced Microcontroller Bus Architecture,* so we call the bus "amba".*/static struct bus_type amba_bustype = { .name = "amba", .dev_a
2014-07-01 16:20:10 2565
转载 Linxu下的串口编程(二)
Linxu下的串口编程(二) ---------------------------------------------------------Author :tiger-johnWebSite :blog.csdn.net/tigerjbEmail :jibo.tiger@gmail.comUp
2014-07-01 16:03:56 525
转载 Linux 下的串口编程(一)
Linux下串口编程要知道的那些事---------------------------------------------------------Author :tiger-johnWebSite :blog.csdn.net/tigerjbEmail :jibo.tiger@gmail.comTiger声明:本人鄙视直接复制本人文章而不加出处的个人或团体,但不排
2014-07-01 15:48:29 543
转载 UART0串口编程系列之前奏篇
串口编程之前奏篇------------------------------------------------------------------------Author :tiger-johnWebSite :blog.csdn.net/tigerjbEmail :jibo.tiger@gmail.comUpdate-Time : 2011年1月30日星
2014-07-01 15:30:30 649
转载 Linux内核链表的研究与应用
Linux内核链表的研究与应用(“2012年度CSDN博客之星”评选,欢迎为我投上一票,多谢)Author:tiger-johnTime:2012-12-20Mail:jibo.tiger@gmail.comBlog:http://blog.csdn.net/tigerjb/article/details/8299599转载请注明出处。前
2014-07-01 15:11:38 687
转载 Linux内核哈希表分析与应用
Linux内核哈希表分析与应用Author:tiger-johnTime:2012-12-20mail:jibo.tiger@gmail.comBlog:http://blog.csdn.net/tigerjb/article/details/8450995转载请注明出处。前言:1.基本概念:散列表(Hash table,也叫哈希
2014-07-01 15:05:58 697
转载 字符设备编程(四)之可爱的 misc
在我们前面所学的字符设备编程中,当我们写好字符设备驱动并加载成功后;要使我们所写的驱动层程序和应用层程序之间搭建起通信桥梁,要通过设备节点。很多时候,我们都是利用 mknod 命令手动创建设备节点;应用层程序通过设备节点 (open(“/dev/globalmem”,O_RDWR)) 和驱动层程序之间进行通话。注:此处的 globalmem 是创建的一个设备节点名 > 。我
2014-07-01 13:40:47 1329
转载 为什么linux驱动要专门有杂项设备呢?字符设备不就可以了吗?
在我看来有两个主要原因。第一,节省主设备号:使用普通字符设备,不管该驱动的主设备号是静态还是动态分配,都会消耗一个主设备号,这太浪费了。而且如果你的这个驱动最终会提交到内核主线版本上的话,需要申请一个专门的主设备号,这也麻烦。如果使用misc驱动的话就好多了。因为内核中已经为misc驱动分配了一个主设备号。当系统中拥有多个misc设备驱动时,那么它们的主设备号相同,而用子设备号来区
2014-07-01 13:15:16 1386
转载 Device Tree(三):代码分析
一、前言Device Tree总共有三篇,分别是:1、为何要引入Device Tree,这个机制是用来解决什么问题的?(请参考引入Device Tree的原因)2、Device Tree的基础概念(请参考DT基础概念)3、ARM linux中和Device Tree相关的代码分析(这是本文的主题)本文主要内容是:以Device Tree相关的数据流分析为索引
2014-07-01 11:48:43 10318
基于FPGA的视频采集
2011-04-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人