- 博客(18)
- 资源 (1)
- 收藏
- 关注
原创 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
779
原创 IMX6ULL_阻塞与非阻塞_note
阻塞与非阻塞IO是linux驱动开发中非常常见的两种设备访问模式这个IO是指Input/Output即输入输出,并不是GPIO。1> 阻塞/非阻塞的概念阻塞IO: 通常我们应用程序中默认的就是阻塞IO,当应用程序对设备进行操作时,如果不能获取到设备资源,那么阻塞IO就会将应用程序对应的线程挂起(睡眠),直到设备资源可以获取为止。流程: 应用程序尝试操作设备 --> 设备不可用 —> 应用程序睡眠 —> 设备可用 --> 唤醒应用程序 —>开始操作设备非阻塞
2021-01-20 16:33:04
222
原创 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
2263
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
646
原创 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
572
原创 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
221
原创 IMX6ULL_并发与竞争笔记
linux驱动中的并发处理1> 什么是共享资源?什么是并发?多个任务或者中断都能访问的资源叫做共享资源并发就是多个用户同时访问一个共享资源2> linux系统发生并发事件的几个主要原因a. 多线程并发访问,linux是多任务(线程)的系统,这个是并发的最基本原因b. 抢占式并发访问,linux内核支持抢占,即调度程序可以在任意时刻抢占正在运行的线程,从而运行其他线程c. 中断式并发访问d. 多核间并发访问,多核cpu的存在3> 并发处理操作一般在编写驱动的时候就要考虑到并
2020-12-19 11:42:40
204
1
原创 IMX6ULL_pinctrl/gpio子系统笔记
linux驱动讲究驱动分离和分层,即按照面向对象编程的思想来设计驱动框架,将设备抽象为一个对象结构体(结构体中包含该设备的信息,属性),驱动获取设备树中定义的信息,实现驱动操作pinctrl子系统(1) 没有使用pinctrl+gpio子系统下的驱动框架设备树操作:定义一个有操作设备的对应的设备节点加载函数中的操作定义一个包含该设备相关信息的设备结构体注册设备号对cdev对象操作//a. 设置该cdev对象作用的模块//b. 将fops添加到cdev对象中//c. 将设备号添加到
2020-12-12 17:31:22
848
原创 设备树基础知识
linux设备树基础知识:设备树的应用范围?在新版本的linux中。ARM相关的驱动全部采用了设备树,有设备树存在的linux版本,基本上改开发板上的所有linux驱动都会基于设备树开发什么是设备树?设备树的主干就是系统总线设备树的主干下有大树枝,大树枝包括I2C控制器,GPIO控制器,SPI控制器等设备树的大树枝下有小树枝,小树枝包括,I2C1,I2C2等(例如,I2C控制器分为,I2C1,I2C2)设备树的小树枝下要树叶,树叶包括,AT24C02设备(AT24C02是I2C从设备)
2020-12-11 16:53:23
1065
原创 IMX6ULL_rootfs笔记
学习根文件系统的组成以及如何构建根文件系统根文件系统构建完成 == 我们开发板就拥有了一个完整的,可运行的最小系统以后我们就可以在这个最小系统上编写测试linux驱动,移植第三方组件,最终得到一个功能完善,驱动齐全的操作系统什么是根文件系统?a. 根文件系统一般被叫做rootfsb. 根文件系统并不是FAT,EXT这样的文件系统代码,rootfs更像是一个目录,在这个目录里面有许多的子目录,目根录和子目录下有许多的文件c. 根文件系统是内核启动时所挂载(mount命令)的第一个文件系统e.
2020-12-11 16:52:01
522
1
原创 正点原子IMX6ULL_linux内核笔记
linux内核基础知识编译Linux内核1> 编译内核需要编译环境,故要先在编译服务器Ubuntu上安装lzop库2> 将从网上下载的内核压缩包存放到ubuntu中开始编译三部曲1. 解压文件2. 创建编译脚本文件,给权限3. 脚本文件中写入编译命令编译命令如下make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean //清理工程,这里会删除.config文件make ARCH=arm CROSS_COM
2020-12-10 19:16:17
1474
转载 make menuconfig分析
https://blog.csdn.net/qingkongyeyue/article/details/52503313 ==> 好评
2020-12-10 18:33:27
92
原创 正点原子IMX6ULL,UBoot笔记
uboot是什么: 是一个bootloader程序,芯片上电以后就会运行的程序uboot的作用:1. 初始化DDR等外设,一系列的裸机程序2. 将linux内核从flash(emmc,nand等,emmc为例,linux内核是存放在第三区中)拷贝到DDR中3. 引导启动Linux内核uboot是一个裸机代码的集合,是遵循GPL协议的开源代码uboot代码分3种类型A. uboot官方代码 包含所有常用芯片 一般不直接使用该代码B. 半导体厂商代码 只维护一个uboot,该uboot专门针对
2020-12-10 17:18:26
1978
转载 git学习
这个博客非常good,爱了爱了!转载地址:https://blog.csdn.net/YJG7D314/article/details/104551896
2020-07-24 10:58:33
72
转载 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
5408
1
原创 记录第一次写博客
进入写博客界面 1. 登录csdn官网 --> 创作中心(写博客) 2. 学习网站: https://blog.csdn.net/m0_47174928/article/details/106906980?utm_source=blogxgwz4
2020-07-09 09:42:39
111
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人