linux驱动
文章平均质量分 79
jaky_
这个作者很懒,什么都没留下…
展开
-
Linux时间管理与定时器
学习资料:LINUX驱动程序开发实例教程2时钟周期是指1s,而时钟频率是指1s内时钟脉冲的个数;时钟滴答:1s内的时钟中断数1.问:时间戳和节拍总值jiffies有什么区别?答:时间戳是通过读取timer寄存器或者RTC芯片的寄存器获取的,timer每来一次节拍时间戳就会加一;而jiffies是一个软件的概念,是系统启动之后从零开始每来一次节拍就加一,jiffies的值与时间戳不相等;2.基本概念:系统时间:从内核启动开始计时的时间积累,为软件记录的时间;实时时间:RTC时间,从元年1970原创 2022-04-11 18:20:46 · 1679 阅读 · 0 评论 -
硬件原理图学习笔记
这一个星期认真学习了硬件原理图的知识,做了一些笔记,方便以后查找。硬件原理图分为三类1.管脚类(gpio)和门电路类 输入输出引脚,上拉电阻,三极管 与门,或门,非门 上拉电阻:正向标志作用,给悬空的引脚一个确定的状态 三极管:反向三极管(gpio输出高电平,NP两端导通,被控制端导通,电压为0)->NPN 正向三极管(gpio输出低电平,PN两端导通,被控制端导通,电压为0)->PNP 2.协议类(1.双方约定一定的信......原创 2021-06-30 11:35:59 · 9376 阅读 · 2 评论 -
Linux内核的寻址过程
Linux内核寻址的思想是内核怎样通过一个逻辑地址(虚拟地址)访问到对应的物理地址? 第一阶段 逻辑地址转换为线性地址首先熟悉几个重要概念逻辑地址: 包含在机器语言指令中用来指定一个操作数或一条指令的地址。逻辑地址的组成:共48位组成,1)高16位为段(段选择符),2)低32位为偏移量(指明了从段开始的地方到实际地址之间的距离)。线性地址: 32位无符号整数,表示高达4G的地址。用十六进制表示。 范围:0x0000000转载 2022-03-31 17:18:07 · 282 阅读 · 0 评论 -
锁相环PLL的工作原理
一、PLL和DLL的区别 (一)、PLL原理 PLL(Phase Locked Loop),生成时钟的核心部分是压控振荡器(Voltage-Controlled Oscillator,VCO)。它是可根据输入的电压调整输出频率的振荡器,如下图所示。 它的基本原理是通过负反馈形成闭...转载 2021-11-26 10:56:53 · 4540 阅读 · 0 评论 -
Linux spi总线驱动
spi 硬件spi_flash的gpio引脚安排:Vcc : 3.3v j1-pin17Vdd : 0 j1-pin20spimiso :GPG5 j3-pin33spimosi :GPG6 j3-pin35spiclk :GPG7 j3-pin34flash_cs:GPG2 j3-pin36标准的spi工作模式do在时钟的上升沿将数据写到flash,在时钟的下降沿将数据从flash读回来。spi控制.原创 2021-07-30 15:23:30 · 794 阅读 · 0 评论 -
Linux nand设备驱动
1.先看硬件原理图,nand是怎样接到主控芯片的哪里,nand芯片的各个管脚是什么意义?各个管脚要怎样配合才可以访问nand; 主控芯片的nand控制器的RnB管脚接到---->nand芯片的R/B管脚,这个管脚是判断nand芯片是否正忙的管脚,主控芯片通过读nand控制器的RnB为0说明nand正忙(读寄存器NFSTAT的bit0); 主控芯片的nand控制器的CLE管脚接到---->nand芯片的非CLE管脚,当主控芯片的CLE管脚拉低时,出现在data0~data7的数据是...原创 2021-07-30 14:53:03 · 1220 阅读 · 0 评论 -
编写Linux usb 键盘驱动的笔记
编写linux usb 设备驱动参考: \\10.150.50.230\zhangjiaqi\linux-5.8.5\Documentation\driver-api\usb\writing_usb_driver.rst \\10.150.50.230\zhangjiaqi\linux-5.8.5\drivers\usb\usb-skeleton.c //usb设备驱动标准框架,这是一个usb磁盘驱动程序,用户app通过open,wrire,read读写磁盘(u盘);写linux ...原创 2021-07-20 15:32:53 · 723 阅读 · 0 评论 -
linux i2c 总线驱动编写及分析笔记
1.写i2c控制器驱动即是写i2c_adapter或者i2c_bus驱动, 写这个驱动属于对i2c control的硬件操作驱动,必须要将芯片手册的关于i2c control的硬件启动流程仔细研读一遍。2.内核i2c协议层的分析: 写:只有1个msg(msg[0])传递给adapter,num=1(msg的数量); msg.addr = slave_id msg.buf = char data[2],data[0]=command(片内地址),data[1]=val...原创 2021-07-13 18:22:19 · 976 阅读 · 0 评论