自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Linux NAND FLASH驱动代码分析

FLASH驱动在嵌入式系统中有着举足轻重的位置,而目前市场上NAND FLASH的价格又要便宜与NOR FLASH,随着越来越多的平台支持从NAND FLASH中启动,掌握NAND flash的驱动编写有着重要的现实意义,由于内核已经完成了大部分的工作,实际工作中大部分工程师对NAND FLASH驱动只是简单的修改,对其工作原理并不太清楚,下面我们来分析一下NAND FLASH的代码流

2010-04-24 23:51:00 496

原创 浅谈malloc与 calloc、realloc、new 的区别

写此文章,主要是让初学者,能够清楚的认识malloc,calloc, realloc,与new之间的区别相关函数原型: #include void *calloc(size_t nmemb, size_t size);void *malloc(size_t size);void free(void *ptr);void *realloc(void *pt

2010-04-24 23:51:00 639

转载 嵌入式linux上QT标准键盘输入的实现

在嵌入式平台上运行QTE时,使用的键盘通常不是标准键盘,而是嵌入式设备外扩的普通按键。那么实现QTE键盘输入的方法大体上可以分为两类:(1)编写一个普通按键驱动,然后开辟一个QT线程读取按键值,在通过信号把按键值发送出去。需要接收键盘输入的目标,声明槽函数,接收键盘信号。         (2)将按键驱动编写成标准键盘驱动,让QTE感觉和标准键盘在打交

2010-04-24 23:50:00 714

转载 一个通用Makefile的编写

我们在Linux环境下开发程序,少不了要自己编写Makefile,一个稍微大一些的工程下面都会包含很多.c的源文件。如果我们用gcc去一个一个编译每一个源文件的话,效率会低很多,但是如果我们可以写一个Makefile,那么只需要执行一个make就OK了,这样大大提高了开发效率。但是Makefile的语法规则众多,而且缺乏参考资料,对于初学者来说,写起来还是有一定的难度,往往令很多人望而生畏

2010-04-24 23:50:00 454

转载 计算机系统总线基础

一. 总线的概念在计算机系统中,不同的子系统必须具有连接彼此的接口,比如,内存和处理器需要通信,处理器和I/O设备也需要通信。这些工作都是由总线来完成的。总线就是一条共享的通信链路,它用一套线路来连接多个子系统。下图是一个典型的计算机总线示意图:总线结构的两个主要优点是功能多和成本低。通过定义一种连接方案,就能够方便的添加新设备,比如我们可以轻松的为自己的笔记本扩展内存

2010-04-24 23:49:00 532

转载 PCI总线系统体系结构

PCI (Peripheral Component Interconnect)总线是一种高性能局部总线,是为了满足外设间以及外设与主机间高速数据传输而提出来的。在数字图形、图像和语音处理,以及高速实时数据采集与处理等对数据传输率要求较高的应用中,采用PCI总线来进行数据传输,可以解决原有的标准总线数据传输率低带来的瓶颈问题。PCI是目前计算机插卡式外设总线的事实标准。PCI提供了一

2010-04-24 23:48:00 817

转载 Linux PCI驱动的编写

