Linux驱动开发学习记录系列(1)-初探Linux驱动开发

Linux驱动开发学习记录系列(1)-初探Linux驱动开发因为项目需求,自己也想学Linux驱动很久了,乘此机会进行系统化学习,本系列主要记录实际开发时Linux驱动相关的整个流程和有趣的技术点。后续随着项目深入可能会更新其他知识,在不侵害公司利益及以职业道德为前提的情况下尽可能记录更多的技术开发流程,供自己加深记忆以及共同学习。系列文章中,将会以第一视角由浅入深进行学习,博主本身具有一些嵌入式开发工作经验,对C和Python有一定开发经验,了解过Makefile,shell等一些基础知识。对Linu
摘要由CSDN通过智能技术生成

Linux驱动开发学习记录系列(1)-初探Linux驱动开发

初衷:
想撰写本系列文章的主要原因是自己想学Linux驱动很久了,恰好手头一个项目需要用到Linux开发,乘此机会进行系统化学习,本系列主要记录实际开发时Linux驱动相关的整个流程和有趣的技术点。后续随着项目深入可能会更新其他知识,在以保证职业道德为前提的情况下尽可能记录更多的技术开发流程,供自己加深记忆以及共同学习。

系列文章中,将会以第一视角由浅入深进行学习,博主本身具有一些嵌入式开发工作经验,对C和Python有一定开发经验,了解过Makefile,shell等一些基础知识。对Linux底层开发接触较少,系列文章中也是属于遇山拆山,遇河搭桥,边做边学,参考网上各路前辈和大佬的文章,。

正文:
物理设备:暂用不到
开发环境:Ubuntu虚拟机

目前购买的开发板还没有到货,在Windows10下安装Ubuntu虚拟机作为简单入门,一些基础的知识在网上都可以找到,主要包括以下几点:

Linux驱动加载有两种方式:
动态加载:在系统运行的情况下直接调试运行,速度快,哪里不对改哪里,本章节例程就使用动态加载;
静态加载:将模块写入内核,每次修改都要重新编译,重新下载,一般是动态调试没问题后写入到内核。

Linux将所有设备都分为:
字符设备:可以按照顺序读写,比如键盘,鼠标等实时输入输出设备,LED;
块设备:可以按照数据块的方式随机读写,比如硬盘,flash;
网络设备:特殊设备,基于套接字机制。

第一个例程永远是Hello World
在进行例程前需要确保系统有内核树,确保在/lib/modules/目录下有generic结尾的文件夹&#

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值