自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Linux 文件系统基础

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

2011-03-09 13:58:00 2065

转载 PPT不能播放下一页

现象:office其他软件word、excel都很正常,就是PPT打开后只能播放当前页,不能进入下一页!原因:c:\windows\system32\hlink.dll文件丢失,在ppt中播放时要加载hlink.dll。解决:如果文件没有丢失,重新注册动态链接库文件hlink.dll方法是开始→运行→输入regsvr32 hlink.dll无效再尝试重新安装软件包。

2012-10-13 07:11:51 7510

转载 die size

Die SizeThe die size of the processor refers to its physical surface area size on the wafer. It is typically measured in square millimeters (mm^2). In essence a "die" is really a chip, but it is onl

2012-02-02 17:12:26 3724

原创 换工作

已经很久没有写东西了,经历了很多的事情,心理也发生了很大的变化,记录一下。       一直不在状态的工作,致使到现在都还在工作的迷途中徘徊。原本7月份就换了工作,那时候对即将到来的工作充满量期待和希望,当我真正的投入到工作中时,我才发现那个工作不是我想要的,他们招聘的时候简直是欺骗,告诉你他们有多少新的项目要做,用多么高深的知识,用神马神马OS。不过我算运气,刚去不到一个月,原来的部门就被撤

2011-11-10 16:27:09 1488

转载 VxWorks下的信号量同步与互斥的应用

Wind内核中有二进制信号量、计数信号量和互斥信号量三种类型,为了是运用程序具有可移植性,还提供了POSIX(可移植操作系统接口)信号量 。在VxWorks中,信号量是实现任务同步的主要手段,也是解决任务同步的最佳选择。关于互斥的实现:           使用二进制信号量可以很方便的实现互斥,互斥是指多任务在访问临界资源时具有排他性。为了使多个任务互斥访问临界资源,只需要为该资源

2011-11-10 15:43:54 2629

转载 在Windows下删除Linux系统的方法(附修复MBR的工具下载)

