- 9
- 0
- 约4.58千字
- 约 8页
- 2017-02-01 发布于北京
- 举报
(实验8驱动程序的编写驱动程序一用户空间和内核空间的通信
实验8 用户空间和内核空间的通信
一、实验目的:
学习利用编写驱动程序,完成用户空间和内核空间的通信,加载驱动模块、显示驱动模块,卸载驱动模块。
二、实验内容
前面学习了bootloader kernel filesystem,进行过内核的移植,根文件系统的制作,现在进行驱动程序的编写,完成用户空间和内核空间的通信。
#su root切换root权限 密码123456
通过第一个hello world驱动程序,我们学会了驱动程序的框架。
知道了,如何编译,如何加载,如何卸载一个驱动程序。接下来我们来做一个完整的驱动程序
Demo_Driver.c
#includelinux/kernel.h
#includelinux/init.h#includelinux/fs.h#includelinux/module.h#define Demo_MAJOR 98 ? //定义主设备号#define Demo_DEBUG#define VERSION ? Demo_Drivervoid showversin(void){printk(KERN_EMERG***********************************************\n);printk(KERN_EMERG\tVERSION\t\n);printk(KERN_EMERG***********************************************\n);}//static int Demo_temp_count=0;size_t Demo_read(struct file *file,char *buf,size_t count,loff_t *f_ops){#ifdef Demo_DEBUGprintk(KERN_EMERGDemo_read[-kernel--]\n);#endifreturn count;}size_t Demo_write(struct file *file,const char *buf,size_t count,loff_t * f_ops){#ifdef Demo_DEBUGprintk(KERN_EMERGDemo_write[-kernel-]\n);#endifreturn count;}int Demo_ioctl(struct inode *inode,struct file *file,unsigned int cmd,unsigned long data){#ifdef Demo_DEBUGprintk(KERN_EMERGDemo_ioctl[-kernel-]\n);#endifreturn 0;}int Demo_open(struct inode * inode,struct file * file){#ifdef Demo_DEBUGprintk(KERN_EMERGDemo_open[-kernel-]\n);#endif//MOD_INC_USE_COUNT;return 0;}int Demo_release(struct inode *inode,struct file *file){#ifdef Demo_DEBUGprintk(KERN_EMERGDemo_release[-kernel-]\n);#endif//MOD_DEC_USE_COUNT;return 0;}struct file_operations Test_ctl_ops={.open=Demo_open,.read= Demo_read,.write=?Demo_write,.ioctl=?Demo_ioctl,release: ?Demo_release,};//astatic int HW_Test_CTL_init(void){int ret = -ENODEV;ret?= register_chrdev(Demo_MAJOR,demo_drv,Test_ctl_ops);if(ret0){printk(KERN_EMERGDemo_module failed with %d\n[-kernel-],ret);return ret;}else{printk(KERN_EMERGDemo_driver register success!!![-kernel-]\n);}printk(\n...\nret=%x\n...\n,ret);showversin();return ret;}static int Demo_Te
您可能关注的文档
最近下载
- 2025北京丰台区初三一模道法试题及答案.pdf VIP
- 江苏省连云港等苏北七市联考2025-2026学年上学期高三高考物理一模试卷(含答案).pdf VIP
- 2025北京朝阳区初三一模道法试题及答案.pdf VIP
- 汉语情感系统中情感划分的研究-人机语音交互课题组.pdf VIP
- 2025年湖北省华中师大附中丘成桐少年班 自主招生数学试卷 (学生版+解析版).pdf VIP
- 中频电炉设备根本结构组成.doc VIP
- 2025至2030电吉他行业发展趋势分析与未来投资战略咨询研究报告.docx
- 黄冈中学高考物理总复习复习资料.pdf VIP
- 第八课+学习借鉴外来文化的有益成果+课件-2026届高考政治一轮复习统编版必修四哲学与文化.pptx VIP
- 股市主力操盘盘 口摩斯密码(原创内容,侵权必究).pptx
原创力文档

文档评论(0)