X-023-KERNEL-Linux pinctrl driver的移植
作者:wowo 发布于:2017-7-14 21:58 分类:X Project
本文是“linux内核中的GPIO系统之(4):pinctrl驱动的理解和总结”的一个实例,结合”X Project”的开发过程,介绍pinctrl driver的移植步骤,进而加深对pinctrl framework的理解。
注1:本文后续的描述,kernel基于本站“X Project”所使用的kernel版本[4],硬件基于 ”X Project”所使用的“Bubbugum-96”平台。
标签: Linux Kernel driver porting pinctrl
蜗窝微信群问题整理
作者:linuxer 发布于:2017-7-11 19:00 分类:技术漫谈
蜗窝微信群开张了,这个群是为那些愿意慢下来,仔细研究内核技术、愿意为了搞清楚内核代码逻辑而废寝忘食的工程师准备的,在这个群里,大家讨论了一些技术问题,当然,也有一些问题没有解决和答案。鉴于微信群的特点,我还是把大家讨论的技术整理了一下,分享出来,希望能够对其他工程师有所帮助。标签: 蜗窝微信群
CMA模块学习笔记
作者:linuxer 发布于:2017-6-28 18:29 分类:内存管理
本文是近期学习CMA模块的一个学习笔记,方便日后遗忘的时候,回来查询以便迅速恢复上下文。
学习的基本方法是这样的:一开始,我自己先提出了若干的问题,然后带着这些问题查看网上的资料,代码,最后整理形成这样以问题为导向的index,顺便也向笨叔叔致敬。笨叔叔写了一本书叫做《奔跑吧Linux内核》,采用了问答的方式描述了4.x Linux内核中的进程管理、内存管理,同步和中断子系统。7月将和大家见面,敬请期待。
阅读本文最好手边有一份linux source code,我使用的是4.4.6版本。
标签: Memory CMA Contiguous Allocator
linux内核中的GPIO系统之(4):pinctrl驱动的理解和总结
作者:wowo 发布于:2017-6-27 22:30 分类:GPIO子系统
本站之前的三篇文章[1][2][3]介绍了pin controller(对应的pin controller subsystem)、gpio controller(对应的GPIO subsystem)有关的基本概念,包括pin multiplexing、pin configuration等等。本文将基于这些文章,单纯地从pin controller driver的角度(屏蔽掉pinctrl core的实现细节),理解pinctrl subsystem的设计思想,并掌握pinctrl驱动的移植和实现方法。标签: Linux driver GPIO subsystem pinctrl
为什么会有文件系统(二)
作者:驴肉火烧 发布于:2017-6-27 21:06 分类:文件系统
距我将全套盗墓笔记成功保存在8MB空间里已经过去了19天58分钟32秒,我渐渐发觉更高、更快、更强的绝不限于奥运精神,也充分体现了人类贪婪的本质,无尽的需求催生出这光怪陆离的大千世界。
就在今天下午,我得到一个通知,要么继续使用连续的存储空间,但是只能有4MB,要么去使用不连续的存储空间,总量可以仍然是8MB,那一刻,我的内心反而是平静的,因为我知道,这就是现实,一个不够优秀的系统是无法满足各种刁钻的需求的,并且我并不想丢掉一半的盗墓笔记,所以我必须使用不连续的存储空间,一个不算坏的消息是,就算是不连续,但是每块最小也有2048字节,并且连续的存储空间是2048字节对齐的,还有什么好说的,撸起袖子加油干,这很2017。
标签: 文件系统
Linux DMA Engine framework(3)_dma controller驱动
作者:wowo 发布于:2017-5-18 21:56 分类:Linux内核分析
本文将从provider的角度,介绍怎样在linux kernel dmaengine的框架下,编写dma controller驱动。标签: driver controller framework dma engine
Linux的时钟
作者:linuxer 发布于:2017-5-17 18:55 分类:时间子系统
时钟或者钟表(clock)是一种计时工具,每个人都至少有一块,可能在你的手机里,也可能佩戴在你的手腕上。如果Linux也是一个普通人的话,那么她的手腕上应该有十几块手表,包括:CLOCK_REALTIME、CLOCK_MONOTONIC、CLOCK_PROCESS_CPUTIME_ID、CLOCK_THREAD_CPUTIME_ID、CLOCK_MONOTONIC_RAW、CLOCK_REALTIME_COARSE、CLOCK_MONOTONIC_COARSE、CLOCK_BOOTTIME、CLOCK_REALTIME_ALARM、CLOCK_BOOTTIME_ALARM、CLOCK_TAI。本文主要就是介绍Linux内核中的形形色色的“钟表”。标签: clock
Linux DMA Engine framework(2)_功能介绍及解接口分析
作者:wowo 发布于:2017-5-2 22:47 分类:Linux内核分析
从我们的直观感受来说,DMA并不是一个复杂的东西,要做的事情也很单纯直白。因此Linux kernel对它的抽象和实现,也应该简洁、易懂才是。不过现实却不甚乐观(个人感觉),Linux kernel dmaengine framework的实现,真有点晦涩的感觉。为什么会这样呢?
如果一个软件模块比较复杂、晦涩,要么是设计者的功力不够,要么是需求使然。当然,我们不敢对Linux kernel的那些大神们有丝毫怀疑和不敬,只能从需求上下功夫了:难道Linux kernel中的driver对DMA的使用上,有一些超出了我们日常的认知范围?
要回答这些问题并不难,将dmaengine framework为consumers提供的功能和API梳理一遍就可以了,这就是本文的目的。当然,也可以借助这个过程,加深对DMA的理解,以便在编写那些需要DMA传输的driver的时候,可以更游刃有余。
标签: Linux Kernel 内核 API dma engine
系统休眠(System Suspend)和设备中断处理
作者:linuxer 发布于:2017-4-21 12:02 分类:电源管理子系统
本文主要描述系统休眠过程是如何和中断子系统交互的,全文的结构保持和内核文档中的power/suspend-and-interrupts.txt一致,当然,本质上也可以说这份文档是对suspend-and-interrupts.txt的翻译。Linux DMA Engine framework(1)_概述
作者:wowo 发布于:2017-3-30 22:01 分类:Linux内核分析
前面文章介绍“Linux MMC framework”的时候,涉及到了MMC数据传输,进而不可避免地遭遇了DMA(Direct Memory Access)。因而,择日不如撞日,就开几篇文章介绍Linux的DMA Engine framework吧。
本文是DMA Engine framework分析文章的第一篇,主要介绍DMA controller的概念、术语(从硬件的角度,大部分翻译自kernel的document[1])。之后,会分别从Provider(DMA controller驱动)和Consumer(其它驱动怎么使用DMA传输数据)两个角度,介绍Linux DMA engine有关的技术细节。
功能
最新评论
文章分类
随机文章
文章存档
- 2024年2月(1)
- 2023年5月(1)
- 2022年10月(1)
- 2022年8月(1)
- 2022年6月(1)
- 2022年5月(1)
- 2022年4月(2)
- 2022年2月(2)
- 2021年12月(1)
- 2021年11月(5)
- 2021年7月(1)
- 2021年6月(1)
- 2021年5月(3)
- 2020年3月(3)
- 2020年2月(2)
- 2020年1月(3)
- 2019年12月(3)
- 2019年5月(4)
- 2019年3月(1)
- 2019年1月(3)
- 2018年12月(2)
- 2018年11月(1)
- 2018年10月(2)
- 2018年8月(1)
- 2018年6月(1)
- 2018年5月(1)
- 2018年4月(7)
- 2018年2月(4)
- 2018年1月(5)
- 2017年12月(2)
- 2017年11月(2)
- 2017年10月(1)
- 2017年9月(5)
- 2017年8月(4)
- 2017年7月(4)
- 2017年6月(3)
- 2017年5月(3)
- 2017年4月(1)
- 2017年3月(8)
- 2017年2月(6)
- 2017年1月(5)
- 2016年12月(6)
- 2016年11月(11)
- 2016年10月(9)
- 2016年9月(6)
- 2016年8月(9)
- 2016年7月(5)
- 2016年6月(8)
- 2016年5月(8)
- 2016年4月(7)
- 2016年3月(5)
- 2016年2月(5)
- 2016年1月(6)
- 2015年12月(6)
- 2015年11月(9)
- 2015年10月(9)
- 2015年9月(4)
- 2015年8月(3)
- 2015年7月(7)
- 2015年6月(3)
- 2015年5月(6)
- 2015年4月(9)
- 2015年3月(9)
- 2015年2月(6)
- 2015年1月(6)
- 2014年12月(17)
- 2014年11月(8)
- 2014年10月(9)
- 2014年9月(7)
- 2014年8月(12)
- 2014年7月(6)
- 2014年6月(6)
- 2014年5月(9)
- 2014年4月(9)
- 2014年3月(7)
- 2014年2月(3)
- 2014年1月(4)