当前位置: 首页 > article >正文

fmql之驱动程序编写(首次)

看了正点原子的zynq系列的Linux开发指南(pdf和视频均有),因此从最简单的程序开始。

驱动程序开发:(第四期视频)

第3.1讲 我的第一个Linux驱动-字符设备驱动框架_哔哩哔哩_bilibili

学习驱动程序编写之前,要先学习uboot,kernel等内容(操作系统):(第三期视频)

第5.2讲 Uboot顶层Makefile分析-Makefile前期所作的内容_哔哩哔哩_bilibili

Linux驱动开发分为三种:

  • 字符驱动:不定长的字符传输
  • 块驱动:存储设备(定长字符传输)
  • 网络驱动

一种设备可以是上述一种或多种类型。如USB的wifi模块,就不只是网络驱动。

比较难,且比较多的是第一种,字符驱动。

因此,跟着视频一起来学习吧。

  1. 字符驱动
  • 新建.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博客

http://www.kler.cn/a/311727.html

相关文章:

  • 机器学习(七)——集成学习(个体与集成、Boosting、Bagging、随机森林RF、结合策略、多样性增强、多样性度量、Python源码)
  • 移动开发(七):.NET MAUI使用RESTAPI实现查询天气笔记
  • 云计算在远程办公中的应用
  • 《手写Spring渐进式源码实践》实践笔记(第十八章 JDBC功能整合)
  • 【11月10日最新】V2.6.1版本植物大战僵尸杂交版分享与下载
  • 封装的数字滚动组件的实现代码
  • 浏览器插件利器--allWebPluginV2.0.0.20-beta版发布
  • 安科瑞智能塑壳断路器适用于物联网配电电网中-安科瑞黄安南
  • 算法打卡:第十一章 图论part01
  • 每天五分钟深度学习框架pytorch:pytorch中已经定义好的损失函数
  • Redis的Key的过期策略是怎样实现的?
  • 【WPF】02 按钮控件圆角配置及状态切换
  • 华为昇腾智算中心-智算中心测试方案与标准
  • JavaEE:网络编程(UDP)
  • pg入门3—详解tablespaces2
  • Elasticsearch 8.+ 版本查询方式
  • JVM 内存结构?
  • 卖家必看:利用亚马逊自养号测评精选热门产品,增强店铺权重
  • 运维工程师面试整理-监控与报警监控系统
  • uni-app-通过vue-cli命令行快速上手
  • 数据结构(Day16)
  • 虎先锋,你也喜欢线程控制嘛
  • UAC2.0 麦克风——音量控制
  • etcd之etcd简介和安装(一)
  • 全面整理的Oracel 数据库性能调优方案
  • 关系运算符