自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(65)
  • 资源 (5)
  • 收藏
  • 关注

原创 make的内嵌函数

make的内嵌函数 GNU make的函数提供了处理文件名、变量、文本和命令的方法。使用函数我们的Makefile可以书写的更加灵活和健壮。可以在需要的地方地调用函数来处理指定的文本(需要处理的文本作为函数的参数),函数的在调用它的地方被替换为它的处理结果。函数调用(引用)的展开

2011-07-27 13:19:23 746

转载 yaffs根文件系统制作

<br />其实在去年8月份我做系统移植时就构建好了一个可以用的根文件系统,但是那时是跟着别人的《Linux全线移植文档》做的。有些东西我也不清楚,只是跟着做,做出来能用就了事了,没有深究其中的规范,以及文件系统中哪些要,哪些不要。<br />趁着今年过年的几天假期,我移植重新移植了U-Boot1.3.1和Linux2.6.24到S3C2410及S3C2440后,我想好好的看看有关文件系统构建方法和规范,整理整理构建根文件系统的文档。之后,我用了近一周的时间,慢慢研究《构建嵌入式Linux系统》这本书有关根

2010-11-13 15:36:00 2068

转载 ymodem文件传输过程

<br />文件传输过程的开启:<br />(1)开启是由接收方开启传输,它发一个大写字母C开启传输。然后进入等待(SOH)状态,如果没有回应,就会超时退出。<br />(2)发送方开始时处于等待过程中,等待C。收到C以后,发送(SOH)数据包开始信号,发送序号(00),补码(FF),“文件名”,“空格”“文件大小”“除去序号外,补满128字节”,CRC校验两个字节。进入等待(ACK)状态。<br />(3)接收方收到以后,CRC校验满足,则发送ACK。发送方接收到ACK,又进入等待“文件传输开启”信号,即

2010-08-23 10:19:00 3729 1

原创 uboot移植时一些问题总结

<br />1.uboot移植时在lowlevel.s中卡住可能的原因是该部分代码编译的时候没有放在总体代码的前4k,可以修改u-boot.lds文件<br />2.串口信息出现乱码可能原因是在配置波特率的时候取系统时钟是取错了,可以查看get_pclk函数<br />3.在boot the kernel 卡住原因可能是 A:uboot和linuxkernel 的mach_type的值不一样,可以修改其值与内核一致就可解决<br />   B:uboot和内核的时钟不一样(网上如此说)<br />   C:

2010-08-23 09:10:00 678

转载 linux下各种格式的文件包的打包和解包方法

总结了一下linux下各种格式的文件包的打包和解包方法文件包的格式罗列linux下的文件包主要有以下多种格式,如果有没有列在下面的包格式,请及时给以通知,以方便大家使用:<br />.tar .tgz .gz .tar.gz .bz .bz2 .tar.bz .tar.bz2 .Z .tar.Z .zip .rar .cpio .rpm .deb .slp .arj .ace .lha .lzh .lzx .lzs .arc .sda .sfx .lnx .zoo .cab .kar .cpt .pit .

2010-08-03 18:05:00 591

转载 U-boot中TFTP 解释

<br />一、      概述<br />      U-boot中的TFTP用于发送较小的文件。下层使用UDP协议,发送使用UDP 69端口,每次发送的最大分组为512 Bytes。发送双方采用超时重传机制。数据传输模式为octet模式(二进制模式 )。<br />    在U-boot中使用tftp功能可以使用如下命令:<br />            tftp  MemoryAddress  FileName<br />    其中MemoryAddress为放入文件的内存首地址,FileName

2010-08-03 09:13:00 1309

转载 U_boot 的 bootcmd 和bootargs参数详解

转自 :http://linux.chinaunix.net/bbs/archiver/tid-1111568.html    U-boot的环境变量值得注意的有两个: bootcmd 和bootargs。u-bootcmd    前面有说过bootcmd是自动启动时默认执行的一些命令,因此你可以在当前环境中定义各种不同配置,不同环境的参数设置,然后设置bootcmd为你经常使用的那种参数。u-bootargs    bootargs是环境变量中的重中之重,甚至可以说整个环境变量都是围绕着bootargs来

2010-08-02 22:08:00 567

转载 uboot 移植中出现问题及解决

