
驱动开发
文章平均质量分 91
Linux驱动开发学习
一只嵌入式爱好者
去经历挫折,去感受失败
展开
-
Linux设备驱动中的并发控制
Linux设备驱动中的并发控制前言并发与竞争编译乱序和执行乱序编译乱序嵌入式汇编(内联汇编)示例分析一执行乱序中断屏蔽原子操作原子操作简介原子整形操作API函数原子位操作API函数自旋锁自旋锁简介其他类型的锁读写自旋锁顺序锁自旋锁使用注意事项信号量信号量简介信号量API函数互斥体互斥体简介互斥体API函数完成量总结前言本文主要来自正点原子、野火Linux教程及本人理解,若有侵权请及时联系本人删除。并发与竞争Linux 系统是个多任务操作系统,会存在多个任务同时访问同一片内存区域,这些任务可能会相互覆原创 2022-05-10 16:05:19 · 2383 阅读 · 0 评论 -
Linux驱动的分离与分层(很重要)
Linux驱动的分离与分层前言驱动的分隔与分离驱动的分层前言本文主要来自正点原子、野火Linux教程及本人理解,若有侵权请及时联系本人删除。驱动的分隔与分离对于 Linux 这样一个成熟、庞大、复杂的操作系统,代码的重用性非常重要,否则的话就会在 Linux 内核中存在大量无意义的重复代码。尤其是驱动程序,因为驱动程序占用了 Linux内核代码量的大头,如果不对驱动程序加以管理,任由重复的代码肆意增加,那么用不了多久Linux 内核的文件数量就庞大到无法接受的地步。假如现在有三个平台 A、B 和原创 2022-05-03 21:32:53 · 1841 阅读 · 0 评论 -
Linux中文件描述符fd和文件指针flip的理解
Linux中文件描述符fd和文件指针flip的理解简单概括open和fopenVFS进程控制块file.File Status Flag和file.f_countfile.file_operationsfile.dentrydentry.inodeinode.super_block总结简单概括fd只是一个整数,在open时产生。起到一个索引的做用,进程经过PCB中的文件描述符表找到该fd所指向的文件指针filp。open和fopenopen:文件描述符的操做(如: open)返回的是一个文件描述符(转载 2022-03-10 22:14:32 · 1073 阅读 · 0 评论 -
register_chrdev()、register_chrdev_region()、alloc_chrdev_region()函数区别
register_chrdev、register_chrdev_region、alloc_chrdev_region函数区别函数原型区别总结函数原型分配设备编号,注册设备与注销设备的函数均在fs.h中声明,如下:extern int register_chrdev_region(dev_t, unsigned, const char *);//静态的申请和注册设备号 extern int alloc_chrdev_region(dev_t, unsigned, const char *);//动态的原创 2022-03-08 21:37:55 · 523 阅读 · 0 评论 -
__init和__exit修饰符
__init和__exit修饰符引入含义__init__exit总结引入在字符设备驱动中函数的修饰符会出现__init和__exit,与普通函数相比,定义中多了__init和__exit含义__init__init宏告知编译器,将变量或函数放在一个特殊的区域,这个区域定义在vmlinux.lds中。 __init将函数放在".init.text"这个代码区中,__initdata将数据放在".init.data"这个数据区中。标记为初始化的函数,表明该函数供在初始化期间使用。在模块装载之后,原创 2022-03-08 17:20:56 · 771 阅读 · 0 评论 -
pinctrl子系统初始化RGB灯
文章目录系列文章目录前言正文引入iomuxc节点:pinctrl子系统初窥iomuxc节点节点引脚配置方式节点配置信息记录pinctrl子系统实验:RGB灯引脚初始化platform设备引脚初始化RGB灯引脚状态初始化iomuxc节点添加引脚配置信息rgb_led节点添加引脚状态代码示例总结系列文章目录Linux字符设备驱动详解Linux字符设备驱动详解二(使用设备驱动模型)Linux字符设备驱动详解三(使用class)Linux字符设备驱动详解四(使用自属的xbus驱动总线)Linux字符设备原创 2021-12-01 11:07:53 · 958 阅读 · 0 评论 -
Linux字符设备驱动详解七(“插件“设备树实现RGB灯驱动)
文章目录系列文章目录前言正文Device Tree Overlays:"插件"设备树传统设备树"插件"设备树使用前提案例说明设备树:foo.dts“插件”设备树:bar.dts设备树+"插件设备树":foo.dts + bar.dts编译方式APT下载dtc工具使用方式内核运行状态加载(通用)uboot加载(野火linux开发板)"插件"设备树实现RGB灯驱动设备树添加节点信息reg属性内存映射of_iomap()函数代码示例总结系列文章目录Linux字符设备驱动详解Linux字符设备驱动详解二(使用原创 2021-11-28 21:41:18 · 1382 阅读 · 0 评论 -
Linux字符设备驱动详解六(设备树实现RGB灯驱动)
前言请先阅读:Linux字符设备驱动详解Linux字符设备驱动详解二(使用设备驱动模型)Linux字符设备驱动详解三(使用class)Linux字符设备驱动详解四(使用自属的xbus驱动总线)Linux字符设备驱动详解五(使用platform虚拟平台总线)本文主要来自正点原子、野火Linux教程及本人理解,若有侵权请及时联系本人删除。正文一、DTS设备树基本语法从上到下背景硬件设备中种类逐年递增,板级platform平台设备文件越来越多,这么多的设备如果都要自己写platform_de原创 2021-11-27 22:47:57 · 1884 阅读 · 0 评论 -
Linux字符设备驱动详解五(使用platform虚拟平台总线)
前言请先阅读:Linux字符设备驱动详解Linux字符设备驱动详解二(使用设备驱动模型)Linux字符设备驱动详解三(使用class)Linux字符设备驱动详解四(使用自属的xbus驱动总线)本文主要来自正点原子、野火Linux教程及本人理解,若有侵权请及时联系本人删除。驱动目录sys/bus/platform(系统已有)sys/bus/platform/devices driverssys/bus/platform/devices/imx6ull-rledsys/bus/platfo原创 2021-11-27 12:34:17 · 1009 阅读 · 0 评论 -
Linux字符设备驱动详解四(使用自属的xbus驱动总线)
前言请先阅读:Linux字符设备驱动详解Linux字符设备驱动详解二(使用设备驱动模型Linux字符设备驱动详解三(使用class)本文主要来自正点原子、野火Linux教程及本人理解,若有侵权请及时联系本人删除。驱动目录sys/bus(系统已有)sys/bus/xbussys/bus/xbus/devices driverssys/bus/xbus/devices/xdevsys/bus/xbus/drivers/xdev正文驱动总线软件与硬件代码分离,提高程序的复用性de原创 2021-11-27 10:22:11 · 1514 阅读 · 2 评论 -
Linux字符设备驱动详解三(使用class)
前言请先阅读:Linux字符设备驱动详解Linux字符设备驱动详解二(使用设备驱动模型本文主要来自正点原子、野火Linux教程及本人理解,若有侵权请及时联系本人删除。驱动目录sys/class/xxx/my_ledsys/class/xxx/my_led/dev power subsystem uevent(默认创建四个文件)uevent自动为我们创建/dev/my_led正文class:设备的大管家硬件设备分类管理与udev协作,自动创建设备文件创建一个classcl原创 2021-11-27 09:52:21 · 2170 阅读 · 2 评论 -
Linux字符设备驱动详解二(使用设备驱动模型)
前言请先阅读:Linux字符设备驱动详解本文主要来自正点原子、野火Linux教程及本人理解,若有侵权请及时联系本人删除。正文为什么需要设备驱动模型早期内核(2.4之前)没有统一的设备驱动模型,但照样可以用2.4~2.6期间使用devfs,挂载在/dev目录。需要在内核驱动中创建设备文件(devfs_register),命名死板2.6以后使用sysfs,挂载在/sys目录将设备分类、分层次统一进行管理配合udev/mdev守护进程动态创建设备文件,命令规则自由制定sysf原创 2021-11-24 14:20:50 · 1595 阅读 · 0 评论 -
Linux字符设备驱动详解
前言很久没有认真写一篇博客了,刚好最近学习了Linux字符设备驱动,好记心不如烂笔头,当然是要抓紧记下来,在开始之前安利一个师弟写的几篇博客,写得很不错。本文主要来自正点原子、野火Linux教程及本人理解,若有侵权请及时联系本人删除。从单片机到ARM Linux驱动——Linux驱动入门篇Linux字符设备驱动开发(2)——让开发板上的灯闪烁正文Linux内核是怎么设计字符设备结合前两篇文章,我这里讲的就比较简洁,下图是字符设备的整体框图。将其分为三步。第一步:填充并保存硬件接口这一步就是原创 2021-11-21 22:15:45 · 6330 阅读 · 3 评论