- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
linu嵌入系统驱动
驱动程序编写流程
动态加入内核
内核存放在 /opt/cvtech/linux--v1.05
新建文件夹/opt/cvtech/drivertest ,文件夹中存放First_drv.c 和Makefile文件
1编译.内核(就是下载到开发板上的内核),在驱动程序的Makefile文件中用到
2.编写驱动程序xxx.c
例如:
文件名:First_drv.c
文件内容:
#include linux/module.h
#include linux/kernel.h
#include linux/fs.h
#include linux/init.h
#include linux/delay.h
#include asm/uaccess.h
static int first_drv_open(struct inode *inode, struct file *file)
{
printk(first_drv_open\n);
return 0;
}
static ssize_t first_drv_write(struct file *file, const char __user *buf, size_t count, loff_t * ppos)
{
printk(first_drv_write\n);
return 0;
}
static struct file_operations first_drv_fops = {
.owner = THIS_MODULE,
.open = first_drv_open,
.write = first_drv_write,
};
int major;
static int first_drv_init(void)
{
major= register_chrdev(0, first_drv, first_drv_fops); //第一个参数0,表示由系统分配一个主设备号,(大小为0-212 中未被分配的的设备号,次设备号取值范围0-220)
return 0;
}
static void first_drv_exit(void)
{
unregister_chrdev(major, first_drv);
}
module_init(first_drv_init);
module_exit(first_drv_exit);
MODULE_LICENSE(GPL);
3.编写Makefile文件
文件名:Makefile
文件内容:
KERN_DIR = /opt/cvtech/linux--v1.05 //烧写到开发板上的内容的路径,此内容是编译后的
all:
make -C $(KERN_DIR) M=`pwd` modules
clean:
make -C $(KERN_DIR) M=`pwd` modules clean
rm -rf modules.order
obj-m += First_drv.o //与上面的First_drv.c 对应
使用make命令编译生成 First_drv.ko
使用串口终端连接到开发板
将此文件夹挂载到开发板的/mnt/目录下使用命令:
mount 2:/opt/cvtech/drivertest /mnt/ -o nolock
挂接成功后进入mnt 目录 使用命令cd /mnt 此时可以用ls命令查看 First_drv.ko是否存在。
使用 insmod First_drv.ko 命令将驱动动态加入内核
使用lsmod 命令可以查看到是否已加入内核
使用命令
cat /proc/devices 出现如下结果
[root@Cvtech /mnt]# cat /proc/devices
Character devices:
1 mem
4 /dev/vc/0
4 tty
5 /dev/tty
5 /dev/console
5 /dev/ptmx
7 vcs
10 misc
13 input
14 sound/mixer
14 sound/dsp
14 sound/audio
21 sg
29 fb
81 video4linux
89 i2c
90 mtd
108 ppp
116 alsa
128 ptm
136 pts
180 usb
188 ttyUSB
189 usb_device
204 s3c2410_serial
252 first_drv
253 BaseRemoteCtl
254 rtc
Block devices:
259 blkext
8 sd
31 mtdbl
您可能关注的文档
- (医学各论课件)12、案例Case ofcardiovascular diseas-huhu.doc
- (冀教版)四年级学下册课件三角形的认识.ppt
- (妇产科学课件)10.1.Premature ruptureofmembranes.docx
- (完整)319例尿殖道支原体培养及药敏结果分析.doc
- (妇产科学)年制natomy中文.ppt
- (导游英语课件)Section seven ausoleumTour.ppt
- (最新)营销框架研究报告.doc
- (沉积岩石学课件)第九 其他沉积岩.doc
- (病毒学教学课件)Celltransformation by vruses.ppt
- (神经解剖学)accessoryerve.ppt
文档评论(0)