Fork me on GitHub
摘要: ARM CoreLink 是 ARM 公司开发的一系列系统 IP(知识产权)产品,用于连接和管理片上系统(SoC)中的各个组件。它是 ARM 系统设计生态系统的重要组成部分,旨在帮助芯片设计者更快速、更高效地开发复杂的 SoC 设计。让我为您详细介绍一下 ARM CoreLink: 主要功能: 互连 阅读全文
posted @ 2024-10-20 23:29 yooooooo 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 1. 前言 本文将从provider的角度,介绍怎样在linux kernel dmaengine的框架下,编写dma controller驱动。 2. dma controller驱动的软件框架 设备驱动的本质是描述并抽象硬件,然后为consumer提供操作硬件的友好接口。dma controll 阅读全文
posted @ 2024-10-20 22:06 yooooooo 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 1. 前言 从我们的直观感受来说,DMA并不是一个复杂的东西,要做的事情也很单纯直白。因此Linux kernel对它的抽象和实现,也应该简洁、易懂才是。不过现实却不甚乐观(个人感觉),Linux kernel dmaengine framework的实现,真有点晦涩的感觉。为什么会这样呢? 如果一 阅读全文
posted @ 2024-10-20 22:05 yooooooo 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 1. 前言 前面文章介绍“Linux MMC framework”的时候,涉及到了MMC数据传输,进而不可避免地遭遇了DMA(Direct Memory Access)。因而,择日不如撞日,就开几篇文章介绍Linux的DMA Engine framework吧。 本文是DMA Engine fram 阅读全文
posted @ 2024-10-20 15:10 yooooooo 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 1.USB传输架构和包的组成 本节我们开始对USB包进行深入讲解,USB所有的传输都会被分成包进行传输,不同类型的包里面包含着不同的域(后面一一学习)。传输架构和包的组成如下图。 每个包都由SOP(包起始域)、SYNC(同步域)、Packet Content(包内容)、EOP(包结束域)四部分组成, 阅读全文
posted @ 2024-10-20 14:35 yooooooo 阅读(16) 评论(0) 推荐(1) 编辑
摘要: 1.USB传输回顾 前面讲了四种传输的类型的事务组成,包括控制传输,同步传输,批量传输,中断传输。 2.USB事务总结 本节我们来对事务(transaction)相关内容做以总结,从前面学习中我们可以看到其实事务有三种类型,Setup事务、Data IN事务、Data OUT事务。 Setup事务: 阅读全文
posted @ 2024-10-20 14:31 yooooooo 阅读(27) 评论(0) 推荐(1) 编辑
摘要: 1.前言 中断传输用于那些频率不高,但是对周期有一定要求的数据传输。具有保证的带宽,并能在下一个周期对先前错误的传输进行重传。中断端点在端点描述符中要报告主机对此端点的查询时间,主机会保证在小于这个时间间隔的范围内安排一次传输,比如HOST主机1ms内向鼠标设备请求一次数据。对于全速端点,中断传输的 阅读全文
posted @ 2024-10-20 14:28 yooooooo 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 1.前言 前面讲过USB一个传输由多个事务组成,一个事务由多个包实体组成。传输又分为控制传输、同步传输、批量传输、中断传输四种,上一节我们讲了同步传输细节及事务组成,今天我们主要讲解批量传输及事务组成,批量传输也叫大容量传输。 批量传输和同步传输类似,是使用批量事务(Bulk Transaction 阅读全文
posted @ 2024-10-20 14:22 yooooooo 阅读(39) 评论(0) 推荐(0) 编辑