摘要: 我在linux-2.6.27版本下面编译驱动程序到时候,发现找不到class_device_create和class_device_destroy到声明。 在网上搜索以下,发现有人也遇到了此问题。 解决办法如下: 2.6.15中的函数: class_device_create(); class_device_destroy(); 在2.6.27中变为: device_create() device_destroy() 此函数声明在:include/linux/device.h 函数原型:drivers/base/core.c 原文地址:http://topic.csdn.... 阅读全文
posted @ 2012-03-30 23:54 桥~ 阅读(2814) 评论(0) 推荐(0) 编辑
摘要: 与cdev相关的一些函数void cdev_init(struct cdev *, const struct file_operations *);struct cdev *cdev_alloc(void);void cdev_put(struct cdev *p);int cdev_add(struct cdev *, dev_t, unsigned);void cdev_del(struct cdev *);void cd_forget(struct inode *); 阅读全文
posted @ 2012-03-30 16:22 桥~ 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 最近研究Linux设备驱动程序遇到混乱,请大侠过来理理头绪。Linux设备模型中:bus_type、device、device_driver《Linux设备驱动程序》的linux设备模型章中说到设备模型中,所有设备都通过总线相连。添加设备devA,必须指定其device结构体的bus_type域,初始化其他域,然后调用device_register(&devA),将设备devA注册到指定总线。添加该设备驱动driverA,也必须指定其device_driver结构体的bus_type域,初始化其他域,然后调用driver_register(&driverA),将该驱动注册到总线 阅读全文
posted @ 2012-03-30 16:12 桥~ 阅读(1964) 评论(0) 推荐(0) 编辑
摘要: include\linux在这个头文件中主要是misc(混合)设备注册和注销:其它类型---不能严格划分的设备类型,也叫混合类型有:1.结构体:struct miscdevice { int minor; const char *name; const struct file_operations *fops; struct list_head list; struct device *parent; struct device *this_device;};2.misc设备注册:extern int misc_register(struct miscdevice * misc);misc设备 阅读全文
posted @ 2012-03-30 16:03 桥~ 阅读(623) 评论(0) 推荐(0) 编辑
摘要: 编译驱动:make SUBDIR=drivers/char/ modules make -C /lib/modules/`uname -r`/build M=`pwd` modules 阅读全文
posted @ 2012-03-30 14:08 桥~ 阅读(240) 评论(0) 推荐(0) 编辑
摘要: /usr/include/linux是用来编译当前系统的程序的; /usr/src/linux/include/linux/是用来编译内核的,要使用/usr/src/linux/include/linux的头文件, 可以用gcc -I /usr/src/linux-x.x.x/include/呵呵,一个是用户态下的搜索路径,一个是内核模块需要的头文件搜索路径,用的地方都不一样 如果你没有在编译时显示地加上-I的情况下: 如果你的代码中没有__KERNEL__这样的宏声明,那么编译时就会使用C库的头文件 如果你的代码是用于内核模块的,那么它指向的就是内核头文件,一般说来,在你的/usr/s... 阅读全文
posted @ 2012-03-30 13:38 桥~ 阅读(3716) 评论(0) 推荐(0) 编辑
摘要: 2.6.30.4的头文件的位置和2.6.25.8的不一样,除去内核源码下的include目录外,在arch/arm/mach-s3c2410/和arch/arm/plat-s3c24xx/目录下都有include目录的。#include <linux/kernel.h> /* printk() *///#include <linux/slab.h> /* kmalloc() *///#include <linux/fs.h> /* file_operations、inode_operations、super_operations结构体*///#incl... 阅读全文
posted @ 2012-03-30 13:03 桥~ 阅读(9253) 评论(0) 推荐(0) 编辑
摘要: Ubuntu软件包格式为deb,安装方法如下: sudo dpkg -i package.debdpkg的详细使用方法,网上有很多,下面简单列了几个:dpkg -i package.deb安装包dpkg -r package删除包dpkg -P package删除包(包括配置文件)dpkg -L package列出与该包关联的文件dpkg -l package显示该包的版本dpkg –unpack package.deb解开 deb 包的内容dpkg -S keyword搜索所属的包内容dpkg -l列出当前已安装的包dpkg -c package.deb列出 deb 包的内容dpkg –co 阅读全文
posted @ 2012-03-30 04:33 桥~ 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 刚刚按配套教程的说明,自己配置了内核和文件系统并烧到TQ2440上,板子虽然正常进入了操作系统,由于没有移植QT,所以只能命令行操作,但是过了一会就自动重启,试了几次都这样。在TQ的官网上搜了一下,很幸运的找到答案,其实就是内核配置(make menuconfig)时把Device driver里的watchdog去掉就可以了。需要重新编译内核并烧写。之前用出厂镜像带QT界面的就没有这个问题,还不知道为什么。同时,官网上有些人也有重启的问题,但是他们的现象是无法进入操作系统的,就是板子不断处于重启状态,有的人说是uboot的问题,这个还没试过。 阅读全文
posted @ 2012-03-30 02:54 桥~ 阅读(897) 评论(0) 推荐(0) 编辑
摘要: 开发板是 友善之臂mini2440PC操作系统 Ubuntu 10.10前段时间在windows熟悉了开发板,现在开始切换到ubuntu啦,之前一直dnw搞不定,所以用WIN7,现在试了下搞好了。前提是你的minicom要装好,这个不懂的自己搜去吧,很容易配置,这里主要讲下DNW的配置,因为网上有好多配置用不了,这里我参考了下 http://hi.baidu.com/go_it/blog/item/35e457880a5253bd0f244458.html。说一下dnw for linux 的使用。 先到网上搜索一下 dnw for linux。我顺便上传了一个 http://download 阅读全文
posted @ 2012-03-29 17:33 桥~ 阅读(6358) 评论(1) 推荐(0) 编辑