linux-驱动
yinkaizhong
这个作者很懒,什么都没留下…
展开
-
calloc(), malloc(), realloc(), free()介绍
使用valloc分配一页内存void *calloc(size_t nobj, size_t size);分配足够的内存给nobj个大小为size的对象组成的数组, 并返回指向所分配区域的第一个字节的指针;若内存不够,则返回NULL. 该空间的初始化大小为0字节.char *p = (char *) calloc(100, sizeof(char));void *malloc(size_t s转载 2008-10-13 15:56:00 · 371 阅读 · 0 评论 -
制作apt-get 命令的文件系统
安装debian-linux mipsel系统,只能采用交叉安装的方法。 具体方法如下: - 从TFTP下载内核执行; - 根卷从NFS加载,要包含ar、wget,以及运行debootstrap所需要的C库(最好是debian系统)。 1. 配置Debootstrap 安装时,首先要从要安装的光盘中,取出相应的debootstrap_*.deb包,用下述命令安装: # ar -x原创 2008-11-19 16:26:00 · 350 阅读 · 0 评论 -
关于container_of
关于container_of见kernel.h中:/*** container_of - cast a member of a structure out to the containing structure* @ptr: the pointer to the member.* @type: the type of the container struct this is emb原创 2008-11-19 16:37:00 · 542 阅读 · 0 评论 -
pci 介绍
第六章 PCI 外围设备互连(PCI)是一种将系统中外部设备以结构化与可控制方式连接到起来的总线标准,包括系统部件连接的电气特性及行为。本章将详细讨论Linux核心对系统中的PCI转载 2008-11-24 12:18:00 · 510 阅读 · 0 评论 -
关于U-boot中命令相关的编程
@main_loop:这个函数里有太多编译选项,对于smdk2410,去掉所有选项后等效下面的程序 复制内容到剪贴板 代码:void main_loop(){static char lastcommand[CFG_CBSIZE] = { 0, };int len;int rc = 1;int flag;char *s;int bootdelay;s = getenv ("bootdelay转载 2008-11-26 11:49:00 · 485 阅读 · 0 评论 -
do_bootm 函数分析
在u-boot检测到bootm命令后,它将调用do_bootm这个函数进行内核引导:int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]){ ulong iflag; ulong addr; ulong data, len, checksum; u转载 2008-11-26 15:18:00 · 2124 阅读 · 0 评论 -
mips架构u-boot 启动流程
流程分析********************************************************1.最开始系统上电后 ENTRY(_start)程序入口点是 _start board/mingddie/u-boot.lds2._start: cpu/mips/start.S3. la t9, board_原创 2008-12-01 13:53:00 · 3672 阅读 · 1 评论 -
Ubuntu Virtualbox桥接 配置
Ubuntu Virtualbox桥接 配置1.安装Virtualbox 软件,导入镜像包,看XP 能否起来 $sudo apt-get install virtualbox2.安装必要工具$sudo apt-get install uml-utilities bridge-utils3.设置文件/dev/net/tun的读写权限chmod 0666 /dev/net/tun4.设置Virtua原创 2008-12-04 15:54:00 · 1789 阅读 · 1 评论 -
spi 学习
对于SPI,感觉熟悉协议比较重要,SPI总线可以配置成单主单从,单主多从,互为主从。以下网页比较简单的介绍了该协议。http://www.dzkf.cn/html/zonghejishu/2007/0829/2544.html 简单的,对主极端来说,发送数据的同时也在从slave接受数据,比如说:MCU上升沿发送,下降沿接收。下面就以同事写的spi_eeprom.c(spi 读原创 2009-03-05 17:34:00 · 1102 阅读 · 0 评论 -
mtd-utils 工具的使用
一.下载源码包。二.编译1.修改Makefile CROSS=mipsel-linux-2.make3.将编译生成的可执行文件COPY到开发板上三.命令的使用使用命令前用cat /proc/mtd 查看一下mtdchar字符设备;或者用ls -l /dev/mtd*#cat /proc/mtddev: size erasesize namemtd0: 00c00000 0002000原创 2008-12-25 15:53:00 · 24054 阅读 · 3 评论 -
关于--共享中断
Linux可以让多个设备共享一个中断号,而且共享同一中断的中断处理程序形成一个链表,内核对每个中断处理程序都要执行,那么,没有产生中断的设备本该靠边站的,它的中断处理程序也被执行了?到底是怎么会事?实际上:共享的处理程序与非共享的处理程序在注册和运行方式上比较相似,但差异主要有以下三处:* request_irq()的参数flags必须设置SA_SHIRQ标志。* 对每个注册的中断处理程序来说,原创 2008-11-19 16:22:00 · 687 阅读 · 0 评论 -
linux 下解压*.rar 文件
很简单,只需要sudo apt-get install rar unrarrar使用来创建rar格式的眼所文件的unrar是用来解压的unrar 一般是配合 e, x参数的来使用 e Extract files to current directory(解压到当前目录) x Extract files with full path()(按照压缩原创 2008-11-19 16:40:00 · 506 阅读 · 0 评论 -
linux 编译常用工具
常用工具介绍arm-linux-as 编译ARM汇编程序arm-linux-ar 把多个.o合成一个.o或静态库(.a)arm-linux-ranlib 为库文件建立索引,相当于arm-linux-ar -sarm-linux-ld 连接器(linker),把多个.o或库文件连接成一个可执行文件arm-linux-objdump 查看可执行文件(.o)和库(.a)的信息arm-linux-o原创 2008-11-19 16:54:00 · 592 阅读 · 0 评论 -
xx.tar.gz中xxx.diff.gz 补丁的用法
xx.tar.gz中xxx.diff.gz 补丁的用法: 最开始应该判断你的补丁是用什么命令打包来的 file xxx.patch.diff.gz file xxx.diff.bz2 然后用对应的命令解压 1.#tar zxvf xx.tar.gz得到目录xxx 2.#cd xxxx 进入目录 3. 方法一:zcat ../xxx.diff.gz | patch -p1原创 2008-10-10 12:06:00 · 1058 阅读 · 0 评论 -
BASH shell set命令详解
使用set命令可以设置各种shell选项或者列出shell变量.单个选项设置常用的特性.在某些选项之后-o参数将特殊特性打开.在某些选项之后使用+o参数将关闭某些特性,不带任何参数的set命令将显示shell的全部变量.除非遇到非法的选项,否则set总是返回ture.当BASH shell被调用时,可以列出全部的选项.当前的选项集列在$-中.在option参数被处理转载 2008-10-10 17:25:00 · 551 阅读 · 0 评论 -
细说指针1
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型、指针所指向的类型、指针的值或者叫指针所指向的内存区、指针本身所占据的内存区。让我们分别说明。先声明几个指针放着做例子:例一:(1)int*ptr;(2)char*ptr;(3)int**ptr;(4)int(*ptr)[3];(5)int*(*ptr)[4];1.指针的类转载 2008-10-10 13:44:00 · 245 阅读 · 0 评论 -
细说指针2
要了解指针,多多少少会出现一些比较复杂的类型,所以我先介绍一下如何完全理解一个复杂类型,要理解复杂类型其实很简单,一个类型里会出现很多运算符,他们也像普通的表达式一样,有优先级,其优先级和运算优先级一样,所以我总结了一下其原则:从变量名处起,根据运算符优先级结合,一步一步分析.下面让我们先从简单的类型开始慢慢分析吧:int p; //这是一个普通的整型变量int *p; //首先从P 处开始,先转载 2008-10-10 13:45:00 · 256 阅读 · 0 评论 -
ltp测试遇到 中交叉编译,如screen shell命令
最近在作ltp测试,感觉手头资料太少,网上搜索一把,说过去说过来就那些个链接,没有比较深入的,不得不自己从头看看代码,测试案例太多了,也难怪IBM要用一个小组,专门研究它。 在最开始盆到的问题修改top命令安装,按照top 中 Makefile,把它搞定后,又没有screen, 没法自己交叉编译了,步骤如下:screen 作用(http://blog.cfan.com.cn/原创 2008-10-10 11:40:00 · 1187 阅读 · 0 评论 -
LTP测试流程
LTP 测试分析date:2008.10.29author:yinkaizhong(kaizhongyin@hotmail.com)1.LTP介绍 LTP--linut test project ,ltp套件是由Linux Test Project所开发的一套系统测试套件。它基于系统资源的利用率统计开发了一个测试的组合,为系统提供足够的压力。 通过压力测试来判断系统的稳定性和可靠性。原创 2008-10-30 17:19:00 · 3883 阅读 · 1 评论 -
getopt
getopt(分析命令参数) 相关函数 表头文件 #include定义函数 int getopt(int argc,char * const argv[ ],const char * optstring);函数说明 getopt()用来分析命令行参数。参数argc和argv是由main()传递的参数个数和内容。参数optstr转载 2008-11-03 09:41:00 · 301 阅读 · 0 评论 -
飞鸽传书--安装
一、下载“飞鸽传书”:http://www.ipmsg.org/archive/g2ipmsg-0.9.5.tar.gz二、解压:tar zxvf g2ipmsg-0.9.5.tar.gzcd g2ipmsg-0.9.5三、修改参数,使它支持中文名文件的传输 #以下几行主要应对0.9.5版本 configure --with-ext-charcode=CP936无效的问题sed -i s/CP9转载 2008-11-18 18:09:00 · 328 阅读 · 0 评论 -
Linux下PCI设备驱动程序开发
PCI是一种广泛采用的总线标准,它提供了许多优于其它总线标准(如EISA)的新特性,目前已经成为计算机系统中应用最为广泛,并且最为通用的总线标准。Linux的内核能较好地支持PCI总线,本文以Intel386体系结构为主,探讨了在Linux下开发PCI设备驱动程序的基本框架。 一、PCI总线系统体系结构 PCI是外围设备互连(Peripheral C转载 2008-11-19 15:38:00 · 435 阅读 · 0 评论 -
container_of 理解
问题:如何通过结构中的某个变量获取结构本身的指针???关于container_of见kernel.h中:/*** container_of - cast a member of a structure out to the containing structure* @ptr: the pointer to the member.* @type: the type of the c原创 2009-04-20 10:49:00 · 41209 阅读 · 42 评论