ARM(特别是移动)外围设备寻址和总线体系结构的说明?

ARM(特别是移动)外围设备寻址和总线体系结构的说明?,arm,embedded,embedded-linux,amba,Arm,Embedded,Embedded Linux,Amba,首先我要说的是,我不是该领域的专家,我的问题可能包含误解,在这种情况下,如果您纠正我并附上资源,我将很高兴,这样我可以了解更多细节 我试图找出CPU(以及其他MCU)处理系统总线和移动设备中出现的各种设备(如传感器芯片、wifi/BT SoC、触摸屏等)的方式 在PC世界中,我们有总线仲裁器,将命令/数据路由到设备,并且,好的,地址是硬连线在电路板上的(如果我错了,请纠正我)。然而,在移动世界中,我没有找到任何证据证明这种寻址方式;我确实发现ARM标准化了,但我不知道该标准是否适用于位于同一So

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

我试图找出CPU(以及其他MCU)处理系统总线和移动设备中出现的各种设备(如传感器芯片、wifi/BT SoC、触摸屏等)的方式

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

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

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

1)ARM不生产芯片,他们生产IP,然后卖给芯片制造商。2) 是的,amba/axi总线是ARM与世界的接口。但这是在芯片上的,所以由芯片供应商决定连接什么。在芯片供应商中,您可以找到标准或习惯,这些标准或习惯可能是一系列部件的标准或习惯,相同的外设可能位于相同的地址(相同的uart外设、相同的spi外设、时钟树等)。当然,有时同一外设在家庭中的不同地址,有时没有一致性。在英特尔x86的世界里,英特尔制造处理器,他们曾经制造过许多外围设备,无论是单个部件还是超级I/O部件,无论是南北桥,都是在同一个封装中。Intels处理器的成功主要在于反向兼容性,因此您仍然可以在原始ibm pc上访问克隆uart的相同地址访问该克隆uart。当您有不同的芯片供应商时,您根本无法做到这一点,arm在大多数情况下不包含外围设备,因此,让供应商就产品达成一致意见根本不会发生。这让人们发疯了,是的,linux在arm上一直处于紧急状态,因为它很少在任何平台上工作。添加的内容往往针对某个芯片或供应商,或细微差别,不关心检查添加内容是否位于错误的位置或解决方法,或任何不适用于任何地方且不应适用于任何地方的内容。cortex ms已经迈出了一小步,在arm7tdmi出现之前,您可以自由地使用任何您想要的地址空间。cortex-m已经将空间分成了一些主要的块以及一些内部地址(不仅仅是cortex-m,在许多内核上也是如此)。但除了系统定时器和中断控制器之外,它仍然取决于芯片供应商。x86的反向兼容性习惯超越了英特尔,因此PC在主板供应商之间具有很大的一致性(部分是由希望在其系统即windows上运行的软件驱动的)。嵌入式软件通常是arm或mips或任何人将东西放在任何地方,软件只是简单地进行了调整,因此嵌入式/电话软件的工作是由开发人员选择正确的驱动程序和调整物理地址等

AMBA/AXI只是总线标准,如wishbone或isa或pci、usb等。它定义了如何从arm连接到arm核心处理器,这基本上是在芯片上,芯片供应商然后添加或从某人处购买IP,将AMBA/AXI总线连接到pci或usb或dram或闪存等,芯片上或芯片外是他们的选择,这是他们的产品。除了几个大块之外,芯片供应商还可以自由定义地址空间,当然也可以自由定义外设和位置。他们不必像其他人一样使用相同的usb IP或dram IP

手臂在中间吗?使用智能手机处理器时,你往往会有一个图形协处理器,因此你必须问谁拥有这个世界——arm、gpu还是其他人?raspberry pi在某种程度上是这些处理器中的一种,尽管它现在更老、更慢,但gpu似乎是世界的中心,arm是必须在gpu总线上分时的一个侧面装置,谁知道该总线的协议/架构是什么,arm当然是axi,但整个芯片还是从arm到gpu端的桥接器也切换到其他总线协议?重点是你的问题的答案是没有规则没有标准有时手臂在中间有时不是。取决于芯片和电路板供应商

对术语不感兴趣也许其他人会回答,但我想说,在基本sim卡之外,您不会只有一个外设(好的,我将用这个术语来表示处理器访问的通用设备)与amba/axi总线相连。您需要一个第一级的amba/axi接口,该接口根据您的设计划分地址空间,然后使用amba/axi或任何您想要的总线协议(通常您适合购买或设计的IP的接口)。由芯片供应商决定地址空间。作为程序员,您必须阅读芯片供应商或电路板供应商提供的文档,以找到您想要谈论的每件事情的物理地址空间