<br />问题一:Load Address  、Entry Point 设置问题<br />Starting kernel ...<br />undefined instruction<br />pc : [] lr : []<br />sp : 33f4fc10 ip : 00000001 fp : 33f4fca4<br />r10: 33f9e70c r9 : 33ece9cd r8 : 33f4ffdcc<br />r7 : 33f4ffb8 r6 : 00000000 r5 : 00000000

2010-08-02 16:24:00 1223

转载 U-BOOT DM9000驱动完全注释

#include "../include/dm9000x.h"/* Board/System/Debug information/definition ---------------- */#define DM9801_NOISE_FLOOR    0x08#define DM9802_NOISE_FLOOR    0x05/* #define CONFIG_DM9000_DEBUG */#define DM9000_DBG(fmt,args...)//*==========================

2010-08-01 21:55:00 1138

转载 ARM920T协处理器接口

ARM920T处理器通过一个外部协处理器接口来支持连接片上协处理器。ARM处理器支持所有的协处理器指令。 ARM920T协处理器接口允许你附加一个专门设计的协处理器到ARM920T。包括: 1.附加一个加速器:用于浮点运算,DSP,3-D图形,加密解密。 2.ARM指令集可支持连接多达16个协处理器到ARM处理器,编号为0~15 内部协处理器 ARM920T处理器包括两个内部协处理器 1.CP14:用于调试控制 2.CP15:用于内存系统控制和测试控制 这就意味着连接到ARM920T处理器外面的协处理器不能

2010-07-24 13:58:00 1383

转载 ARM926EJ-S/ARM920T 协处理器 CP14, CP15详解

ARM 微处理器可支持多达 16 个协处理器,用于各种协处理操作,在程序执行的过程中,每个协处理器只执行针对自身的协处理指令,忽略 ARM 处理器和其他协处理器的指令。ARM 的协处理器指令主要用于 ARM 处理器初始化 ARM 协处理器的数据处理操作,以及在ARM 处理器的寄存器和协处理器的寄存器之间传送数据,和在 ARM 协处理器的寄存器和存储器之间传送数据。 ARM 协处理器指令包括以下 5 条: — CDP 协处理器数操作指令 — LDC 协处理器数据加载指令 — STC 协处理器数据存储指令 —

2010-07-24 13:41:00 593

转载 ARM微处理器的指令系统

介绍ARM指令集、Thumb指令集,以及各类指令对应的寻址方式,通过对本章的阅读,希望读者能了解ARM微处理器所支持的指令集及具体的使用方法。本章的主要内容有:-  ARM指令集、Thumb指令集概述。-  ARM指令集的分类与具体应用。-  Thumb指令集简介及应用场合。3.1  ARM微处理器的指令集概述3.1.1  ARM微处理器的指令的分类与格式ARM微处理器的指令集是加载/存储型的,也即指令集仅能处理寄存器中的数据,而且处理结果都要放回寄存器中,而对系统存储器的访问则需要通过专门的加载/存储指令

2010-07-24 13:37:00 419

转载 RAMDISK块设备驱动程序

<br />ram、loop、网络设备等驱动通常使用自己编写的make_request函数来处理bio结构,免去内核使用I/O调度器处理的麻烦。 而像硬盘等这些有磁道、扇区的设备驱动则使用request函数,内核会提供 __make_request()函数并调用I/O调度器来处理bio结构,以提高磁盘的读写效率<br />下面是一个使用内存来虚拟的磁盘的驱动程序,适用于PC机上内核版本号大于2.6.24的Linux系统ramdisk_driver.c 驱动程序代码如下:<br />#include<linu

2010-07-10 21:50:00 1813 1

转载 RamDisk块设备驱动实例开发讲解1

嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux中的每个步骤。一为总结经验,二希望能给想入门嵌入式Linux的朋友提供方便。如有错误之处,谢请指正。共享资源,欢迎转载:http://hbhuanggang.cublog.cn<br />一、开发环境主  机:VMWare--Fedora 9开发板:Mini2440--64MB Nand, Kernel:2.6.30.4编译器:arm-linux-gcc-4.3.2<br />二、块设备基本概念扇区(Sectors):任何块设备硬件对数据处理

2010-07-10 21:48:00 746

转载 基于S3C2410的SD卡linux驱动工作原理(一)

