内核驱动学习笔记
文章平均质量分 78
个人的内核、驱动学习笔记,断断续续,贵在坚持。
内核版本可能不同,涉及平台可能不同。
会稍微涉及原理,但以实践为主。
李迟
李迟,男,已婚,字子徐,一字仲文,别号水田居士,木草山人。有一儿一女,李大锤和李大妞。来自广西岑山溪水之地,家在一垌之尾。毕业于桂林电子科技大学三院1专业。摄影师,金融学者,历史家,科学哲学爱好者,社会问题研究者,持证上岗者(架构师、项目管理师),爱好广泛而无精通者。古文、诗词、文学、小说、武侠、经济、社会等无所不涉。目前主要混迹于显示器、鼠标、键盘之间。于代码及兴趣之事中有所得,与好友谈之一二,足矣。
展开
-
我的内核学习笔记16:海思Hi3516平台PWM使用记录
本文介绍海思平台 Hi3516 的 PWM 使用,包括手册介绍及用户空间控制。原创 2020-06-23 23:21:02 · 3583 阅读 · 0 评论 -
我的内核学习笔记15:海思Hi3516平台GPIO使用记录
本文介绍海思平台 Hi3516 的 GPIO 使用,包括手册介绍及用户空间控制。原创 2020-06-22 00:51:09 · 4450 阅读 · 3 评论 -
我的内核学习笔记14:内核设备树学习
李迟按: 上一篇内核的文章是2年半前,期间因工作转行而停止研究,最近又重新捡起。这个系列从2013年起间断地更新,本来想从系统角度逐步写的,但工作量十分庞大,现在也想通了,在适合的时间写,不带目的,不强迫自己完成什么任务。不强调什么平台/芯片、内核版本。一篇文章针对一、两个知识点即可。 本文是笔者接触设备树的第一个实例,仅仅是验证设备树简单的写法和几个函数的使用。原创 2019-06-12 21:52:23 · 2448 阅读 · 0 评论 -
我的内核学习笔记13:x86平台linux系统重启流程跟踪
一直以来,笔者只知道重启Linux系统性使用reboot,但对其过程却无所知,涉及到哪些知识点也无概念。本文就跟踪一下重启的流程,平台为Intel x86,Linux内核版本为3.17。原创 2017-01-12 19:16:04 · 4331 阅读 · 0 评论 -
我的内核学习笔记12:linux i2c-gpio驱动应用实例
linux内核的i2c-gpio是使用GPIO模拟I2C协议的驱动,只需要配置2根GPIO即可使用。Linux的I2C子系统比较复杂,笔者暂时还没有研究。本着“实用”的目的,介绍一下如何使用这个驱动及一些注意事项。原创 2016-12-09 21:15:48 · 5470 阅读 · 0 评论 -
我的内核学习笔记11:linux leds-gpio驱动应用实例
linux内核的leds-gpio是使用GPIO控制LED的驱动,只要将板子上LED灯对接的GPIO引脚号进行适当的配置,就能使用这个驱动了,十分方便。网上有很多文章分析这个驱动,就不献丑——或者后面闲时再写写吧。原创 2016-12-08 21:13:02 · 11264 阅读 · 8 评论 -
我的内核学习笔记10:Intel GPIO驱动源码分析
本文对intel e3800的GPIO驱动源码进行分析。原创 2016-12-07 21:12:43 · 5733 阅读 · 0 评论 -
我的内核学习笔记9:Intel内部看门狗iTCO_wdt驱动
本文对intel e3800内部看门狗驱动源码进行分析。原创 2016-12-06 22:40:20 · 13608 阅读 · 2 评论 -
我的内核学习笔记8:多功能设备mfd驱动
前段时间分析了Intel的lpc驱动,里面涉及了mfd,但网络上关于mfd的资料少之又少。所以就自己分析一下代码。本文对Linux内核的mfd设备注册过程进行分析,并结合2个实例,加深对其概念。原创 2016-12-05 22:18:21 · 7166 阅读 · 0 评论 -
我的内核学习笔记7:Intel LPC驱动lpc_ich分析
接触这么久的内核代码,还没有真正分析一个完整的驱动源码,都是零零散散写只言片字。本文就作一个尝试,写一写Linux内核源码分析层面的文章。本文介绍基于Intel baytrail系列的e3800系列的SOC的LPC驱动。后续文章将进行该系列的WDT和GPIO驱动分析。原创 2016-12-05 21:12:09 · 6541 阅读 · 0 评论 -
我的内核学习笔记6:PCI驱动probe的一点认知
对于PCI的学习,在文章《初识PCI》和《再识PCI:一个PCI驱动实例》中有介绍,文中使用大量代码进行演示。但总觉得有些认知不到位。于是就再写一文。原创 2016-12-03 13:14:50 · 9108 阅读 · 0 评论 -
我的内核学习笔记5:proc目录文件创建及读写
上一篇内核学习笔记《我的内核学习笔记4:sysfs学习》是2013年写的,彼时至今,随着工作的展开和安排,内核方面的知识可谓突飞猛进,当然,其它方面亦是如此。关于内核方面,积累的笔记大大小小有几十篇了,但只是笔记形式或代码片段,无法形成文章,不敢献艺,怕贻笑大方。原创 2016-10-13 22:46:31 · 3586 阅读 · 0 评论 -
我的内核学习笔记4:sysfs学习
写这篇文章起因缘于自己的无知。那个很牛的同事还未离职前,我们组被领导挖了个坑,四个不知天高地厚的小伙伴傻傻地接受了——去抄人家的板子,做一个项目,说让我们组挑大梁。回想起来,真是一把辛酸泪。自从使用了那个同事移植的内核后,发现内核十分强大,许多驱动已经集成了——原谅我的无知,最近的两年时间里,完全没接触过内核,只是跟内核提供的接口打交道,我只知道使用open、ioctl、close,其它就原创 2013-11-25 21:38:40 · 1388 阅读 · 0 评论 -
我的内核学习笔记3:我的platform驱动模板文件
前面的例子已经实现platform驱动了,可以将之前的字符设备驱动整合到这个驱动中,实际上我也做了这一步。因为没有什么技术含量,所以忽视它的存在(就不发表出来)。这篇文章是将实现好的基于platform模型的字符设备驱动简化成一个可用的模板。即如要实现字符设备,可直接套用此模板。 /** * @file foo_drv.c * @author Late Lee * @date原创 2013-11-23 17:31:27 · 1178 阅读 · 0 评论 -
我的内核学习笔记2:platform设备模型
说实话,我做这个例子之前,我对linux的platform设备、platform驱动了解不多,只知道有这些东西,但没概念。上网搜索了一些资料,并下了点功夫跟踪了内核源代码,虽然不能说吃透了原理,但也不至于像以前那样一无所知。这篇文章主要是说一下实现了一个简单的驱动例子。为了明确层次,不把所有代码都放到一个文件中,这个例子中,分别有设备文件simplechar_dev.c,驱动文件simplec原创 2013-11-23 17:17:17 · 1337 阅读 · 0 评论 -
我的内核学习笔记1:字符设备完善
将以前实现的字符设备改进一点点,添加了ioctl,但没有seek功能,也没有自动创建设备文件功能。/*************************************************************************简单的字符型设备驱动从应用层获取一数据,再复制到应用层(在前面添加字符串)。注册设备号及设备号的几个宏,均系ldd3例子scull。2011原创 2013-11-23 17:03:21 · 1205 阅读 · 0 评论 -
我的内核学习笔记:环境
最近一篇写的关于linux内核的文章是2年前,这次因为某些原因,不得不再接触内核。2年过去了,激情不再,看着满是灰尘的2440开发板,不禁感慨当年奋斗的时光。这次学习,纯粹是不得已而为之,深入想一想,除了事情本身外,自己还是能学到东西的。作为日后的一个资本,也是不错了。鉴于环境限制,只能在虚拟机上进行模拟测试。我有一个原则,自己学习的东西(不是工作)绝不占用公司资源——公司有现成的arm嵌入式设备原创 2013-11-18 22:04:08 · 1413 阅读 · 0 评论