This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
TI 专家:您好!
AM263x,AM273x 和 AM243x 的 MPU 配置中的第一个条目包含一个大部分,如下所示:
{
.baseAddr = 0x0u,
.size = MpuP_RegionSize_2G, //for AM273x it is 4G
.attrs = {
.isEnable = 1,
.isCacheable = 0,
.isBufferable = 0,
.isSharable = 1,
.isExecuteNever = 1,
.tex = 0,
.accessPerm = MpuP_AP_S_RW_U_R,
.subregionDisableMask = 0x0u
},
},
您好,
[引用 userid="121564" url="~/support/icros/arm-based 微处理器组/基于 ARM 的微控制器/f/arm-based 微控制器-forum/1088420/FAQ-MCU-plus-SDK-am243x-am2x--r5f-MPU-configure-IN-MCU-SDK"]由于 MPU 区域有限(只有16个),因此所采用的方法是:
标记背景区域以获得完全可寻址空间(4G/2G)。-
此区域标记为
-不可执行
-主管 R/W
-用户读取
-有序的不可缓存内存
此背景区域的主要用途是允许访问大多数内存映射寄存器,而无需为应用程序中访问的每个寄存器空间添加显式 MPU 条目。 根据需要访问的不连续注册区域的数量,16个 MPU 条目可能会用完。
然后,其他 MPU 条目会标记不同的可执行代码区域,可缓存区域等
此背景 MPU 区域不是强制性的,可以设置 MPU 条目,只允许应用程序访问明确的区域,但这需要标识每个寄存器访问/内存访问,并显示允许访问这些区域的 MPU 区域,同时满足不超过16的限制 MPU 条目。 最好在应用程序开发完成后执行此操作,以便将 MPU 条目调整为特定应用程序的内存访问。 建议在初始应用程序开发过程中使用允许的背景区域,并在功能完成后删除背景区域,并在需要时创建明确的 MPU 条目。
SDK 尝试使用适用于所有应用程序的通用 MPU 配置,因此使用了这一大背景区域
[引用 userid="121564" url="~/support/icros/arm-based 微处理器组/基于 ARM 的微控制器/f/arm-based 微控制器-forum/1088420/FAQ-MCU-plus-SDK-am243x-am2x--r5f-MPU-configure-IN-MCU-SDK"]关于以下问题,数据中止是由于 R5 VIM RAM,VIM 寄存器缺少 MPU 条目。 如果删除背景 MPU 区域,则必须显式添加这些区域。
[引用 userid="121564" url="~/support/icros/arm-based 微处理器组/基于 ARM 的微控制器/f/arm-based 微控制器-forum/1088420/FAQ-MCU-plus-SDK-am243x-am2x--r5f-MPU-configure-IN-MCU-SDK"]如前所述,一个大区域不是强制区域,我们将其添加到 SDK 中,以使其对所有应用程序保持通用。 客户可以随意删除它并添加单个条目。
此致,
普拉萨德(在巴德里的帮助下)