- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
linux嵌入式系统驱动linux嵌入式系统驱动
驱动程序编写流程
动态加入内核
内核存放在 /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
您可能关注的文档
- lesson65--66.doc
- lesson_S08032_12_1.ppt
- lesson91-92.ppt
- lesson第一课时.ppt
- lex构造词法分析.doc
- LF-A级防火水泥复合保温砂浆外墙外保温系统施工方案.doc
- LFX-912 型继电保护专用收发信机检验规程(新).doc
- LHG0.06-0.04锅炉焊接工艺.doc
- Lesson Three (复旦高级英语第一册).ppt
- libxml2教程.doc
- 基于人工智能教育平台的移动应用开发,探讨跨平台兼容性影响因素及优化策略教学研究课题报告.docx
- 高中生物实验:城市热岛效应对城市生态系统服务功能的影响机制教学研究课题报告.docx
- 信息技术行业信息安全法律法规研究及政策建议教学研究课题报告.docx
- 人工智能视角下区域教育评价改革:利益相关者互动与政策支持研究教学研究课题报告.docx
- 6 《垃圾填埋场渗滤液处理与土地资源化利用研究》教学研究课题报告.docx
- 小学音乐与美术教师跨学科协作模式构建:人工智能技术助力教学创新教学研究课题报告.docx
- 《航空航天3D打印技术对航空器装配工艺的创新与效率提升》教学研究课题报告.docx
- 教育扶贫精准化策略研究:人工智能技术在区域教育中的应用与创新教学研究课题报告.docx
- 《区块链技术在电子政务电子档案管理中的数据完整性保障与优化》教学研究课题报告.docx
- 《中医护理情志疗法对癌症患者心理状态和生活质量提升的长期追踪研究》教学研究课题报告.docx
文档评论(0)