Lnux自带i2c工具使用

Lnux自带i2c工具使用

I2C总线已成为一个全球标准,被1000多个来自50多个公司的ICs所使用。此外,I2C总线与许多不同的控制总线兼容,例如SMBus(系统管理总线)、PMBus(电源管理总线)、IPMI(智能平台管理总线)、DDC(显示数据通道)以及ATCA(高级电信架构)。如果我没有记错的话,Linux中的I2C框架完全支持SMBus。同时,图中显示了Linux自带的I2C工具的使用情况。

详解Linux内核中的内存屏障

详解Linux内核中的内存屏障

我之前阅读了一篇关于顺序一致性和缓存一致性的讨论文章,对于这两个概念的区别和联系有了更加清晰的认识。在Linux内核中,有很多同步和屏障机制,我想在此做一些总结。

详解Linux MTD层次

详解Linux MTD层次

MTD(memory technology device内存技术设备)是Linux中的一个子系统,用于访问memory设备(如ROM、flash)。MTD的主要目的是简化新memory设备的驱动开发,为此,它在硬件和上层之间提供了一个抽象的接口。MTD的所有源代码都在/drivers/mtd子目录下。CFI接口的MTD设备可以分为四层(从设备节点直到底层硬件驱动),这四层从上到下分别为:设备节点、MTD设备层、MTD原始设备层和硬件驱动层。

Linux内核初始化过程中的调用顺序

Linux内核初始化过程中的调用顺序

所有的__init函数被保存在.initcall.init区段中,同时也保存了一份函数指针。在内核初始化时,内核通过这些函数指针调用这些__init函数指针。整个初始化完成后,包括.init.text和.initcall.init在内的整个init区段都会被释放。

Syscall系统调用Linux内核跟踪

Syscall系统调用Linux内核跟踪

在Linux用户空间中,我们常常需要调用系统调用。下面我们以Linux2.6.37版本为例,跟踪一下read系统调用的实现。不同版本的Linux系统调用实现可能会有所不同。

对Linux的进程内核栈的认识

对Linux的进程内核栈的认识

当我重新阅读《LDD3》时,我发现了一个曾经忽略的句子:“内核具有非常小的栈,它可能只有像一个4096字节大小的页那样小。” 针对这句话,我简单地学习了一下进程的“内核栈”。

Linux USB 驱动开发(一)—— USB设备基础概念

Linux USB 驱动开发(一)—— USB设备基础概念

对于终端用户而言,USB设备能够为主机提供各种附加功能,例如文件传输和声音播放等。然而对于USB主机而言,它与所有USB设备的接口都是一致的。一个USB设备由三个功能模块组成:USB总线接口、USB逻辑设备和功能单元。

详解Linux体系结构和内核结构

详解Linux体系结构和内核结构

如下图所示,Linux体系结构,从大的方面可以分为用户空间(User Space)和内核空间(Kernel Space)。

详解分析 Linux 内核链表

详解分析 Linux 内核链表

链表是一种常用的组织有序数据的数据结构。它通过指针将一系列数据节点连接成一条数据链,是线性表的一种重要实现方式。相对于数组,链表具有更好的动态性。建立链表时无需预先知道数据总量,可以随机分配空间,可以高效地在链表中的任意位置实时插入或删除数据。链表的主要开销在于访问的顺序性和组织链的空间损失。

详解Linux内核定时器的使用

详解Linux内核定时器的使用

LINUX内核定时器是内核用来控制在未来某个时间点(基于jiffies)调度执行某个函数的一种机制。该机制的实现位于和kernel/timer.c文件中。

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部