完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
论坛里应该有一部分人是想学驱动,却不知道该怎么入门吧,在这里我教大家写一个helloworld的简单随linux内核加载的驱动。 1.首先在/kernel/drivers下建一个新的文件夹hello,在文件夹里添加四个文件分别是hello.c,hello.hKconfig,Makefile, hello.c文件里也有注释,这个文件主要就是为了注册和初始化设备文件以及定义驱动接口,主要是用啦file_operations这个结构体,大家想了解驱动可以先了解这个,这个程序里的注释可以帮助大家理解下一个简单驱动的结构 2.修改Kconfig,内容如下
3.修改Makefile,内容如下
4.返回dirvers目录下修改Kconfig,在最后加一句:source"drivers/hello/Kconfig" 5.修改Makefle文件,在里面添加一句 obj-$(CONFIG_HELLO_TEST) += hello/ 6.返回kernel目录下,执行makemenuconfig 在/driver路径下找到设备,选定(注:这里设备的名字和我们之前写的Kconfig有一定的关系,修改Kconfig的相应的参数,可以改变menu下的名字)
,然后返回 makekernel.img 7,然后创建测试文件,在driver目录下创建目录hellotest,加入两个文件test和Android.mk 然后mm,在sdk/out/target/product/rkpx2/system/bin目录下找到测试文件,(如mm无法执行,可在根目录下执行下sourcebuild/envsetup.sh) 8.最后测试下结果,在window目录下,用adb工具把测试文件push进板中,然后在文件所在的位置给文件赋上权限,执行chmod777 test 执行./testhello 或./testgoodbye可看到结果如下,即驱动可成功加载
|
|
|
相关推荐
|
|
213 浏览 0 评论
飞凌嵌入式ElfBoard-文件I/O的深入学习之存储映射I/O
599 浏览 0 评论
飞凌嵌入式ElfBoard-文件I/O的深入学习之I/O多路复用
1031 浏览 0 评论
基于米尔MYC-LR3576开发板的实时视频识别系统设计与实现
756 浏览 0 评论
飞凌嵌入式ElfBoard-文件I/O的深入学习之阻塞I/O与非阻塞I/O
805 浏览 0 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-9 09:21 , Processed in 0.659146 second(s), Total 69, Slave 50 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