AURIX TriCore 链接器脚本命令“REGION_MAP”

j35*_*t3r 2 microcontroller linker linker-scripts

我正在改编一些来自相当新的 AURIX TriCore MCU 的链接器脚本。

有一个我根本不明白的命令,文档 [0] 并没有真正的帮助。

在此处输入图片说明

有人可以告诉我原则上发生了什么吗?“全局地址”是什么意思,“核心本地地址”是什么意思?

[0] 英飞凌科技股份公司:TriCore 开发平台,2015。 - 手册

kry*_*ght 6

在 AURIX 中,您有多个内核。每个内核都有自己的暂存器数据和程序 RAM,分别称为 DSPR 和 PSPR。

可以使用以下两个地址之一访问其中的每一个:

全局地址- 此地址范围将引用相同的内存,而不管代码在哪个内核上执行。

本地地址- 该地址将引用特定于内核的 RAM,并且会根据执行代码的内核而变化。本地地址将访问内核的本地暂存 RAM。

例如:CPU0 DSPR 从 0x70000000 开始,大小为 112kB CPU1 DSPR 从 0x60000000 开始,大小为 120kB

在代码中,如果使用 0x70000000,则无论访问是来自 CPU0 还是 CPU1,它都会引用 CPU0 DSPR。这称为全局地址

相反,如果您在代码中使用 0xD0000000,如果代码从 CPU0 执行,它将访问 0x70000000,如果从 CPU1 执行,它将访问 0x60000000。这称为本地地址

提供这样的工具是为了使代码相对于 CPU 具有可移植性。

对于 DSPR,本地地址从 0xD0000000 开始 对于 PSPR,本地地址从 0xC0000000 开始

请原谅我的语言技能。我的母语不是英语。如果需要进一步澄清或有什么不明确的地方,请发表评论。