当前位置: 首页 > 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/news/311727.html

相关文章:

  • 浏览器插件利器--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 数据库性能调优方案
  • 关系运算符
  • vue选项式写法项目案例(购物车)
  • 制作网上3D展馆需要什么技术并投入多少费用?
  • JSP分页功能实现案例:从基础到应用的全面解析
  • python SQLAlchemy 数据库连接池
  • 《拿下奇怪的前端报错》序章:报错输出个数值数组Buffer(475) [Uint8Array],我来教它说人话!
  • 【Unity】检测鼠标点击位置是否有2D对象
  • Modbus_tcp
  • 数据结构-3.2.栈的顺序存储实现
  • 3.数据类型
  • 算法打卡 Day41(动态规划)-理论基础 + 斐波那契数 + 爬楼梯 + 使用最小花费爬楼梯