PCI是外围设备互联的简称(Peripheral Component Interconnect)的简称,作为一种通用的总线接口标准,他在计算机系统中得到了广泛的使用。PCI的速度能够达到132M/s。在这里简单的介绍一下 linux 下PCI驱动的实现。在编写一个PCI驱动的时候我们先得确定系统中是否有我们的设备。我们可以通过lspci查看PCI设备。[root@localho

2010-04-24 23:47:00 442

转载 实例解析linux内核I2C体系结构

一、概述谈到在linux系统下编写I2C驱动,目前主要有两种方式,一种是把I2C设备当作一个普通的字符设备来处理,另一种是利用linux I2C驱动体系结构来完成。下面比较下这两种驱动。第一种方法的好处(对应第二种方法的劣势)有:         ●    思路比较直接,不需要花时间去了解linux内核中复杂的I2C子系统的操作方法。第一种方法问题

2010-04-24 23:22:00 712

转载 基于Socket的UDP和TCP编程介绍

一、概述 TCP(传输控制协议)和UDP(用户数据报协议是网络体系结构TCP/IP模型中传输层一层中的两个不同的通信协议。 TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流,TCP套接口是字节流套接口(stream socket)的一种。 UDP:用户数据报

2010-04-24 23:20:00 567

转载 mdev实现U盘或SD卡的自动挂载

mdev是busybox中的一个udev管理程序的一个精简版,他也可以实现设备节点的自动创建和设备的自动挂载,只是在实现的过程中有点差异,在发生热插拔时间的时候,mdev是被hotplug直接调用,这时mdev通过环境变量中的 ACTION 和 DEVPATH,来确定此次热插拔事件的动作以及影响了/sys中的那个目录。接着会看看这个目录中是否有“dev”的属性文件,如果有就利用这些信息为

2010-04-24 23:19:00 493

转载 标准IO与文件IO 的区别

先来了解下什么是标准IO以及文件IO。标准IO:标准I/O是ANSI C建立的一个标准I/O模型,是一个标准函数包和stdio.h头文件中的定义,具有一定的可移植性。标准IO库处理很多细节。例如缓存分配,以优化长度执行IO等。标准的IO提供了三种类型的缓存。 (1)全缓存:当填满标准IO缓存后才进行实际的IO操作。         (2)行缓存:当输入或输出

2010-04-24 23:19:00 423

转载 Udev实现U盘或SD卡的自动挂载

Linux传统上使用静态设备创建的方法,在dev下创建了大量的节点,而不管这些节点相应的硬件设备是否存在。采用udev的方法,系统检测到设备才会去创建这些设备对应的节点。这里我们简单的说一下udev的工作原理:Udev是依赖于sysfs的,当系统中添加一个新的设备后,内核检测到后就会产生一个hotplug event并查找/proc/sys/kernel/hotplug去找出

2010-04-24 23:18:00 547

转载 SDRAM工作原理及S3C2410 SDRAM控制器配置方法

SDRAM的工作原理、控制时序、及相关控制器的配置方法一直是嵌入式系统学习、开发过程中的一个难点。掌握SDRAM的知识对硬件设计、编写系统启动代码、提高系统存取效率、电源管理都有一定的意义。本文想通过:1.SDRAM的工作原理。        2.HY57V561620 SDRAM介绍。        3.S3C2410和HY57V561620的接线方法。        4.S

2010-04-24 23:16:00 505

原创 Linux启动过程剖析

Linux启动过程的剖析能帮助那些想深入学习Linux用户建立一个相关Linux启动过程的清晰概念,进而可以进一步研究Linux接下来是如何工作的。Linux启动过程如下:当用户打开PC的电源,BIOS开机自检,按BIOS中设置的启动设备(通常是硬盘)启动,接着启动设备上安装的引导程序 lilo或grub开始引导Linux,Linux首先进行内核的引导,接下来执行init程序,init程序

2010-04-24 23:02:00 409

原创 关于函数传参及返回值

很多刚学指针的人多会遇到这样的情况,就是你给一个函数传递一个指针变量,在这个函数中为这个指针申请空间,赋值,可是等函数结束后这个指针还是一个空指针,对其的操作编译器会报段错误或干脆给你一个莫名其妙的值,这是一个随机数。如:#include #include int my_fun(int *p) {        p = (int *

2010-04-24 22:42:00 419

转载 Linux图形界面中客户端、服务器、窗口管理器之间的关系

很多LINUX初学者在学习linux图形方面的知识时会遇到一些概念,如:X、X11、Xfree86、WM、KDE、GNOME、QT、QT/E、Qtopia、DirectFB、Framebuffer、显卡加速驱动等等。理解它们之间是什么关系,对我们学习来说是非常重要的。写这篇文章的目的,就是想让大家明晰这些概念及它们之间的关系。(部分内容引用网络上的一些描述比较清晰的内容)一、Lin

2010-04-24 22:22:00 349

原创 关于标准I/O缓冲区

学习过编程的朋友都知道ANSI C里定义的标准I/O是一种带缓冲的高级磁盘I/O,目的是尽可能减少使用read和write系统调用的次数,从而提高I/O效率。标准I/O提供了3 种类型的缓冲类型。● 全缓冲。在这种情况下,当填满标准I/O缓存后才进行实际I/O操作。对驻留在磁盘上的文件的访问通常是由标准I/O库实施全缓冲的。● 行缓冲。在这种情况下,当在输入和输出中遇到新行符时,标

2010-04-24 22:08:00 397

原创 嵌入式Linux交叉编译环境的建立(基于 ubuntu 8.10)

在进行嵌入式开发之前,首先要建立一个交叉编译环境,这是一套编译器、连接器和libc库等组成的开发环境。本文具体说明了嵌入式交叉编译环境的建立过程和具体的操作步骤,希望能够对各位朋友搭建对应的交叉编译环境有所帮助。一、所需软硬件环境 ■ 主机环境建立交叉编译工具链的主机环境:Ubuntu 8.10,gcc-4.3.2 ■ Ubuntu 8.

2010-04-24 22:03:00 377

原创 异步串行通讯和同步串行通讯对比

在计算机系统中,CPU和外部通信有两种通信方式:并行通信和串行通信。而按照串行数据的时钟控制方式,串行通信又可分为同步通信和异步通信两种方式。1、异步串行方式的特点所谓异步通信,是指数据传送以字符为单位,字符与字符间的传送是完全异步的,位与位之间的传送基本上是同步的。异步串行通信的特点可以概括为:①以字符为单位传送信息。②相邻两字符间的间隔是任意长。

2010-04-24 22:00:00 602

原创 __asm__ __volatile__内嵌汇编用法简述

__asm__ __volatile__内嵌汇编用法简述在阅读C/C++原码时经常会遇到内联汇编的情况,下面简要介绍下__asm__ __volatile__内嵌汇编用法。因为平常项目中使用的平台是ARM体系结构的,所以下面的示例都是用ARM汇编。 带有C/C++表达式的内联汇编格式为: __asm__ __volatile__("Instruction List" :

2010-04-24 21:54:00 525

原创 usb 鼠标驱动注解及测试

参考2.6.14版本中的driver/usb/input/usbmouse.c。鼠标驱动可分为几个部分:驱动加载部分、probe部分、open部分、urb回调函数处理部分。 下文阴影部分为注解。 一、驱动加载部分 static int __init usb_mouse_init(void)         {             

2010-04-24 21:25:00 445

转载 spinlock 与linux内核调度的关系

关于自旋锁用法介绍的文章,已经有很多,但有些细节的地方点的还不够透。我这里就把我个人认为大家容易有疑问的地方拿出来讨论一下。 一、自旋锁(spinlock)简介 自旋锁在同一时刻只能被最多一个内核任务持有,所以一个时刻只有一个线程允许存在于临界区中。这点可以应用在多处理机器、或运行在单处理器上的抢占式内核中需要的锁定服务。 二、信号量简介 这里

2010-04-24 21:19:00 310

原创 linux bin 目录下命令简要说明

 命令解释说明alsacard检测声卡alsaunmute静音设置arch查看硬件类型awk一种程序语言环境basename去除文件名的目录部分和后缀部分,返回一个字符

2010-04-24 21:02:00 944

转载 嵌入式Linux驱动程序开发要点

在Linux操作系统下有3类主要的设备文件类型:块设备、字符设备和网络设备。这种分类方法可以将控制输入/输出设备的驱动程序与其他操作系统软件分离开来。 字符设备与块设备的主要区别是:在对字符设备发出读/写请求时,实际的硬件I/O一般紧接着发生。块设备则不然,它利用一块系统内存作为缓冲区,若用户进程对设备的请求能满足用户的要求,就返回请求的数据;否

2010-04-24 20:59:00 367

转载 Linux 字符设备驱动程序的编写框架

一、Linux device driver 的概念 系统调用是操作系统内核和应用程序之间的接口,设备驱动程序是操作系统内核和机器硬件之间的接口。设备驱动程序为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件,应用程序可以象操作普通文件一样对硬件设备进行操作。设备驱动程序是内核的一部分,它完成以下的功能

2010-04-24 20:57:00 386

转载 NorFlash 与NandFlash对比

FLASH存储器又称闪存,主要有两种:NorFlash和NandFlash,下面我们从多个角度来对比介绍一下。在实际开发中,设计者可以根据产品需求来进行闪存的合理选择。 1、接口对比 NorFlash带有通用的SRAM接口,可以轻松地挂接在CPU的地址、数据总线上,对CPU的接口要求低。NorFlash的特点是芯片内执行(XIP,eXecute

2010-04-24 20:51:00 399

转载 USB协议之四 USB枚举失败常见原因分析

本篇基于固件代码的开发及移植过程中可能引起的USB枚举失败的原因进行分析。数据采集设备:“HD-USB12”全速/低速USB2.0协议分析仪一、如图1所示的USB枚举失败  1)Index[666 - 668]:表示主机向默认地址发送GET

2010-04-24 16:47:00 6220

转载 USB协议之三 USB标准描述符

USB通迅配置是通过描述符完成的,下面对USB标准描述符进行说明。一、USB标准描述符   1、标准设备描述符    偏移量域大小值描述0bLength

2010-04-24 16:44:00 584

转载 USB协议之二 数据包分析

一、协议知识1)PID格式,详见图1                                                  (图1)注:a、 上图是从低位到高位b、 高四位是低四位取反c、 PID自校验2)PID分类,详见图2                                             

2010-04-24 16:42:00 1411

转载 USB协议之一 枚举过程

一、总线复位及向默认地址0发送GET_DESCRIPTOR指令包,请求设备描述。如(图一)所示:                                    (图一)1)Index[4 - 5]:表示USB插入总线复位2)Index[7 - 8]:表示主机向默认地址发送GET_DESCRIPTOR指令包,详细

