0%

这篇文章在note1的基础上,进一步记录实现一个ioctl要注意的地方。相关的代码在: https://github.com/wangzhou/scull.git, tag: scull_2

阅读全文 »

LDD3的第三章介绍了一个简单的字符设备,实现了read/write/open/release等回调函数。 网上有LDD3自带的源代码,为了方便查找,我把官方源代码放到了: https://github.com/wangzhou/ldd3.git 自己实现的代码(第三章的简易字符设备)放在了:https://github.com/wangzhou/scull.git 本文只是记录一下实现中遇到的需要注意的地方,适合驱动入门的读者。

阅读全文 »

本文介绍在C语言嵌入汇编语言的方法,linux kernel里有很多这样的例子。这里在aarch64 平台下介绍,所有例子都是这个平台下的。网上的这篇文章已经有很好的介绍,大家可以 参阅: http://www.ethernut.de/en/documents/arm-inline-asm.html, http://ericw.ca/notes/a-tiny-guide-to-gcc-inline-assembly.html https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html

阅读全文 »

本文主要讲linux kernel里scatterlist的使用方法,有的设备驱动需要使用这个接口编程。 本文从设备的硬件结构,kernel scatterlist的原理,以及scatterlist API说明应该怎么 用这个接口, 很多是自己的初步理解。下面的两篇文章都是讲scatterlist的,可以参考看下: http://www.wowotech.net/memory_management/scatterlist.html https://lwn.net/Articles/234617/ lwn的文章讲的已经比较好了,wowo的文章讲了数据结构,但是基本上没有把逻辑讲完整。

阅读全文 »

本文分析Linux kernel里crypto子系统的大概实现,写crypto子系统下的加速器驱动的时候 可以参考下。crypto子系统支持加解密,压缩解压缩等功能。

阅读全文 »