linux驱动学习
文章平均质量分 53
归来仍是_少年
这个作者很懒,什么都没留下…
展开
-
TV a芯片中的按键板驱动分析
1> 设备树信息 /home/rd047/amlogic_code_one/1000_311D2_driverinterface/release/common/ebsw_skg/ebsw_skg/dts/t7_a311d2_an400.dtsadc_keypad { compatible = "amlogic, adc_keypad"; status = "okay"; key_name = "update", "vol-", "vol+", "enter"; key_num = <原创 2021-11-18 16:28:18 · 782 阅读 · 0 评论 -
SPI驱动图解
|| –原创 2021-09-14 16:00:11 · 231 阅读 · 0 评论 -
linux驱动面试题
https://blog.csdn.net/kai_zone/article/details/82021233原创 2021-01-28 10:26:37 · 248 阅读 · 0 评论 -
IMX6ULL_阻塞与非阻塞_note
阻塞与非阻塞IO是linux驱动开发中非常常见的两种设备访问模式这个IO是指Input/Output即输入输出,并不是GPIO。1> 阻塞/非阻塞的概念阻塞IO: 通常我们应用程序中默认的就是阻塞IO,当应用程序对设备进行操作时,如果不能获取到设备资源,那么阻塞IO就会将应用程序对应的线程挂起(睡眠),直到设备资源可以获取为止。流程: 应用程序尝试操作设备 --> 设备不可用 —> 应用程序睡眠 —> 设备可用 --> 唤醒应用程序 —>开始操作设备非阻塞原创 2021-01-20 16:33:04 · 224 阅读 · 0 评论 -
Mstar平台_遥控器驱动
IR框架分为四层:IR Driver层,IR core层, Decoder层, Keymap层。iput_dev层 input_core层 input_handle层 映射层红外遥控器驱动 类似于输入子系统中的 input_device层 硬件初始化,fops操作IR Driver层: 需要实现IR Driver的一些init,interrupt处理,file_operations操作等。IR core层:需要实现提供给decoder层,keymap层的相关接口,raw数据处理接口,i原创 2021-01-13 19:18:53 · 2283 阅读 · 2 评论 -
IMX6ULL_中断笔记
linux内核提供了完善的中断框架1> 什么是中断号?每个中断都有一个中断号,通过中断号即可区分不同的中断中断号也叫中断线在linux中使用int变量来表示中断号2> 中断申请函数 request_irq()int request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags,const char *name, void *dev);irq: 要申请的中断对应的 中断号handler: 中断处理原创 2021-01-05 15:36:42 · 661 阅读 · 0 评论 -
IMX6ULL_内核定时器比较
/*timer定时器测试文件./timerApp /dev/timer_device输入1 关闭定时器 现象:LED状态不在发生改变输入2 打开定时器 现象:LED状态一直发生改变输入3 重新设置定时器的定时值 (用户输入新的值 代表新的定时值ms)*/#include <stdio.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#in原创 2020-12-26 10:31:33 · 575 阅读 · 0 评论 -
IMX6ULL_input子系统笔记
输入驱动知识点1> 逻辑简单,功能简单的输入的实现 --就有限个按键的输入实现这种情况直接使用基本驱动框架来实现,正常情况下和输入相关的驱动都需要通过input子系统来实现代码实现流程:1. 设备树 在设备树文件中定义pinctrl+key的设备节点 --确保定义的pin/gpio信息的唯一性2. 驱动文件 a. 声明驱动信息(author,GPL协议) b. 加载驱动 (module_init) c. 实现驱动加载函数 1. 定义全局设备信息结构体变量 2.原创 2020-12-22 18:26:44 · 225 阅读 · 0 评论 -
IMX6ULL_并发与竞争笔记
linux驱动中的并发处理1> 什么是共享资源?什么是并发?多个任务或者中断都能访问的资源叫做共享资源并发就是多个用户同时访问一个共享资源2> linux系统发生并发事件的几个主要原因a. 多线程并发访问,linux是多任务(线程)的系统,这个是并发的最基本原因b. 抢占式并发访问,linux内核支持抢占,即调度程序可以在任意时刻抢占正在运行的线程,从而运行其他线程c. 中断式并发访问d. 多核间并发访问,多核cpu的存在3> 并发处理操作一般在编写驱动的时候就要考虑到并原创 2020-12-19 11:42:40 · 205 阅读 · 1 评论 -
IMX6ULL_pinctrl/gpio子系统笔记
linux驱动讲究驱动分离和分层,即按照面向对象编程的思想来设计驱动框架,将设备抽象为一个对象结构体(结构体中包含该设备的信息,属性),驱动获取设备树中定义的信息,实现驱动操作pinctrl子系统(1) 没有使用pinctrl+gpio子系统下的驱动框架设备树操作:定义一个有操作设备的对应的设备节点加载函数中的操作定义一个包含该设备相关信息的设备结构体注册设备号对cdev对象操作//a. 设置该cdev对象作用的模块//b. 将fops添加到cdev对象中//c. 将设备号添加到原创 2020-12-12 17:31:22 · 852 阅读 · 0 评论 -
设备树基础知识
linux设备树基础知识:设备树的应用范围?在新版本的linux中。ARM相关的驱动全部采用了设备树,有设备树存在的linux版本,基本上改开发板上的所有linux驱动都会基于设备树开发什么是设备树?设备树的主干就是系统总线设备树的主干下有大树枝,大树枝包括I2C控制器,GPIO控制器,SPI控制器等设备树的大树枝下有小树枝,小树枝包括,I2C1,I2C2等(例如,I2C控制器分为,I2C1,I2C2)设备树的小树枝下要树叶,树叶包括,AT24C02设备(AT24C02是I2C从设备)原创 2020-12-11 16:53:23 · 1066 阅读 · 0 评论 -
git学习
这个博客非常good,爱了爱了!转载地址:https://blog.csdn.net/YJG7D314/article/details/104551896转载 2020-07-24 10:58:33 · 72 阅读 · 0 评论 -
LINUX系统开机后出现assuming drive cache:write through的办法
按Ctrl+Alt回到原本计算机系统,这在vmware窗口底部会有提示的。然后用鼠标在Ubuntu 窗口顶部栏目条依次选择:虚拟机-电源-关闭客户机,关闭虚拟机后,然后在Ubuntu窗口找到设备栏,点击CD/DVD(SATA),在设备状态栏把“启动时连接”取消掉勾勾,确定。重新启动客户机操作系统,等待刚才黑屏页面,一会就可以启动操作系统了转载于 https://blog.csdn.net/m0_38049917/article/details/86705511...转载 2020-07-13 22:53:58 · 5420 阅读 · 1 评论 -
记录第一次写博客
进入写博客界面 1. 登录csdn官网 --> 创作中心(写博客) 2. 学习网站: https://blog.csdn.net/m0_47174928/article/details/106906980?utm_source=blogxgwz4原创 2020-07-09 09:42:39 · 111 阅读 · 0 评论