问题标签 [amba]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1182 浏览

vhdl - 使用自定义外设、AMBA AHB 从机扩展 LEON SOC 的示例

这里有没有人用自定义硬件扩展了 LEON3 软核?我正在寻找如何将自定义外设添加到 AMBA AHB 总线的基本示例

0 投票
2 回答
2763 浏览

arm - ARM Cortex 处理器中的 L1 高速缓存端口

我做了一些研究,但找不到太多信息。

我想知道 ARM 嵌入式处理器有多少L1读取和 L1 写入端口以及端口的宽度。具体来说,我对 Cortex-A8、Cortex-A9 和 Cortex-A15 感兴趣。

我的盲目猜测是 Cortex-A9 处理器有一个 64 位宽的 L1 读端口和一个 L1 写端口。我的另一个猜测是它有一个共享的读/写端口。对此有什么想法吗?

0 投票
2 回答
2346 浏览

linux - 任何用于 AXI-burst 类型设备的内置 Linux 方法?

我需要与基于 AXI-burst 接口的 FPGA 设备进行通信。在不涉及 DMA 的情况下,通过 Linux 访问此类设备的方法有哪些?Burst 是 AXI 标准的固有属性,通常应在传输大量数据时自动触发。更大的问题是 FPGA 被设计成只响应 AXI 总线上的突发类型请求。因此,当应用程序尝试顺序复制时,这会在 Linux 上引起严重问题。我已经尝试过memcpy了,但它不起作用。

0 投票
2 回答
2375 浏览

vhdl - 到 Wishbone Wrapper 的 AXI 总线

谁能告诉我有关 AXI 总线及其信号的信息。我还想了解 AXI 总线到叉骨总线包装器以在 VHDL 中实现它。我正在研究 FPGA 中寄存器的实现,然后从 LINUX 发出相应的命令来驱动 zedboard 上的 LED。Wishbone 总线用于传输数据并与寄存器进行通信。

0 投票
3 回答
4390 浏览

arm - ARM(特别是移动)外设寻址和总线架构的解释?

我首先要说我不是该领域的专家,我的问题可能包含误解,在这种情况下,如果您纠正我并附上资源,我会很高兴,以便我可以了解更多细节。

我试图弄清楚系统总线的方式以及移动设备中出现的各种设备(如传感器芯片、wifi/BT SoC、触摸面板等)如何由 CPU(以及其他MCU)。

在 PC 世界中,我们有将命令/数据路由到设备的总线仲裁器,而且,afaik,地址是硬连线在板上(如果我错了,请纠正我)。但是,在移动世界中,我没有找到任何此类寻址的证据。我确实发现 ARM 已经标准化了Advanced Microcontroller Bus Architecture,但我不知道该标准是否适用于位于同一 SoC(即 Exynos、OMAP、Snapdragon 等)内的组件(cpu-cores)或者也影响外围接口。具体来说,我问的是哪个组件负责为外围设备和 MMIO 地址分配地址?

一个更基本的问题是移动设备架构中是否存在总线管理,或者是否存在某种“星形”拓扑(CPU 为中心)。

这个问题我得到的印象是这些设备被视为平台设备,即直接连接到 CPU 的设备,而不是通过总线。不过,我的问题是操作系统如何知道如何解决它们?然后其他线程,关于平台设备/驱动程序的这个这个让我感到困惑..

0 投票
1 回答
1061 浏览

arm - 一致地理解关于 DMA 和总线的软硬件交互

我已经收集了一些组件(包括软件和硬件)的知识,这些组件涉及基于 ARM 的板中的一般 DMA 事务,但我不明白它是如何完美集成的,我没有找到完整的连贯性对此的描述。

