自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

转载 Linux 文件系统基础

     这篇文章是关于linux文件系统的,但没有真正的解除我对文件系统的疑问,也记录一下。        文件系统指文件存在的物理空间,linux系统中每个分区都是一个文件系统,都有自己的目录层次结构。linux会将这些分属不同分区的、单独的文件系统按一定的方式形成一个系统的总的目录层次结构。一个操作系统的运行离不开对文件的操作,因此必然要拥有并维护自己的文件系统。linux文件系统使用索引节点来记录文件信息,作用像windows的文件分配表。     索引节点是一个结构,它包含了一个文件的长度、创建及

2011-03-09 13:58:00 2065

转载 input例子

<br />      测试usb键盘的过程中接触到了input子系统,所以了解一下。这篇文章没有解除我的疑问,但通过一个简单的例子说明了input子系统的底层驱动的要点,转载一下,学习。<br /> <br />一,前言: <br />1, 近日要写一个很特殊的键盘驱动,故对linux的input子系统分析了一番,写下分析笔记,以防不日即忘。<br />2, 使用input子系统的一般流程为:input_allocate_device()申请一个input_dev设备——>初始化该input_dev——>

2011-03-26 11:10:00 2200

转载 putty乱码解决

<br />       用putty从windows xp连接 server, 执行一些命令,结果信息只要是中文的就会乱码,最初还能够忍受,最后实在忍无可忍,去解决这个问题。<br />我的用户环境  LANG=zh_CN.UTF-8(不明白这是干吗用的)<br />1) 打开putty主程序,选择Change Settings –>Windows –> Appearance –>Font settings–>Change….,选择中文字体"黑体" (不一定必须是黑体,也可以是其他的中文字体),字符集选择

2011-03-24 12:41:00 1458

转载 linux字符cdev和Inode的关系