2010-04-24 16:38:00 658

转载 USB gadget设备驱动解析(3)

Linux USB 设备端驱动有两部分组成。一部分是USB 设备控制器(USB Device Controller, UDC)驱动、另一部分是硬件无关的功能驱动(如:鼠标、u盘、usb串口、usb网络等);也可以分为3层的,分别是:Controller Drivers、Gadget Drivers、Upper Layers,大概意思都差不多。一、控制器(USB Device C

2010-04-24 16:28:00 531

转载 Linux USB gadget设备驱动解析(2)---驱动调试

      本文主要把在实现“linux模拟U盘功能”过程中的一些调试过程记录下来,并加以解析。一、背景知识     1、USB Mass Storage类规范概述        USB 组织在universal Serial Bus Mass Storage Class Spaceification 1.1版本中定义了海量存储设备类(Mass St

2010-04-24 16:26:00 691

转载 USB gadget设备驱动解析(1)

      利用Linux USB gadget设备驱动可以实现一些比较有意思的功能,举两个例子: 1、一个嵌入式产品中的某个存储设备,或是一个存储设备的某个分区,可以作为一个U盘被PC;设别,从而非常方便的完成文件交互,这个功能被广泛的应用于手机、数码相机等产品中。2、一个嵌入式设备通过USB连接到你的PC后,在你的PC端会出现一个新的网络连接,在嵌入式设备上也会有一个网卡设备,你可

2010-04-24 16:22:00 770

转载 Linux下USB从设备使用gadget API

一、USB从设备驱动介绍USB总线上主要有三类设备:主控制器(Host Controller, such as EHCI、UHCI、OHCI)、集线器(hub)和设备(device)。Host controller(HC)负责总线的管理,是总线的指挥官,总线上一切传输都是由HC发起的,支持OTG的Device也能发起传输;Hub是总线的节点,用来扩展总线上可接入设备的数量,对于

2010-04-24 16:16:00 961

转载 S3C2440上LCD驱动 (FrameBuffer)实例开发讲解

 一、开发环境主  机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand, Kernel:2.6.30.4 编译器:arm-linux-gcc-4.3.2二、背景知识1. LCD工作的硬件需求:   要使一块LCD正常的显示文字或图像,不仅需要LCD驱动器,而且还需要相应的LCD控制

2010-04-24 16:07:00 2236 3

转载 从USB设备插上到驱动probe调用流程分析

本文将详细讲述2.6.22下的一个USB设备插上linux系统的PC后是如何一步一步调到我们的usb设备驱动的probe函数的,我们知道我们的USB驱动的probe函数中的一个参数是interface结构,因此一般来说, 一个USB设备中的任何一个

2010-04-24 15:57:00 990

转载 使用ts_calibrate校准触摸屏

使用ts_lib包自带的ts_calibrate校准触摸屏非常简单实用,但在基于Xsever的GUI应用环境下,有两个问题存在:  1.校准后必须重新启动X,应用端才能生效。这样处理用户肯定不能接受,因为启动一次机器毕竟耗时。  2.在使用ts_calibrate校准触摸屏时,要触摸5个点,这时如果GUI应用端在运行其他响应触摸事件(鼠标事件)的程序就会出现错乱。所以安全的做法应该是在

2010-02-06 13:03:00 1127

转载 硬盘数据恢复

1、误格式化硬盘数据的恢复 在DOS高版本状态下,格式化操作format在缺省状态下都建立了用于恢复格式化的磁盘信息,实际上是把磁盘的DOS引导扇区,fat分区表及目录表的所有内容复制到了磁盘的最后几个扇区中(因为后面的扇区很少使用),而数据区中的内容根本没有改变。我们都知道在DOS时代有一个非常不错的工具UnFormat,它可以恢复由Format命令清除的磁盘。如果用户是在DOS

2009-08-01 00:59:00 534

转载 安全必知 黑客网络攻击的一般过程

       写在阅读之前:由于本文涉及比较多的专业术语及互联网工作原理,需要读者具有一定的网络基础,适合于对网络安全有一定研究的准专业人员。   目前造成网络不安全的主要因素是系统、协议及数据库等的设计上存在缺陷。由于当今的计算机网络操作系统在本身结构设计和代码设计时偏重考虑系统使用时的方便性,导致了系统在远程访问、权限控制和口令管理等许多方面存在安全漏洞。网络互连一般采用TCP/I

2009-06-20 23:56:00 4852

转载 职场新鲜人不能不知酒桌潜规则

    声明:本文来源:YOKA时尚网 作者:YOKA时尚网           酒是越喝越厚,几杯酒下去,人和人的关系自然近了好多层。关系近了,自然谈什么都不在话下。初涉职场的新鲜人,在酒桌上遭遇尴尬,于是迎面老板递过来的眼色在所难免。想避免这种不爽吗?提前熟知酒桌潜规则,你游刃职场必修课。     细节一:领导相互喝完才轮到自己

2009-06-20 21:20:00 360

空空如也

空空如也

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

TA关注的人

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