<br />我在讲嵌入式Linux驱动开发的时候,发现不少学员对SD卡驱动这块比较感兴趣,课下来找我探讨。而在很多技术论坛,<br />也有不少人问这方面的问题,所以就想写一下这方面的内容,希望对大家的学习能有所帮助。想了解SD卡的工作原理,首先需要了解的就是SD卡协议了,这个在<br />网上可以轻松的下载到。在了解协议后,就可以看看下面的一些开发思路了。<br />首先看下脱离操作系统如何在S3C2410上实现SD卡的读写。过程可以分为3个大的步骤:初始化sd卡、写sd卡、读sd卡;下面的过程是我通过r

2010-07-07 11:01:00 482

转载 基于S3C2410的SD卡linux驱动工作原理(二)

<br />序:我在讲嵌入式Linux驱动开发班的时候,发现不少学员对SD卡驱动这块比较感兴趣,课下来找我探讨。而在很多技术论坛,也有不少人问这方面的问题,所以就想写一下这方面的内容,希望对大家的学习能有所帮助。<br />前几天写了篇“基于S3C2410的SD卡linux驱动工作原理(一)”,说了下脱离操作系统如何在S3C2410上实现SD卡的读写。了解了脱离操作系统的工作原理后,现在可以思考linux是如何管理管理SD卡的了。Linux中SD驱动可以分为3层:块设备层(mmc_block.c ,mmc_

2010-07-06 20:48:00 400

转载 Linux设备驱动程序学习(13)-Linux设备模型(总线、设备、驱动程序和类)

文章的例子和实验使用《LDD3》所配的lddbus模块(稍作修改)。提示:在学习这部分内容是一定要分析所有介绍的源代码,知道他们与上一部分内容(kobject、kset、attribute等等)的关系,最好要分析一个实际的“flatform device”设备,不然会只学到表象,到后面会不知所云的。总线总线是处理器和一个或多个设备之间的通道,在设备模型中, 所有的设备都通过总线相连,

2010-05-13 08:33:00 396

原创 MMC/SD驱动总体分析

<br />kernel启动时,先后执行mmc_init()及mmc_blk_init(),以对mmc设备及mmc块模块进行初始化。然后在挂载mmc设备驱动时,执行驱动程序中的xx_mmc_probe(),检测host设备中挂载的sd设备。此时probe函数会创建一个host设备,然后开启一个延时任务mmc_rescan()。驱动挂载成功后,mmc_rescan()函数被执行, 假如扫描到总线上挂有有效的设备,就调用相对应的函数把设备装到系统中,mmc_attach_sdio()、mmc_attach_sd

2010-03-11 17:18:00 459

转载 块设备读写流程

在学习块设备原理的时候,我最关系块设备的数据流程,从应用程序调用Read或者Write开始,数据在内核中到底是如何流通、处理的呢?然后又如何抵达具体的物理设备的呢?下面对一个带Cache功能的块设备数据流程进行分析。1、 用户态程序通过open()打开指定的块设备,通过systemcall机制陷入内核,执行blkdev_open()函数,该函数注册到文件系统方法(file_operatio

2010-03-11 16:23:00 796

转载 linux 触摸屏驱动分析

mini2440驱动分析系列之---------------------------------------Mini2440触摸屏程序分析By JeefJiang July,8th,2009这是mini2440驱动分析系列的第三篇文章,本文分为三个部分,第一部分讲叙硬件知识,包括触摸屏的原理以及SCC2440 SOC上的触摸屏是如何工作的。第二部分分析输入设备子系统的框架,并进行相应的

2010-03-04 13:36:00 9276 1

转载 Linux设备模型之input子系统详解

------------------------------------------ 本文系本站原创,欢迎转载!转载请注明出处:http://ericxiao.cublog.cn/------------------------------------------一:前言在键盘驱动代码分析的笔记中,接触到了input子系统.键盘驱动,键盘驱动将检测到的所有按键都上报给了

2010-03-04 11:48:00 2930

转载 什么是嵌入式系统

嵌入式系统(ES)是计算机技术、通信技术、半导体技术、微电子技术、语音图象数据传输技术,甚至传感器等先进技术和具体应用对象相结合后的更新换代产品。因此往往是技术密集、投资强度大、高度分散、不断创新的知识密集型系统。反映当代最新技术的先进水平。 嵌入式系统不仅和一般的PC 机上的应用系统不同,就是针对不同的具体应用而设计的嵌入式系统之间差别也很大。嵌入式系统一般功能单一、简单,且在兼容性方面要求不高

2010-03-02 21:48:00 508

转载 嵌入式经典面试题(转)

C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。   从被面试者的角度来讲,你能了解许多关于出题者或监考者的情况。这个测试只是出题者为显示其对ANSI标准细节的知识而不是技术技巧而设计吗?这是个愚蠢的问题吗?如要你答出某个字符的ASCII

2010-02-25 00:26:00 317

转载 嵌入式研发工程师面试试题

看了一篇叫“嵌入式研发工程师面试试题大全”的文章,觉得里面的题目很有水平,我会分阶段做完这些题目,并贴出来接受大家的指正。今天先贴上“ANSI C/C++方面的知识 ”,有不妥之处希望博友能给出意见,而且有几道本人尚不清楚,需要大家帮助解决。 一.ANSI C/C++方面的知识 1、简答题。 1、 如何在C中初始化一个字符数组。 逐个字符赋值:char s[] = {‘A’,’B’

2010-02-25 00:23:00 507

原创 嵌入式笔试

   1:用C语言实现大小端的测试   Int CheckCpu()      {union{int a;char b;}c; c.a=1;if(c.b==1)printf(“小端”);else printf(“大端”);}2:volatile的作用有哪些?Volatile第一变量相当于告诉编译器这个变量的值会随时发生变化,每次使用之前都

2010-02-25 00:10:00 992 2

原创 字符设备驱动编写步骤

1.标准字符设备驱动  a.注册设备号 如    if(key_major) /*静态注册*/        err = register_chrdev_region(devno, 1, DEVICE_NAME);    else    {    /*动态注册*/        err = alloc_chrdev_region(&devno, 0, 1, DEVICE

2010-02-24 22:53:00 1172

原创 linux设备管理文件系统-devfs与udev

 linux下有专门的文件系统用来对设备进行管理,devfs和sysfs就是其中2种。  在2.6内核以前一直使用的是devfs,devfs挂载于/dev目录下,提供了一种类似于文件的方法来管理位于/dev目录下的所有设备,我们知道/dev目录下的每一个文件都对应的是一个设备,至于当前该设备存在与否先且不论,而且这些特殊文件是位于根文件系统上的,在制作文件系统的时候我们就已经建立了这些设备文件,因

2010-02-24 22:41:00 829

转载 个人对kobject的一点研究

在LINUX中最让人不解的大概就是/sys下面的内容了下面首先让我们来创建一个简单的platform设备,并从这个设备的视角进行深入,在此篇文章的深入过程中,我们只看kobeject的模型我所使用的内核版本号为2.6.26,操作系统的内核版本号为2.6.27-7,暂未发现2.6.27-7与2.6.26的重大不同首先写一个简单的模块#include #include #include static

2010-02-24 15:03:00 1375 1

转载 kobject,kset,子系统层次结构

kobject,kset,子系统层次结构内核通常用kobject 结构将各个对象连接起来组成一个分层的结构体系。 parent 是指向另外一个kobject 结构(分层结构中上一层的节点)的指针,主要用途是在 sysfs 层次中定位对象. 一个 kset 是嵌入到相同类型结构的 kobject 的集合。但 struct kobj_type 关注的是对象的类型,而struct kset 关心

2010-02-24 15:02:00 951 1

转载 从文件到字符设备

在/dev下面有很多设备,其中也有大家广为使用的字符设备,呢里面的文件是如何与字符设备挂钩的呢~  平时我们使用的open函数是如何动态加载字符设备的操作集的呢~下面就让我们慢慢剖析~ (以内核2.6.26为参考)一.首先是文件系统~   需要动态解析文件路径名  像/dev/ts0  在文件系统里分为3个部分  1./(根文件目录)  2.dev(根文件目录下的dev目录)  3.t

2010-02-24 14:57:00 704

转载 Linux设备驱动模型

2.6内核增加了一个引人注目的新特性——统一设备模型(device model)。设备模型提供了一个独立的机制专门来表示设备,并描述其在系统中的拓扑结构,从而使得系统具有以下优点:l        代码重复最小化。l        提供诸如引用计数这样的统一机制。l        可以列举系统中所有的设备,观察它们的状态,并且查看它们连接的总线。l        可以将系统中的全部设备结构以树的形

2010-02-24 12:58:00 1990

转载 Linux设备驱动程序学习-Linux设备模型(总线、设备、驱动程序和类)

文章的例子和实验使用《LDD3》所配的lddbus模块(稍作修改)。总线总线是处理器和一个或多个设备之间的通道,在设备模型中, 所有的设备都通过总线相连, 甚至是内部的虚拟"platform"总线。总线可以相互插入。设备模型展示了总线和它们所控制的设备之间的实际连接。在 Linux 设备模型中, 总线由 bus_type 结构表示, 定义在 : struct bu

2010-02-24 11:50:00 2681 1

原创 linux 等待队列

Linux内核的等待队列是以双循环链表为基础数据结构,与进程调度机制紧密结合,能够用于实现核心的异步事件通知机制。screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor=hand; this.alt=Click here to open new window/nCTRL+Mous

2010-02-24 00:41:00 5308

原创 linux 等待队列

Linux内核的等待队列是以双循环链表为基础数据结构,与进程调度机制紧密结合,能够用于实现核心的异步事件通知机制。screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor=hand; this.alt=Click here to open new window/nCTRL+Mous

2010-02-23 23:51:00 308 1

转载 platform设备添加流程

今天我以fb设备的注册过程来分析platform设备的添加流程platform总线是kernel中最近加入的一种虚拟总线,它被用来连接处在仅有最少基本组件的总线上的那些设备.这样的总线包括许多片上系统上的那些用来整合外设的总线, 也包括一些"古董" PC上的连接器; 但不包括像PCI或USB这样的有庞大正规说明的总线.平台设备~~~~~~    平台设备通常指的是系统中的自治体, 包括老式的基于端

2010-02-19 23:17:00 968

原创 linux内核中的数据结构

struct file {   struct file *f_next,**f_pprev;   struct dentry *f_dentry;   struct file_operations *f_op;   mode_t f_mode;   loff_t f_pos;   unsigned int f_count,f_flags;   unsigned long f_reada,f_ram

2010-02-04 15:58:00 661

转载 tcp序列号确认号详解【转自bbs.bitsCN.com】

TCP序列号和确认号详解在网络分析中,读懂TCP序列号和确认号在的变化趋势,可以帮助我们学习TCP协议以及排查通讯故障,如通过查看序列号和确认号可以确定数据传输是否乱序。但我在查阅了当前很多资料后发现,它们大多只简单介绍了TCP通讯的过程,并没有对序列号和确认号进行详细介绍,结合实例的讲解就更没有了。近段时间由于工作的原因,需要对TCP的序列号和确认号进行深入学习,下面便是我学习后的一些知识点

2010-02-02 20:35:00 534

原创 以太网协议以及TCP/IP协议的报头

//以太网协议格式的定义struct ether_header{ u_int8_t  ether_dhost[6];   //目的以太网地址 u_int8_t  ether_shost[6];   //源以太网地址 u_int16_t ether_type;       //以太网类型}; //ARP协议格式的定义struct arp_header{ u_int16_t arp_har

2010-02-02 11:36:00 1869

原创 嵌入式系统学习步骤(转)

1、Linux 基础安装Linux操作系统 Linux文件系统 Linux常用命令 Linux启动过程详解 熟悉Linux服务能够独立安装Linux操作系统 能够熟练使用Linux系统的基本命令 认识Linux系统的常用服务安装Linux操作系统 Linux基本命令实践 设置Linux环境变量 定制Linux的服务 Shell 编程基础使用vi编辑文件 使用Emacs编辑文件 使用其他编辑器2、S

2010-01-18 23:58:00 5144

转载 arm 汇编学习

工作关系,必须看u-boot启动的第一阶段,所以就得看汇编了。 看了一天,感觉还行,下面是几篇比较好的文章,    文件:ARM_zhiling.pdf大小:1775KB下载:下载文件:Assembly_In_Linux.pdf

2009-12-30 14:39:00 2299 3

s3c2440 触摸屏驱动

一种是注册为字符模式 一种是input子系统模式

2010-03-04

3种模式的按键驱动(cdev misc platform).rar

mini241o 按键的3种驱动 字符设备 混杂设备 platform驱动

2010-02-24

tcpdump 代码分析

tcpdump 分析 分析不时很详细,献给初学linux网络编程者对tcp/ip很熟悉的 就没有必要了下载了

2010-02-09

mini2440 SD card 分析

详细的分析的mini2440的sd卡驱动,适合初学者

2009-10-14

空空如也

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

TA关注的人

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