注释:这是19年初的博客,写得很一般,理解不到位也不全面.19年末得空时又重新看了RTThread的SPI和GPIO,这次理解得比较深刻.有时间时再整理上传. --------------------------------------------------------------------------------------------------------------------------------------------------------------------------…
Go beyond yourself rather than beyond others. 上篇文章 深入理解 EventBus 3.0 之使用篇 我们了解了 EventBus 的特性以及如何使用,这篇文章我们来揭开它神秘的面纱,看看在繁华的背后究竟是怎样的沧桑. 读完本文你将了解: 注解修饰订阅方法 编译时处理注解生成索引 创建 EventBus 最关键的两个属性 SubscriberMethod 订阅方法信息 Subscription 事件订阅总体 SubscriberMethodFinde…
字符设备 Linux中设备常见分类是字符设备,块设备.网络设备,其中字符设备也是Linux驱动中最常用的设备类型.因此开发Linux设备驱动肯定是要先学习一下字符设备的抽象的.在内核中使用struct cdev来描述一个字符设备如下 struct cdev { struct kobject kobj; struct module *owner; const struct file_operations *ops; struct list_head list; dev_t dev; unsigne…
i2c驱动在Linux通过一个周的学习后发现i2c总线的驱动框架还是和Linux整体的驱动框架是相同的,思想并不特殊比较复杂的内容如i2c核心的内容都是内核驱动框架实现完成的,今天我们暂时只分析驱动开发需要完成的部分.iic驱动驱动开发主要是完成四个部分的内容,struct i2c_adapter(适配器),struct i2c_algorithm (通讯接口),i2c_driver(设备驱动),struct i2c_client(iic设备),其中适配器和通讯接口的实现一般SOC厂商都会针对自…
以用i2c通信的实时时钟为例 框架入口源文件:i2c_m41t11.c (可根据入口源文件,再按着框架到内核走一遍) 内核版本:linux_2.6.22.6   硬件平台:JZ2440 以下是驱动框架: 以下是驱动代码 i2c_m41t11.c : #include <linux/kernel.h> #include <linux/init.h> #include <linux/module.h> #include <linux/slab.h> #inclu…
内核版本:linux2.6.32.2  硬件资源:s3c2440 参考:  韦东山SPI视频教程 内容概括:     1.I2C 驱动框架回顾     2.SPI 框架简单介绍     3.master 驱动框架         3.1 驱动侧         3.2 设备侧 4.SPI 设备驱动框架 4.1 设备册         4.2 驱动侧 5.设备驱动程序实例 1.I2C 驱动框架回顾     在前面学习 I2C 驱动程序的时候我们知道,I2C 驱动框架分为两层,一层是控制器驱动程序…
本文转载自;http://blog.csdn.net/oqqHuTu12345678/article/details/72783903 以下内容源于朱有鹏<物联网大讲堂>课程的学习,如有侵权,请告知删除. 一.什么是驱动框架? 1.驱动是谁写的? (1)驱动开发工程师: (2)内核维护者: 2.驱动编程协作要求 (1)接口标准化: (2)内核开发者应该尽量降低驱动开发者难度: 3.到底什么是驱动框架? (1)驱动框架 内核中驱动部分维护者,针对每个种类(比如LED.LCD.蜂鸣器等等)的设备,…
目录 lcd驱动框架 框图 程序分析 入口 打开open 读read 初始化registered_fb 注册 小结 程序设计 测试 方式一操作fb0 方式二操作tty 方式三操作终端 完整程序 title: lcd驱动框架 tags: linux date: 2018/12/3 15:43:23 toc: true --- lcd驱动框架 参考文档 cnblog 鱼树笔记 韦老师2期视频 框图 LCD设备驱动程序应该编写成frambuffer接口, frambuffer设备层是对图像设备的一种抽…
在linux-2.6内核中,IIC的驱动程序可以大概分为三部分: (1)IIC核心代码:/drivers/i2c/i2c-core.c IIC核心提供了IIC总线驱动和设备驱动的注册.注销方法和IIC通信方法.i2c-core.c提供了一组不依赖硬件平台的接口函数,IIC总线驱动和IIC设备驱动之间以i2c-core.c为纽带.                  注册.注销适配器函数 i2c_add_adapter(struct i2c_adapter *adapter); i2c_del_ad…
1.什么是framebuffer? (1)framebuffer帧缓冲(一屏幕数据)(简称fb)是linux内核中虚拟出的一个设备,framebuffer向应用层提供一个统一标准接口的显示设备.帧缓冲(framebuffer) 是Linux为显示设备提供的一个接口,把显存抽象后的一种设备,他允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作.这种操作是抽象的,统一的.用 户不必关心物理显存的位置.换页机制等等具体细节.这些都是由Framebuffer设备驱动来完成的. (2)从驱动来看,f…