j35*_*t3r 2 microcontroller linker linker-scripts
我正在改编一些来自相当新的 AURIX TriCore MCU 的链接器脚本。
有一个我根本不明白的命令,文档 [0] 并没有真正的帮助。
有人可以告诉我原则上发生了什么吗?“全局地址”是什么意思,“核心本地地址”是什么意思?
[0] 英飞凌科技股份公司:TriCore 开发平台,2015。 - 手册
在 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 开始
请原谅我的语言技能。我的母语不是英语。如果需要进一步澄清或有什么不明确的地方,请发表评论。
| 归档时间: |
|
| 查看次数: |
1414 次 |
| 最近记录: |