这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » SoC系统物理地址空间布局的决定性因素

共2条 1/1 1 跳转至

SoC系统物理地址空间布局的决定性因素

菜鸟
2025-03-19 09:49:52     打赏

系统的物理地址空间布局(如/proc/iomem所展示的)是由多个因素共同决定的,主要涉及到硬件架构、板级设计(板子)、固件配置以及操作系统的设备管理方式。我们来逐步拆解这个问题。


1、物理地址空间布局由什么决定?

物理地址空间布局是由多个层面共同决定的。

不同的CPU架构(如x86、ARM)对物理地址空间有不同的规划方式。



处理器架构决定了地址空间的大小以及如何映射到内存、外设等资源。

SoC设计者会为内部模块、外设控制器(如GPIO、UART、SPI等)以及外部存储器(如DDR、Flash)预留地址范围。

这些地址往往是硬编码在硬件中的,例如某些外设的寄存器地址是固定的。

板级设计决定了如何将物理地址空间分配给板上的外设、扩展存储器等硬件资源。这里涉及到PCB上的内存、外设连接方式。

设备树文件用于描述嵌入式系统中硬件资源的具体分布,包括外设的地址映射。

这些信息最终由操作系统的设备驱动程序解释,并显示在类似/proc/iomem这样的文件中。

在系统启动时,固件负责初始化硬件,并根据系统配置将硬件资源映射到特定的物理地址空间。

例如,U-Boot初始化DDR、Flash、外设时,会设置它们在物理地址空间中的位置。

内核从固件和设备树中读取硬件布局信息,并负责管理和调度物理地址空间中的资源。

最终,这些信息会反映在/proc/iomem等内核接口中,供用户态程序查看。


2、是由板子上的什么决定的?

SoC或处理器与外设之间的连接方式决定了外设的物理地址。

例如,外部存储器(如NOR Flash、NAND Flash)和外设控制器(如GPIO、SPI)通常有固定的地址映射方式,板级电路设计会根据这些要求来布线。

设计时需要为各种外设(如UART、I2C、SPI控制器等)预留地址空间,通常这些是硬件预先定义的。

SoC的数据手册或参考手册会指定不同外设的地址范围。

例如,DDR的起始地址、外设控制器的寄存器地址等都由处理器的数据手册规定,这些通常在硬件设计阶段就确定了。


3、添加外设时的地址布局如何确定?

在嵌入式系统中,设备树描述了硬件的物理地址布局。

新添加的外设可以通过设备树文件配置,将外设的寄存器地址映射到物理地址空间的某个空闲区域。

设备树中的地址映射配置会被内核读取,并展示在/proc/iomem中。

对于可枚举的设备(如PCI设备),操作系统启动后会自动扫描总线,发现新的设备并为其分配物理地址。这种地址分配方式是动态的。

在某些情况下,固件会在系统启动时初始化新设备,并分配地址。这种情况下,地址布局会在固件阶段确定。





关键词: SoC系统    

专家
2025-03-24 20:20:54     打赏
2楼

感谢分享


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]
站长统计
×

有奖问卷
英飞凌400V CoolSiC™重新定义高性能电源设计的功率密度和效率,含有奖小问卷,限前200名工程师!