fmql之驱动程序编写(首次)
看了正点原子的zynq系列的Linux开发指南(pdf和视频均有),因此从最简单的程序开始。
驱动程序开发:(第四期视频)
第3.1讲 我的第一个Linux驱动-字符设备驱动框架_哔哩哔哩_bilibili
学习驱动程序编写之前,要先学习uboot,kernel等内容(操作系统):(第三期视频)
第5.2讲 Uboot顶层Makefile分析-Makefile前期所作的内容_哔哩哔哩_bilibili
Linux驱动开发分为三种:
- 字符驱动:不定长的字符传输
- 块驱动:存储设备(定长字符传输)
- 网络驱动
一种设备可以是上述一种或多种类型。如USB的wifi模块,就不只是网络驱动。
比较难,且比较多的是第一种,字符驱动。
因此,跟着视频一起来学习吧。
- 字符驱动
- 新建.c文件,打开并编写程序。
驱动设备需要入口和出口函数:
module_init(); //驱动模块入口
module_exit(); //驱动模块出口
- 新建Makefile文件
KERN_DIR为kernel源码的目录。
运行make build
- Failed
可能的原因:没有交叉工具编译;前期环境配置没弄好(见正点原子第三期视频)
ARCH CROSSSOMPILE:arm_genueabihf_...
- 后来先设置了patalinux(每个终端都要配置) ,就成功了
进入petalinux安装目录:source setting.sh
make编译成功了,生成了.ko可执行文件:
P.S 我用的软件是VScode,安装方式如下:
安装插件:
VS Code常用插件安装及使用_vscode支持arm汇编语法高亮插件-CSDN博客