<br />本文所说的Inode是struct inode结构体,并不是在inode块中的inode结点。<br /> <br />Char Device Driver<br />  相关数据结构:<br />struct cdev {<br />struct kobject kobj;<br />  struct module *owner;<br />const struct file_operations *ops;<br />  struct list_head list;<br />dev_t d

2011-03-16 18:02:00 7665

原创 VFS文件系统

<br />linux内核在用户程序(或C标准库)和文件系统实现之间引入了一个抽象层。该抽象层称之为虚拟文件系统(Virtual File system),简称VFS。<br />VFS的任务并不简单。一方面,他用来提供一种操作文件、目录以及其他对象的同一方法(对上层应用层)。另一方面,它必须能够与各种给出的具体文件系统的实现达成妥协(对下层的具体的文件系统),这些实现在具体细节、总体设计方面都有一些不同之处。<br /> <br />文件系统的类型<br />文件系统分为三种类型<br />1、基于磁盘的

2011-03-16 16:44:00 3188

原创 inode 设备文件

设备并不是通过其文件名来标识,而是通过文件的主、次设备号标识(文件名和文件的主次设备号在设备文件的父目录的inode的数据区中表现出来的,这是fs层的东东)。设备文件和普通文件的区别:查看设备文件的命令为:ls -l /dev/1:访问权限前面的字母b/c,分别表示块设备和字符设备。2:设备文件没有文件长度,而增加了另外两个值,分别为主设备号和次设备号。二者共同形成一个唯一的号码,内核由此可以查找到对应的设备驱动程序。由于引入了udev机制,/dev不再放置到基于磁盘的文件系统中,而是使用tmpfs,这是R

2011-03-15 17:51:00 3507

转载 使用/sys文件系统访问Linux内核

<br />      这篇文章定性的分析了设备模型。也许fudan_adb的,还有http://blogold.chinaunix.net/u1/51562/showart_1077877.html都定量的分析了设备模型。我定量的分析了一个礼拜,总感觉有点说不明白。通过这篇定性的分析,先有点轮廓,以后随着驱动开发的深入,也许定量的分析会容易一点啦!<br /> <br />     在这也总结一下自己的理解。首先,我们的驱动和设备都是挂在总线上的,所以我们向内核注册设备或者是驱动时,必须有总线的存在。第一

2011-03-14 17:15:00 2443 1

转载 bus_register

上面分析了kobject.kset,ktype.这三个结构联合起来一起构成了整个设备模型的基石.而bus.device.device_driver.则是基于kobject.kset.ktype之上的架构.在这里,总线,设备,驱动被有序的组和在一起.Bus.device.device_driver三者之间的关系如下图所示: 如上图所示.struct bus_type的p->drivers_kset(struct kset)指向注册在上面的驱动程序.它的p->device_kset(struct kset)上挂

2011-03-12 17:07:00 9111

转载 无线网卡、无线上网卡

无线网卡介绍       先说无线网卡。有线网卡有一个RJ45接口(水晶头),通过双绞线连接到另一台电脑;或者连接到以太网交换机,再连接到服务器。通常各位坐在办公室的电脑通过网卡连上局域网就可以上互联网了,那是因为公司通过服务器或其他设备做了一个进到互联网的出口,如果出口卡住,你是上不了互联网的,只能在公司的局域网内转悠。或者这个出口给网管动了手脚,你就只能看部分网页,当然QQ就更加上不了了。这就是在公司通过网卡上网的弊病。 说回无线网卡,它的作用跟有线网卡一样,你的电脑装了无线网卡,或者你买了一台内置无线

2011-03-11 15:19:00 2472

转载 device_register()分析

      这篇文章也是从别的地方转载的,我的目的是当调用device_register()函数向系统注册一个设备的时候,我注册进去的设备是如何和他父设备关联起来的,以及如何加入到他所在的总线设备中的,但针对这个问题,好像通过这篇文章了解的并不透彻。但具体到代码反分析的最好关于设备和驱动是如何绑定的,这并不是我这篇文章的重点,但大概看了一下,有点类型i2c总线上设备和驱动的匹配过程。看下图:在分析程序的过程中看到了把kobj->kset赋值为(kset)device_kset,但没有看到什么时候把dev->

2011-03-10 16:58:00 20349

转载 Linux tar命令

语法:tar    [主选项+辅选项]    文件或者目录 使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。 主选项: c    创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。 r    把要存档的文件追加到档案文件的未尾。例如用户已经作好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。 t    列出档案文件的内容,查看已经备份了哪些文件。 u    更新文件。就是说,用新增的文

2011-03-10 11:00:00 2250 1

转载 linux 内存管理3

这篇是对第一篇内存管理的最好的补充。在支持MMU的32位处理器平台上,Linux系统中的物理存储空间和虚拟存储空间的地址范围分别都是从0x00000000到0xFFFFFFFF,共4GB,但物理存储空间与虚拟存储空间布局完全不同。Linux运行在虚拟存储空间,并负责把系统中实际存在的远小于4GB的物理内存根据不同需求映射到整个4GB的虚拟存储空间中。物理存储空间布局Linux的物理存储空间布局与处理器相关,详细情况可以从处理器用户手册的存储空间分布表(memory map)相关章节中查到,我们这里只列出嵌入

2011-03-07 14:53:00 2198 1

转载 Linux内存管理-高端内存

<br />      上一周一直在关注linux内存中3:1(3G:1G)的关系,并没有考虑到如果我的物理内存大于1G,那么内核空间1G的虚拟空间如何映射整个物理内存呢?以及内核是如何管理这大于1G的物理内存的。<br /> <br />下面是转载的文章,解释了这个疑问。<br /> <br />高端内存是指物理地址大于 896M 的内存。对于这样的内存,无法在“内核直接映射空间”进行映射。<br /><br />为什么?<br />  因为“内核直接映射空间”最多只能从 3G 到 4G,只能直接映射 1

2011-03-07 14:05:00 5253

原创 linux 内存管理

      这两天一直为linux内存中的4G的逻辑空间的3:1的用户空间:内核空间的分配纠结,在网上看了不少文档也把那些书都搬出来啦,具体没有看到哪个地方直接解除我心中的疑惑,但从中间也澄清了很多概念。记录如下,以便以后复习。     在华为笔试的时候有这样一个题,局部变量,全局变量,静态变量分别分别在什么空间中,当时应该是凭感觉写了,结构是很糟糕。在网上看到有关于这点的,转一下,http://blog.csdn.net/kanghua/archive/2007/10/22/1837872.aspx。  

2011-03-04 17:51:00 1379

原创 rtl code

<br />RTL code: Register-Transfer-Level code ,通常由VHDL/verilog两种语言进行描述Dataflow models of combinational logic describe concurrent operations on signals ,usually in a    synchronous  machine ,where computations are initiated at the active edges of a clock and

2011-03-02 11:27:00 3125

原创 linux i2c驱动总结

<br />最近几天一直在看I2C的驱动架构,看到目前的感觉是说明白吧又不是很透彻,说不明白吧又知道点,总之有点不明白。<br />明白的:<br />1)adapter驱动,I2C控制器驱动,如果要开发I2C控制器的,这部分是要实现的。这部分要填充struct i2c_adapter<br />     结构图和struct alogrithm结构体.<br />2)设备驱动,I2C从设备驱动,主要填充struct i2c_driver结构体;还要根据从设备的类型,实现从设备的驱动函数(eg:<br />

2011-03-01 11:36:00 4709

空空如也

空空如也

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

TA关注的人

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