您的位置:首页 > 其它

移植LED和按键驱动

2017-12-22 10:22 169 查看

移植LED和按键驱动

注:此节主要移植的驱动是在一期编写的驱动

移植first_drv(点亮LED)

将first_drv整个文件夹上传到 /work/drivers_and_test_new目录下,修改其makefile,编译,出现好多错误(如图)

vi Makefile




make




解决错误,重新编译(成功)









—重新编译



编译测试程序,将可执行程序和上步编译生成的.ko文件拷贝到根文件系统目录下(/work/nfs_root/fs_mini_mdev_new)

—编译测试程序

arm-linux-gcc -o firstdrvtest firstdrvtest.c

—拷贝文件

cp first_drv.ko firstdrvtest /work/nfs_root/fs_mini_mdev_new

测试驱动(先加载,后测试,最后卸载)



移植second_drv(查询方式的按键驱动)

根据移植LED的经验,拷贝second_drv文件夹后修改Makefile,并修改驱动文件中的头文件、新函数(参考上面移植LED驱动)

—修改Makefile



—初步修改驱动





上传驱动文件,编译驱动(成功),编译测试程序,拷贝文件到根文件系统目录下

—编译成功



—编译测试程序,拷贝文件



测试驱动



移植third_drv(中断方式的按键驱动)

根据移植LED的经验,拷贝third_drv文件夹后修改Makefile,并修改驱动文件中的头文件、新函数(参考上面移植LED驱动)

—修改Makefile



—初步修改驱动





上传驱动文件,编译驱动(失败),出现许多错误



解决错误

—根据文档提示,找到对应头文件,参照头文件修改,并且包含头文件gpio.h











—上传文件,再次编译,仍存在错误



—再解决一部分错误

---搜索wake_up_interruptible,由宏一步步找到所需头文件






---搜索request_irq,参照其他文件是如何使用的,由相近的宏找出相应的头文件,并找到我们所需要的宏












—上传文件,再次编译驱动,编译成功



编译测试程序,拷贝文件到根文件系统目录下,并测试驱动程序





移植forth_drv(poll机制的按键驱动)

根据上述移植的中断方式的按键驱动经验,拷贝forth_drv文件夹后修改Makefile,并根据third_drv.c初步修改forth_drv.c驱动文件

—修改Makefile



—初步修改驱动文件









上传文件,编译驱动(成功),在编译其测试程序,将生成的ko文件和可执行程序拷贝到根文件系统目录下

—编译成功



—编译测试程序,并拷贝文件

arm-linux-gcc -o forthdrvtest forthdrvtest.c

cp forth_drv.ko forthdrvtest /work/nfs_root/fs_mini_mdev_new



测试驱动



移植fifth_drv(异步通知机制的按键驱动)

拷贝fifth_drv文件夹后修改Makefile,并对比forth_drv.c初步修改fifth_drv.c驱动文件

—修改Makefile



—初步修改驱动文件









上传文件,编译驱动(成功),在编译其测试程序,将生成的ko文件和可执行程序拷贝到根文件系统目录下

—编译成功



—编译测试程序,并拷贝文件



测试驱动程序



移植sixth_drv(同步、互斥、阻塞的按键驱动)

拷贝sixth_drv文件夹后修改Makefile,并对比fifth_drv.c初步修改sixth_drv.c驱动文件

—修改Makefile



—初步修改驱动文件









上传文件,编译驱动,出现一些错误,并解决错误

—错误提示



—解决错误:根据提示找到所在行









—修改





上传文件,编译驱动(成功),在编译其测试程序,将生成的ko文件和可执行程序拷贝到根文件系统目录下

—编译成功



—编译测试程序,并拷贝文件

arm-linux-gcc -o sixthdrvtest sixthdrvtest.c

cp sixth_drv.ko sixthdrvtest /work/nfs_root/fs_mini_mdev_new



测试驱动程序



移植7th_buttons_all(定时器防抖动的按键驱动)

拷贝7th_buttons_all文件夹后修改Makefile,并对比sixth_drv.c初步修改buttons.c驱动文件

—修改Makefile



—初步修改驱动文件









上传文件,编译驱动(成功),在编译其测试程序,将生成的ko文件和可执行程序拷贝到根文件系统目录下

—编译成功



—编译测试程序,并拷贝文件



测试驱动程序



———-2017.12.13
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  移植 LED-按键 测试