自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (2)
  • 收藏
  • 关注

转载 基于MTD的NANDFLASH设备驱动底层实现原理分析 三

实在写不下去了,仔细的想了一想还是把mtd/nand/s3c2410.c好好的分析分析在Linux中NANDFLASH设备驱动是被注册成平台驱动的。我还是从函数的入口出发一步一个脚印的分析。突然间发现这些代码真的很经典由于这一次CPU是S3C2440所以分析过程中会把其他的CPU去掉七、mtd/nand/s3c2410.c函数的解析1、函数中出现的几个结构体

2013-06-28 16:51:27 943

转载 基于MTD的NANDFLASH设备驱动底层实现原理分析 二

进过前面对NANDFLASH的一些硬件特性以及MTD的上层操作已经有了一个大体概念,这些东西的重要性就像你要吃饭那么你首先得学会拿筷子道理一样吧,应该一样的。五、MTD原始设备层和硬件驱动层的桥梁:    熟悉这几个重要的结构体:linux/mtd/mtd.hstruct mtd_info {    u_char type;               /*

2013-06-28 16:49:05 1084

转载 基于MTD的NANDFLASH设备驱动底层实现原理分析 一

一、MTD体系结构:Linux内核提供MTD子系统来建立FLASH针对Linux的统一、抽象接口。MTD将文件系统与底层的FLASH存储器进行隔离。      引入MTD后Linux系统中对FLASH的设备驱动分为4层    设备节点:用户在/dev目录下使用mknod命令建立MTD字符设备节点(主设备号为90),或者MTD块设备节点(主设备号为31),使用该设备节

2013-06-28 16:46:49 1556

转载 linux内核函数fls()

[cpp] view plaincopy/**  * fls - find last (most-significant) bit set  * @x: the word to search  *  * This is defined the same way as ffs.  * Note fls(0) = 0, fls(1) = 1, fls

2013-06-28 10:18:27 7430

转载 mtd坏块管理

0.NAND的操作管理方式     NAND FLASH的管理方式:以三星FLASH为例,一片Nand flash为一个设备(device),1 (Device) = xxxx (Blocks),1 (Block) = xxxx (Pages),1(Page) =528 (Bytes) = 数据块大小(512Bytes) + OOB 块大小(16Bytes,除OOB第六字节外,通常至少把O

2013-06-27 15:49:13 3160

转载 怎样理解阻抗匹配

阻抗匹配是指信号源或者传输线跟负载之间的一种合适的搭配方式。阻抗匹配分为低频和高频两种情况讨论。我们先从直流电压源驱动一个负载入手。由于实际的电压源,总是有内阻的(请参看输出阻抗一问),我们可以把一个实际电压源,等效成一个理想的电压源跟一个电阻r串联的模型。假设负载电阻为R,电源电动势为U,内阻为r,那么我们可以计算出流过电阻R的电流为:I=U/(R+r),可以看出,负载电阻R越小,则输出电流

2013-06-27 15:28:02 1159

转载 关于module_param()宏

为了增加驱动程序的灵活性,内核允许对驱动程序指定参数,而这些参数可在加载驱动程序模块时改变。这些参数的值可由 insmod 或者 modprobe 在加载时指定; 后者也可以从它的配置文件(/etc/modprobe.conf)读取参数的值。这两个命令可在命令行里接受几种参数类型的赋值。在用户态下编程可以通过main()的来传递命令行参数,而编写一个内核模块则通过modul

2013-06-27 15:24:47 1237 1

转载 mtd 介绍

MTD,Memory Technology Device即内存技术设备字符设备和块设备的区别在于前者只能被顺序读写,后者可以随机访问;同时,两者读写数据的基本单元不同。字符设备,以字节为基本单位,在Linux中,字符设备实现的比较简单,不需要缓冲区即可直接读写,内核例程和用户态API一一对应,用户层的Read函数直接对应了内核中的Read例程,这种映射关系由字符设备的file_op

2013-06-25 10:29:15 24557

转载 linux __setup

本文来自:http://blog.chinaunix.net/uid-13798723-id-2871394.html介绍的很详细,我也正好用了一次__setup(),蛮好用的:),今天回头看main.c,又搜索了一下,分享给大家: __setup(//做了一次完整的盗贼,我毫无修改的抄袭了一次,但有时间会做量身裁减的//from

2013-06-20 18:40:44 3256

原创 Linux内核模块的概念和基本的编程方法

Linux设备驱动会以内核模块的形式出现,因此,学会编写Linux内核模块编程是学习Linux设备驱动的先决条件。4.1~4.2节讲解了Linux内核模块的概念和结构,4.3~4.8节对Linux内核模块的各个组成部分进行了展现,4.1~4.2与4.3~4.8节是整体与部分的关系。4.9节说明了独立存在的Linux内核模块的Makefile文件编写方法和模块的编译方法。4.1 Linu

2013-06-14 18:29:59 3459

原创 关于字节顺序的转换 -- linux-2.4.26\include\linux\byteorder

在处理网络数据包的时候,牵涉到字节顺序的变换,下边是源代码,很清晰的表示了怎么进行大端小端的字节转换。主要是在编程中要知道这几个宏定义的意义。#ifndef _LINUX_BYTEORDER_SWAB_H#define _LINUX_BYTEORDER_SWAB_H/* * linux/byteorder/swab.h * Byte-swapping, independen

2013-06-13 18:40:10 1040

原创 网络结构及mac和phy介绍

这两天想看看网卡驱动,就先收集了一些网络结构的相关资料,这些基本上都是凑的,是伪原创  网络七层协议OSI是一个开放性的通行系统互连参考模型,他是一个定义的非常好的协议规范。OSI模型有7层结构,每层都可以有几个子层。 OSI的7层从上到下分别是 7 应用层 6 表示层 5 会话层 4 传输层 3 网络层 2 数据链路层 1 物理层 其中高层,既7、6、

2013-06-09 13:21:31 7797

转载 关于linux和shell的相关书籍

工作几年来,一直从事Linux内核驱动方面的开发。从接触Linux到现在,读过不少Linux方面的书籍,现把认为很不错的一部分列出来和大家分享一下。入门类     一直认为,在一个系统上学习开发之前,首先需要熟悉这个系统的使用。鉴于天朝的国情,绝大部分人第一个接触的操作系统就是Windows,因此对于这绝大部分人来说,如果要学习Linux开发,学会使用这个系统都是必不可少的一个环节。

2013-06-07 10:06:59 7456

深入linux设备驱动程序内核机制

这是一本系统阐述Linux设备驱动程序技术内幕的专业书籍,它的侧重点不是讨论如何在Linux系统下编写设备驱动程序,而是要告诉读者隐藏在这些设备驱动程序背后的那些内核机制及原理。作者通过对Linux内核源码抽丝剥茧般的解读,再辅之以精心设计的大量图片,使读者在阅读完本书后对驱动程序前台所展现出来的那些行为特点变得豁然开朗。 本书涵盖了编写设备驱动程序所需要的几乎所有的内核设施,比如内核模块、中断处理、互斥与同步、内存分配、延迟操作、时间管理,以及新设备驱动模型等内容。为了避免读者迷失在某一技术细节的讨论当中,本书在一个比较高的层面上进行展开,以一种先框架再细节的结构安排极大地简化了读者的阅读与学习。

2013-05-20

空空如也

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

TA关注的人

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