AURIX TriCore 链接器脚本命令 "REGION_MAP"
AURIX TriCore Linker Script Command "REGION_MAP"
我正在改编来自相当新的 AURIX TriCore MCU 的一些链接描述文件。
有一个命令我根本不明白,文档 [0] 也没什么帮助。
谁能告诉我原理,这是怎么回事? "global address" 是什么意思,"core local address" 是什么意思?
[0] INFINEON TECHNOLOGIES AG:TriCore 开发平台,2015 年。- 手册
在 AURIX 中,您有多个 cores.Each 内核,它们有自己的暂存器数据和程序 RAM,分别称为 DSPR 和 PSPR。
可以使用以下两个地址之一访问其中的每一个:
全局地址 - 此地址范围将引用相同的内存,而不管代码在哪个内核上执行。
Local Address - 该地址指的是内核特定的 RAM,并且会根据代码所在的内核而变化 executed.Local 地址将访问内核的本地暂存器RAM。
例如:
CPU0 DSPR 从 0x70000000 开始,大小为 112kB
CPU1 DSPR 从 0x60000000 开始,大小为 120kB
在代码中如果使用0x70000000,无论是从CPU0还是CPU1访问,都会指向CPU0 DSPR。
这称为全局地址。
相反,如果您在代码中使用 0xD0000000,如果代码从 CPU0 执行,它将访问 0x70000000,如果从 CPU1 执行,它将访问 0x60000000。
这称为本地地址。
提供这样的工具是为了使代码相对于 CPU 可移植。
对于 DSPR,本地地址从 0xD0000000 开始
对于 PSPR,本地地址从 0xC0000000
开始
请原谅我的语言 skills.I 我不是英语母语 speaker.Please 如果需要进一步说明或有歧义,请发表评论。
我正在改编来自相当新的 AURIX TriCore MCU 的一些链接描述文件。
有一个命令我根本不明白,文档 [0] 也没什么帮助。
谁能告诉我原理,这是怎么回事? "global address" 是什么意思,"core local address" 是什么意思?
[0] INFINEON TECHNOLOGIES AG:TriCore 开发平台,2015 年。- 手册
在 AURIX 中,您有多个 cores.Each 内核,它们有自己的暂存器数据和程序 RAM,分别称为 DSPR 和 PSPR。
可以使用以下两个地址之一访问其中的每一个:
全局地址 - 此地址范围将引用相同的内存,而不管代码在哪个内核上执行。
Local Address - 该地址指的是内核特定的 RAM,并且会根据代码所在的内核而变化 executed.Local 地址将访问内核的本地暂存器RAM。
例如: CPU0 DSPR 从 0x70000000 开始,大小为 112kB CPU1 DSPR 从 0x60000000 开始,大小为 120kB
在代码中如果使用0x70000000,无论是从CPU0还是CPU1访问,都会指向CPU0 DSPR。 这称为全局地址。
相反,如果您在代码中使用 0xD0000000,如果代码从 CPU0 执行,它将访问 0x70000000,如果从 CPU1 执行,它将访问 0x60000000。 这称为本地地址。
提供这样的工具是为了使代码相对于 CPU 可移植。
对于 DSPR,本地地址从 0xD0000000 开始 对于 PSPR,本地地址从 0xC0000000
开始请原谅我的语言 skills.I 我不是英语母语 speaker.Please 如果需要进一步说明或有歧义,请发表评论。