- 博客(17)
- 资源 (22)
- 收藏
- 关注
原创 Linux字符设备编程(五)之struct class
<br /><br />Linux字符设备编程(五)之struct class<br />在前面我们已经介绍了两种方法来实现在编写设备驱动程序时由系统自动给我们创建设备文件的方法。现在我们接着讲解第三种方法.<br />一.前言<br />内核中定义了struct class结构体,一个struct class 结构体类型变量对应一个类,内核同时提供了class_create()函数,可以用它来创建一个类,这个类存放于sysfs下面,一旦创建了这个类,再调用device_create()函数在/dev目录下
2011-05-29 21:44:00 12954 1
原创 Linux字符设设备编程(四)之可爱的misc
字符设备编程(四)之可爱的misc在我们前面所学的字符设备编程中,当我们写好字符设备驱动并加载成功后;要使我们所写的驱动层程序和应用层程序之间搭建起通信桥梁,要通过设备节点。很多时候,我们都是利用mknod命令手动创建设备节点;应用层程序通过设备节点(open(“/dev/globalmem”,O_RDWR))和驱动层程序之间进行通话。。我们先来看看如何创建一个设备节点呢?To user the driver,first create the proper device files .To do that,
2011-05-29 18:06:00 8843 3
转载 sscanf()函数的用法
sscanf名称:sscanf() - 从一个字符串中读进与指定格式相符的数据.函数原型:int sscanf( const char *, const char *, ...);头文件:#include说明:sscanf与scanf类似,都是用于输入的,只是后者以键盘(stdin)为输入源,前者以固定字符串为输入源。例子:1. 常见用法。 char buf[512] ; sscanf("123456 ", "%s", buf);//此处buf是数组名,它的意思是将123456以%s的形式存入buf中!
2011-05-24 13:42:00 6773
转载 sleep()函数-延迟函数
<br /><br />Sleep函数<br />1.简介<br />函数名: sleep<br />功 能: 执行挂起一段时间<br />用 法: unsigned sleep(unsigned seconds);<br />在VC中使用带上头文件<br />#include <windows.h><br />在gcc编译器中,使用的头文件因gcc版本的不同而不同<br />#include <unistd.h><br />2.注意<br />在VC中Sleep中的第一个英文字符为大写的"S"<br />
2011-05-24 13:40:00 6745 3
原创 atoi函数
<br /><br />atoi<br />C语言库函数名: atoi<br /> 功 能: 把字符串转换成整型数.<br /> 名字来源:array to integer 的缩写.<br /> 原型: int atoi(const char *nptr);<br /> 函数说明: 参数nptr字符串,如果第一个非空格字符不存在或者不是数字也不是正负号则返回零,否则开始做类型转换,之后检测到非数字或结束符 /0 时停止转换,返回整型数。<br /> 头文件: #include <stdlib.h>
2011-05-24 13:40:00 1968
原创 DDR2与DDR的区别
<br /> <!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } --><br />DDR2与DDR的区别<br /> 与DDR相比,DDR2最主要的改进是在内存模块速度相同的情况下,可以提供相当于DDR内存两倍的带宽。这主要是通过在每个设备上高效率使用两个DRAM核心来实现的。作为对比,在每个设备上DDR内存只能够使用一个DRAM核心。技术上讲,DDR2内存上仍然只有一个DRAM核心,但是它可以并行存取
2011-05-20 16:56:00 2001 1
原创 构建内核树
<br /> <br /> <br />够建内核树<br />1.下载内核源代码<br />apt-cachesearch linux-source <br />其中显示的有:linux-source-2.6.20,没有和我的内核版本完全匹配,不过也没关系,直接下载就可以了:<br />apt-getinstall linux-source-2.6.20 <br />2.下载后,在/usr/src/目录下有压缩包解压<br />tar-jxvf linux-sourc
2011-05-17 11:11:00 3351
原创 Linux内核开发之将驱动程序添加到内核
<br /> 驱动程序添加到内核<br /> <br />一.概述:<br />在linux内核中增加程序需要完成以下三项工作:<br />1.将编写的源代码复制到Linux内核源代码的相应目录<br />2.在目录的Kconfig文件中增加新源代码对应项目的编译配置选项<br />3.在目录的Makefile文件中增加对新源代码的编译条目<br />二.实例<br />1.先把驱动代码usbtmc(文件夹)赋值到/usr/src
2011-05-17 10:45:00 18489 11
原创 Ubuntu下搭建嵌入式环境
Ubuntu下搭建嵌入式环境一.minicom的安装(1)打开终端,输入:sudo apt-get install minicom(2)然后进行配置,输入sudo minicom -s(3)进入Serial port setup,需要修改两处:1>A中 /dev/tty8改为/dev/ttyS0注意:如果为笔记本没有串口,可以用usb转串口工具,此时要改为/dev/ttyUSB0(也许你的不一样,
2011-05-13 18:11:00 3689 1
原创 kmalloc/kfree,vmalloc/vfree函数用法和区别
kmalloc/kfree,vmalloc/vfree函数用法和区别1.kmalloc1>kmalloc内存分配和malloc相似,除非被阻塞否则他执行的速度非常快,而且不对获得空间清零.tiger说明:在用kmalloc申请函数后,要对起清零用memset()函数对申请的内存进行清零。> 2>kamlloc函数原型:#includeVoid *kmalloc(size_t size, int f
2011-05-11 20:13:00 34612 4
原创 C语言中函数strcpy ,strncpy ,strlcpy的用法
<br />C语言中函数strcpy ,strncpy ,strlcpy的用法<br />strcpy ,strncpy ,strlcpy的用法<br />好多人已经知道利用strncpy替代strcpy来防止缓冲区越界。<br />但是如果还要考虑运行效率的话,也许strlcpy是一个更好的方式。<br />1. strcpy<br />strcpy 是依据 /0 作为结束判断的,如果 to 的空间不够,则会引起 buffer overflow。strcpy 常规的实现代码如下(来自 OpenBSD 3.
2011-05-11 18:55:00 42623 5
原创 Linux字符设备驱动之register_chrdev_region()系列
<br />Linux字符设备驱动之 register_chrdev_region()函数系列<br />1.内核中所有已分配的字符设备编号都记录在一个名为 chrdevs 散列表里。该散列表中的每一个元素是一个 char_device_struct 结构,它的定义如下:<br />static struct char_device_struct {<br />struct char_device_struct *next; // 指向散列冲突链表中的下一个元素的指针<br />unsigned int m
2011-05-11 18:11:00 24377 2
原创 Linux字符设备驱动之cdev_init()系列
<br />字符设备驱动之cdev_init()系列函数<br />1.内核中每个字符设备都对应一个 cdev 结构的变量,下面是它的定义:<br />linux-2.6.22/include/linux/cdev.h<br />struct cdev {<br /> 13 struct kobject kobj;<br /> 14 struct module *owner;<br /> 15 const struct file_operations *ops
2011-05-11 17:54:00 13382
原创 Linux字符设备驱动(三)
字符设备驱动之体验篇三.字符设备编程篇通过程序来体验字符设备驱动编程的过程在Linux系统中,字符设备驱动由如下几个部分组成:(1)字符设备驱动模块加载与卸载函数(2)字符设备驱动的file_operations结构体中成员函数file_operations结构体中成员函数是字符设备驱动与内核的接口,是用户空间对Linux进行系统调用最终的实现着。(3)在字符设备驱动中,需要定义一个file_operations的实例,并将具体设备驱动的函数赋值给file_operations的成员。1.设备驱动的头文件,
2011-05-11 17:39:00 7422 5
原创 Linux字符设备驱动(二)
字符设备驱动之结构体二.字符设备驱动的结构体大部分基本的驱动程序操作涉及及到三个重要的内核数据结构,分别是file_operations、file和inode,它们的定义都在。1.file_operations:是一个函数指针的集合1>应用程序和VFS之间的接口是系统调用,而VFS与磁盘文件系统以及普通设备之间的接口是file_operations结构体成员函数,这个结构体包含对文件打开,关闭,读写,控制的一系列成员函数。2>由于字符设备的上层没有磁盘文件系统,所以字符设备的file_operations成
2011-05-11 17:13:00 5952 1
原创 Linux字符设备驱动(一)
Linux字符设备驱动之概述篇1.在Linux中有一句哲学“Linux下皆文件”,既把设备看做文件处理。那么设备和普通文件之间又有什么区分呢?先看看两个图:普通文件:-rw-r--r-- 1 stella stella 3699 2011-05-10 16:02 my_USBTMCAPP.c-rwxr-xr-x 1 stella stella 8763 2011-05-08 11:27 tiger-rw-r--r-- 1 stella stella 441 2011-05-08 11:2
2011-05-11 17:01:00 9505 11
转载 经常用到的javaScript技术代码
author:王绍峰http://blog.csdn.net/fasttalk/archive/2005/10/10/498988.aspx一、验证类1、数字验证内1.1 整数1.2 大于0的整数(用于传来的ID的验证)1.3 负整数的验证1.4 整数不能大于iMax1.5 整数不能小于iMin2、时间类2.1 短时间,形如 (13:04:06)2.2 短日期,形如 (2003-12-05)2.3 长时间,形如 (2003-12-0513:04:06)2.4 只有年和月。形如(2003-05,或者200
2011-05-10 09:15:00 1719
嵌入式环境搭建之samba
2013-08-05
bonjour软件包,mDNSResponder
2011-07-03
getpid()编程getpid()编程getpid()编程getpid()编程
2010-11-14
fork3()编程fork3()编程fork3()编程fork3()编程fork3()编程
2010-11-14
fork1() 编程fork1() 编程fork1() 编程fork1() 编程
2010-11-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人