随笔分类 - Linux 内核 && 驱动
Linux内核 && 驱动知识
摘要:参考资料:《正点原子Linux驱动开发指南》 volatile关键字可参考:https://www.cnblogs.com/lethe1203/p/18031883 原子操作是防止并发访问共享资源的方法之一 linux内核中对原子操作的定义: #include <linux/types.h> typ
阅读全文
摘要:参考: 《Linux设备驱动开发》 http://www.wowotech.net/linux_kenrel/dma_engine_overview.html https://blog.csdn.net/yangguoyu8023/article/details/121852348 https://
阅读全文
摘要:DMA介绍可见:https://www.cnblogs.com/lethe1203/p/18092378 本节复习2440 DMA使用 参考资料:韦东山驱动第二期 DMA字符驱动代码: #include <linux/module.h> #include <linux/kernel.h> #incl
阅读全文
摘要:内核睡眠机制: 进程通过睡眠机制释放处理器,使其能够处理其他线程。处理器睡眠的原因可能在于感知数据可用性,或等待资源释放 内核调度器管理要运行的任务列表,这被称为运行队列。睡眠进程不再被调度,因为已将它们从运行队列中移除了。除非改变状态(唤醒),否则睡眠进程将永远不会被执行。进程一旦进入等待状态,就
阅读全文
摘要:基本概念: completion(完成)机制是一种同步原语,用于在线程间实现等待和通知的机制。它提供了一种方式,允许一个线程等待其他线程的完成,并在完成时通知等待线程。在 Linux 内核中,struct completion 表示 completion 对象。它包含一个计数器和一个等待队列,以及相
阅读全文
摘要:在 clk_provider 中,常见的时钟类型包括以下几种: Fixed Clock(固定时钟):固定频率的时钟,不可更改。它通常用于提供固定频率的时钟信号,例如系统时钟或者外设的时钟。 Gate Clock(时钟门控):通过控制时钟门控信号来开关时钟。可以使用 clk_register_gate
阅读全文
摘要:DMA映射可参考:https://www.cnblogs.com/lethe1203/p/18092749 reserved_memory方式 1、定义保留内存的节点,由设备节点使用 test_device_reserved: pmu_noc@0xe8000000 { compatible = "s
阅读全文
摘要:参考资料: https://elinux.org/images/3/32/Pinchart--mastering_the_dma_and_iommu_apis.pdf 《宋宝华:Linux设备驱动开发详解》 VA和PA的相互转换: 系统启动时,MMU便会建立映射表,将DRAM物理地址和虚拟地址进行映
阅读全文
摘要:本节内容参考《宋宝华:Linux设备驱动开发详解》 cache和DMA本身似乎是两个毫无关联的事物。cache被用作CPU针对内存的缓存,利用程序的空间局部性和时间局部性原理,达到较高的命中率,从而避免CPU每次都必须要与相对慢速的内存交互数据来提高数据的访问速率。DMA可以作为内存与外设之间传输数
阅读全文
摘要:参考资料: https://blog.csdn.net/as480133937/article/details/104927922 【ARM AMBA AXI 入门 2 - AXI协议中的BURST】 AXI3/4协议_axi3协议-CSDN博客 【注】:关于dw_axi_dmac的理解是我个人理解
阅读全文
摘要:复位模式 在硬件设备被置于复位模式时,通常会限制或禁止对设备寄存器的读写操作。这是为了确保在复位模式下设备能够以可控和可预测的方式进行初始化和复位操作。具体而言,当设备被置于复位模式时,其内部状态和寄存器值可能会被清零或设置为初始状态。此时,外部对设备的读写操作可能会受到限制或无效。 linux r
阅读全文
浙公网安备 33010602011771号