自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (3)
  • 收藏
  • 关注

转载 windows上安装MinGW 4.4、Qt library 4.8.4和Qt Creator

要进行Qt开发,首先要安装Qt library和Qt Creator,Qt library为Qt程序提供头文件、静态链接库和动态链接库,Qt Creator则是用于编程的IDE,提供了GUI界面绘制、代码编写、程序调试等多个功能。Qt一直以来,分为商业、开源两个版本,商业版本为用户提供了二级制的动态库,直接安装既可以使用,但是需要花钱购买license,而开源版本则遵守GPL协议,提供了源码,

2013-01-18 16:45:31 330

原创 自动创建设备文件节点

自动创建设备文件节点在驱动模块编写完成后,还需要在/dev目录下创建对应于该驱动的一个或多个设备文件,而且有多个次设备号就需创建多个设备文件,否则,我们即使写好了驱动程序,在用户态也没有访问该设备的入口;但是每次都手动编写设备文件,如果主设备号知道还行,如果不知道的话还要使用”cat /proc/devices”命令查看主设备号,这显然很麻烦,也不现实。因此需要一种自动创建设备文件节点的方法,

2013-01-17 13:59:24 590

原创 ioctl()函数的cmd参数是怎样得出的?

ioctl()函数的cmd参数是怎样得出的?① Linux对ioctl()函数的cmd参数有特殊的定义 ② 我们来以_IOW为例,看看Linux系统是如何定义_IOW宏的#define _IOW(type,nr,size)  _IOC(_IOC_WRITE,(type),(nr),sizeof(size))#define _IOC(dir,type,nr,s

2013-01-17 13:43:03 2529

原创 ioctl()函数(控制I/O设备的函数)

ioctl()函数(控制I/O设备的函数)ioctl()函数,为设备驱动程序执行用户态“命令”提供了一个特有的入口点,常用来设置或读取设备的属性信息,先将内核态的ioctl函数与用户态的ioctl函数对比内核态:int (*ioctl) (struct inode *, struct file *, unsigned int cmd, unsigned long arg);用户态:

2013-01-17 13:39:24 400

原创 file_operations结构体中几个重要函数的原型

file_operations结构体中几个重要函数的原型① int (*open) (struct inode *, struct file *);② int (*release) (struct inode *, struct file *);③ ssize_t (*read) (struct file *, char __user *, size_t, loff_t *);④

2013-01-17 13:35:50 620

原创 cdev结构体及相关函数

cdev结构体及相关函数① cdev结构体struct cdev {struct kobject kobj;struct module *owner;const struct file_operations *ops;struct list_head list;dev_t dev;unsigned int count;};  每一

2013-01-17 13:33:49 357

原创 设备号相关概念与函数

设备号相关概念与函数① 主设备号:用来区分不同的设备,如USB设备和串口设备就是不同的设备;② 次设备号:用来区分同一类设备的不同个体,如同一台电脑上的多个USB设备,正是由于次设备号,我们才能正确地定位设备文件所指定的设备;③ 设备编号:主设备号(高12位)和次设备号(低20位)组合成的一个32位的dev_t类型的变量,如:dev_t devno ;devno即是一个设备

2013-01-17 13:32:23 313

原创 字符设备开发的基本步骤

字符设备开发的基本步骤① 确定主次设备号(当然可以采用自动分配设备号,此时主设备号必须设定为0)② 实现字符驱动程序a. 实现file_operations结构体b. 实现初始化函数,注册字符设备c. 实现卸载函数,释放字符设备d. 实现字符设备其它成员函数③ 创建设备文件节点(当然可以在驱动程序中实现自动创建设备文件节点)

2013-01-17 13:31:12 314

原创 模块Makefile文件的编写

模块Makefile文件的编写编写模块Makefile文件的目的是为了将编写好的驱动模块编译为.ko文件,进而加载内 核中。以下是一个Makefile文件的例子:ifeq  ($(KERNELRELEASE),)KERNELDIR ?=/opt/FriendlyARM/mini2440/linux-2.6.32.2PWD :=$(shell pwd)all: mak

2013-01-17 13:30:07 543

原创 内核驱动程序与应用程序对比

内核驱动程序与应用程序对比① 应用程序是一个进程,程序运行从main()函数开始,主函数main()返回即是程序运行结束;② 驱动程序是一系列内核函数,驱动程序向内核添加这些内核函数如:open()、read()、write()、close()等函数,这些函数由内核在适当的时候调用;这些函数的调用是为了完成硬件访问等操作;③ 应用程序提供的是策略,驱动程序提供的是机制;

2013-01-17 13:24:30 616

原创 模块加载和卸载函数

模块加载和卸载函数① 模块加载和卸载函数都应声明为静态的(static),因为他们不会在特定的文件之外可见,如:static int  __init  xxx_init(void)、static void __exit  xxx_exit(void)② xxx:一般默认为字符设备的名称③ __init (如上)关键字表明:该函数只在初始化时使用,其它任何时候使用都是错误的,

2013-01-17 13:22:56 654

C语言深度解剖

偶得的C语言资料,个人觉得非常好,与人分享!

2013-01-31

qwt.chm说明文档

qwt文档.chm格式的,现在的qwt资料比较少,这个蛮适合初学者!

2013-01-17

gpiodriver

针对于s3c2440的GPIO口,利用ioremap将I/O物理地址转换到虚拟地址;针对9个端口(A~H,J)在/dev下自动创建9个设备文件;可在应用层控制引脚的输入或输出模式;可当做并口使用;经过测试后完全可行的,适合初学者!

2013-01-17

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

TA关注的人

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