在Windows下删除Linux系统的方法(附修复MBR的工具下载)<br />   我的电脑安装了双系统,Windows和Linux,不过由于Linux在最近一段时间内不会使用,所以我打算删除Linux。(我的电脑情况比较复杂,我在windows的基础上装了linux系统,又在windows中装了linux的虚拟机,由于虚拟机不能启动了,需要恢复虚拟机,所以把安装的linux系统给干掉了,我直接在windows下把linux的分区给删除了。当时搞的时候根本没有考虑到系统启动的问题,这样问题就来了,当我再次

2011-04-11 11:39:00 5127

原创 VMare不能重启

<br />几乎玩过虚拟机的人都经历过,突然掉电或者死机后,虚拟机不能正常启动的情况。虚拟机会给我的提示信息是:<br />Cannot open the disk 'D:/ubuntu/ubuntu.vmdk' or one of the snapshot disks it depends on.<br />Reason: The specified virtual disk need repair.<br />今天再次经历了这样的无奈。真是崩溃啦,以前遇到到过,没办法重装了系统,但现在虚拟机中有很多东西

2011-04-08 17:27:00 2350

转载 删除逻辑驱动器后的数据回复

<br />今天真是郁闷,虚拟机罢工了,为了恢复虚拟机,不小心又把windows下的分区给删除了。真是雪上加霜,那个心呀哇凉哇凉哩!三年的东西,没有了,那是什么概念!<br />赶快想办法恢复,上网搜,按照这篇文章说的,找到了分区,心里一块石头落地!转载一下。<br /> <br />有时候我们操作电脑的时候不小心删除分区了,或者删除完分区后才想起来磁盘里面还有很多数据呢 不要以为只有菜鸟才干得出这种事,我一个同事也算是老鸟了就做过这样的事,给误删了一个有数据的分区。<br />怎么办? 这时候我们一定非常

2011-04-08 15:35:00 4801 1

原创 yaffs文件系统制作

这两天做了yaffs根文件系统,今天整个可以启动,做点总结。1:下载yaffs的源码,并把yaffs加入的内核源码中,并不通过简单cp,而是运行yaffs源码中的一个脚本。到此在内核中已经加入了yaffs文件系统的配置选项,但这些选项并没有被配置,或者并不是你需要的配置。2:在内核源码目录中配置yaffs文件系统,目的就是把yaffs文件系统编译到kernel中。3:制作文件系统需要的命令集,需要有操作文件系统的命令集,所以我们要用busybox编译需要的命令集。步骤如下:     下载busybox的源码

2011-04-07 17:31:00 3229

转载 busybox简介和使用

1,busybox简介  busybox是一个集成了一百多个最常用linux命令和工具的软件,他甚至还集成了一个http服务器和一个telnet服务器,而所有这一切功能却只有区区1M左右的大小.我们平时用的那些linux命令就好比是分立式的电子元件,而busybox就好比是一个集成电路,把常用的工具和命令集成压缩在一个可执行文件里,功能基本不变,而大小却小很多倍,在嵌入式linux应用中,busybox有非常广的应用,另外,大多数linux发行版的安装程序中都有busybox的身影,安装linux的时候按c

2011-04-07 13:58:00 3809

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

转载 driver_register

<br />driver_register 注册设备驱动程序<br />下面代码是2.6.21内核的driver_register().<br />/* The one interesting aspect is that we setup @drv->unloaded<br />-* as a completion that gets complete when the driver reference<br />-* count reaches 0.<br />-*/<br /><br />driver

2011-02-24 17:44:00 3048

转载 class_create(),device_create自动创建设备文件结点

从linux内核2.6的某个版本之后,devfs不复存在,udev成为devfs的替代。相比devfs,udev有很多优势,在此就不罗嗦了,提醒一点,udev是应用层的东东,不要试图在内核的配置选项里找到它;加入对udev的支持很简单,以作者所写的一个字符设备驱动为例,在驱动初始化的代码里调用class_create为该设备创建一个class,再为每个设备调用 class_device_create创建对应的设备。(不太明白什么是devfs,udev,对linux中的文件系统没有什么概念呢。)大致用法如下:

2011-02-24 17:24:00 32190 6

原创 struct结构体和union联合体

<br /> 联合(union)  <br />    1. 联合说明和联合变量定义  <br />    联合也是一种新的数据类型, 它是一种特殊形式的变量。  <br />    联合说明和联合变量定义与结构十分相似。其形式为:  <br />     union 联合名{  <br />          数据类型 成员名;  <br />          数据类型 成员名;  <br />          ...  <br />     } 联合变量名;  <br />    联合表示几个变量公

2011-02-24 16:44:00 5562

转载 linux i2c驱动分析(转载)

1.Linux的I2C驱动架 Linux中I2C总线的驱动分为两个部分,总线驱动(BUS)和设备驱动(DEVICE)。其中总线驱动的职责,是为系统中每个I2C总线增加相应的读写方法。但是总线驱动本身并不会进行任何的通讯,它只是存在在那里,等待设备驱动调用其函数。 设备驱动则是与挂在I2C总线上的具体的设备通讯的驱动。通过I2C总线驱动提供的函数,设备驱动可以忽略不同总线控制器的差异,不考虑其实现细节地与硬件设备通讯。 (Sun备注:也许只看这样的说明有点不明白,可以联系一下301的I2C是如何做的。总线驱动

2011-02-18 11:46:00 1589 1

原创 uart_tty驱动架构分析

<br />       linux uart框架可以说分析了两年,年前的时候分析了uart层和uart驱动层的大概架构,但有很多疑问。年后接着分析了tty层。到现在好像有点眉目,记录一下,以便以后复习和做进一步的分析之用。如果那位大侠看到了这篇文章,希望能交流指点!<br /> <br />      此处更多的是分析uart驱动层,uart层,tty层直接的关系,并没有对层次内的函数做过多的分析。层次关系通过下图显示:<br /><br /> <br />      其中对uart层和Uart驱动层的分

2011-02-16 11:37:00 1240

转载 linux硬盘分区讲解

<br />   在学习 Linux 的过程中,安装 Linux 是每一个初学者的第一个门槛。在这个过程中间,最大的困惑莫过于给硬盘进行分区。虽然,现在各种发行版本的 Linux 已经提供了友好的图形交互界面,但是很多的人还是感觉无从下手。这其中的原因主要是不清楚 Linux 的分区规定,以及它下面最有效的分区工具― Fdisk 的使用方法。<br /> <br />     首先我们要对硬盘分区的基本概念进行一些初步的了解,硬盘的分区主要分为基本分区(primary partion)和扩充分区(exten

2011-02-13 14:08:00 21357

原创 chmod 改变文件夹下文件的权限

<br /><br />mode : 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...],其中u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。<br />+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。<br />r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。<br />-c : 若该档案权限确实已经更改,才显示其更改动作

2011-02-12 16:53:00 19617

原创 linux下移动设备的应用

<br />使用U盘很简单,挂载U盘、拷贝文件、卸载U盘,命令如下<br />cat /proc/partitions                       // 查看U盘的设备号,如果没有在/dev目录下创建相应的设备文件时,需要用命令mknod /dev/xxx b 主设备号 次设备号来创建设备文件<br /><br />mkdir /mnt/usb<br />mount -t vfat /dev/xxx  /mnt/usb<br />cp file /mnt/usb<br />cd ~ <br

2011-01-27 11:32:00 1141

原创 tty 设备

<br />基本概念: <br />  1>tty(终端设备的统称):<br />  tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被键盘与显示器取代,所以现在叫终端比较合适。<br />  终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。<br />  2>pty(伪终端,虚拟终端):<br />  但是如果我们远程telnet到主机或使用xterm时不也需要一个终端交互么

2011-01-25 15:00:00 4231

原创 Image zImage uImage

<br />       内核编译(make)之后会生成两个文件,一个Image,一个zImage,其中Image为内核映像文件,而zImage为内核的一种映像压缩文件,Image大约为4M,而zImage不到2M。 <br />      那么uImage又是什么的?它是uboot专用的映像文件,它是在zImage之前加上一个长度为64字节的“头”,说明这个内核的版本、加载位置、生成时间、大小等信息;其0x40之后与zImage没区别。 如 何生成uImage文件?首先在uboot的/tools目录下寻找

2011-01-12 16:08:00 1731

原创 2440 RTC

<br />在Linux 2.6.29版本下实现了RTC的功能,但没有测试过。<br /> <br />在linux 2.6.30版本下,之用字符设备实现RTC。<br />代码如下:<br />#include <asm/io.h><br />//#include <asm/arch/regs-rtc.h><br />#include <linux/interrupt.h><br />#include <linux/poll.h><br />//#include <linxu/devfs_fs_kerne

2011-01-11 18:08:00 1603

转载 platform_driver_probe()

<br />platform_driver_probe — register driver for non-hotpluggable device Synopsisint __init_or_module platform_driver_probe (struct platform_driver *  drv,  int (* probe(struct platform_device *));Argumentsdrv<br /> platform driver

2010-07-21 16:59:00 5278

转载 module_init, fs_initcall

ipv4内核初始化相关<br />已有 6249 次阅读2009-11-4 17:55<br />所在文件:<br />net/ipv4/af_inet.c<br />初始化函数定义:staticint__initinet_init(void)<br />初始化函数调用:fs_initcall(inet_init); //#define fs_initcall(fn)                 __define_initcall("5",fn,5)<br />这里的fs_initcall和mo

2010-07-21 16:31:00 13128

原创 编译 musb module

<br />修改了Kconfig 和Makefile文件,要编译musb module模块,但编译的结果是:系统提示这样的错误:<br />drivers/usb/musb/musb_io.h: In function ‘readsl’:<br />drivers/usb/musb/musb_io.h:44: error: implicit declaration of function ‘insl’<br />drivers/usb/musb/musb_io.h: In function ‘rea

2010-07-21 14:31:00 10250 1

原创 analysis the usb in linux

<br />I want to write something in Chinese, but I am the root in linux platform, there is no chinese input type. Ok, write in english.<br />In the usb directory, there are so many subdirectories, include of core, host, otg, musb, storage, serial, atm, gadg

2010-07-20 18:46:00 628

空空如也

空空如也

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

TA关注的人

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