我会写下我已经拥有的高水平知识,我希望有人能在我错的地方纠正我并完成缺失的部分,这样整个画面就会清楚。我的描述从用户空间软件开始,然后深入到硬件组件。被误解的部分采用斜体粗体格式。

  • 用户模式应用程序请求从某个设备读取/写入,即进行 I/O 操作。
  • 操作系统接收请求并将其交给适当的驱动程序(每个操作系统都有自己的机制来执行此操作,我不需要在这里进一步深入研究,但如果您想在这里分享见解,欢迎您)
  • 负责处理 I/O 请求的驱动程序必须知道设备映射到的地址(因为我对基于 ARM 的板感兴趣,afaik 只有内存映射 I/O 而没有端口输入/输出)。在大多数情况下(如果我们考虑类似智能手机的板子),有一个 linux 内核从引导时从引导加载程序给出的设备树中解析设备地址(现代方法),或者 linux 是预编译的对于特定型号系列和电路板,其中包含设备地址(在其源代码中硬编码)(在较旧和过时的方法中)。在某些情况下(在智能手机中经常发生),部分驱动程序是预编译的,只是打包到内核中,即它们的源是封闭的,因此与设备对应的地址是未知的。这是对的吗?
  • 鉴于驱动程序知道它要与之通信的设备的相关寄存器的地址,它会分配一个缓冲区(通常在内核空间中),设备将向其写入数据(在 DMA 的帮助下)。驱动程序需要通知设备该缓冲区的位置,但是设备使用(操作内存)的地址与驱动程序(cpu)使用的地址不同,因此,驱动程序需要通知设备关于它刚刚分配的缓冲区的“总线地址”。驱动程序如何通知设备该地址?使用 IOMMU 有多受欢迎?使用 IOMMU 时,是否有一个硬件组件管理寻址或每个设备一个?
  • 然后驱动程序命令设备完成其工作(通过操作其寄存器),设备将输出数据直接传输到内存中分配的缓冲区。在这里,我对 device-driver:bus:bus-controller:actual-device 的关系有点困惑。以一些假想的设备为例,它知道以 I2C 协议进行通信;SoC 指定了一个 I2C 总线接口——这实际上是什么?I2C 总线是否有某种总线控制器?cpu是与I2C总线接口通信还是直接与设备通信?(即I2C 总线接口是无缝的)。我想对设备驱动程序有一定经验的人可以很容易地回答这个问题。
  • 该设备填充一个 DMA 通道。由于设备没有直接连接到内存,而是通过一些总线连接到 DMA 控制器(控制总线),它与 DMA 交互以将所需的数据传输到内存中分配的缓冲区。当电路板供应商使用 ARM IP 内核和总线规范时,此步骤涉及通过 AMBA 规范(即 AHB/multi-AHB/AXI)的总线上的事务,以及设备和其上的 DMAC 之间的某些协议。我想了解更多关于这一步的信息,实际发生了什么?ARM的DMA控制器有很多规格,哪一种比较流行?哪个过时了?
  • 当设备完成时,它发送一个中断,该中断通过中断控制器传送到操作系统,操作系统的中断处理程序将其引导到适当的驱动程序,该驱动程序现在知道 DMA 传输已完成。
0 投票
2 回答
1758 浏览

vhdl - AXI4Lite 从 IP

在 GNU GPL 下是否有任何可用的 AXI4Lite 从 IP(Verilog、VHDL)?我想在 uP 系统中测试一个虚拟 AXI4 主控,因此有这个要求。

只需一个 AXI4 从机或 AXI3 从机也可以(我可以剥离信号以使其与 AXI4Lite 兼容)。

任何链接,源代码都会有所帮助。

0 投票
0 回答
575 浏览

x86 - ARM 与 x86 IO 映射

在此处输入图像描述

我正在查看 Raspberry Pi 数据表。在 BCM ARM PERIPHERALS 页面上,显示从物理地址到 ARM 虚拟地址的映射的图表,映射是恒定的。

即:ARM 物理地址 0x20000000(IO 基地址)映射到常量 ARM 虚拟地址 F2000000。

此转换已由板平台文件中的 IO_MEM(IO_ADDRESS) 等 MACROS 完成。所以我们只需要传递正确的地址。

x86 中是否有任何常量映射?

对于 PCI,不可能因为每次启动时地址都会改变。我对此是否正确?

0 投票
0 回答
264 浏览

arm - 关于 CoreLink NIC400

我有一个需要支持多个 IP 的 AXI 子系统。这些 IP 具有 AXI4 或 AXI4-Lite 连接。将有多个具有 AXI4 或 AXI4-Lite 连接的主设备。还将有多个具有 AXI4 或 AXI4-Lite 的从站。我已阅读并发现 ARM 'NIC 400 Network Interconnect' 可以支持上述连接(至少协议转换支持可用 b/w AXI4 和 AXI4-Lite,反之亦然)。我的问题是这个 NIC 400 是免费提供还是需要购买(我有一个正常的 ARM 登录,通过它我可以访问文档和博客)。

0 投票
1 回答
48 浏览

arm - 时钟和总线它们是如何连接的

我正在学习这些硬件时钟和总线通信。

据我了解,如果两个处理器(比如 ARM 和 DSP)要通过总线进行通信/数据传输,它们需要一个时钟来进行同步访问。

在这种情况下,主机和从机是否会有一个时钟,或者每个主机和从机都可以有一个单独的时钟,两者都以相同的赫兹运行?

我专门针对 AMBA AHB/AXI。有人可以帮助我正确理解这一点或获得更多资源吗?