将共享代码映射到不同的 RAM 区域 TASKING

公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
lock attach
Attachments are accessible only for community members.
Translation_Bot
Community Manager
Community Manager
Community Manager

你好,

我正在开发一个 Erika 多核项目,该项目旨在在装有 TASKING v6.2r2 编译器的 TC397XE 处理器上执行。
目前,我专注于前 4 个内核,我的应用程序设计为在 RAM 中运行,应用程序通过调试器加载到 RAM 上。

有一个共享代码可以充当所有内核的空闲任务。 每个内核都有自己的专用 RAM 存储器(PSPR 和 DSPR),但共享代码以某种方式与 CPU5 Data Scratch-Pad Sram(CPU5 DSPR)相关联。 在链接器脚本中,我已经映射了每个.text 部分移至其各自的 PSPR 内核。 我想知道如何将共享代码映射到 DSPR5 以及如何将其映射到其他 RAM 区域。
附上了链接器脚本和地图文件以供参考(只需删除.html)。

在此先谢谢。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/Mapping-Shared-Code-to-Different-RAM-Regions-TASKING/td-p/636041

0 点赞
1 解答
Translation_Bot
Community Manager
Community Manager
Community Manager

默认情况下,链接器填充从低到高地址范围的内存区域。 由于 DSPR5 内存是从最低可用地址 (0x10000000) 开始的,因此未分配给任何强制使用不同布局的 LSL 组的部分最终会出现在这里。 DSPR5 内存用完后,链接器将继续使用 PSPR5 内存。 然后是 DSPR4、PSPR4 等

如果您想将当前确实位于 DSPR5 RAM 中的部分移至其他内存,则可以定义一个 LSL 组,该组使用选择线将这些部分分配给该组。 而且小组本身可能会被置于不同的记忆中。

分配所有以.text 开头的部分 它们位于虚拟内存空间 (vtc) 中的某个组中,然后将该组置于 DSPR4 内存范围内的某个位置,您可以添加一个条目,例如:

section_layout mpe: vtc: linear {group SHARED_CODE (run_addr = mem: mpe: dspr4)
}
{
select "*(.text|.text*)";
}

到 ee_tc_tasking_flash.lsl 文件中。

最诚挚的问候,

Ulrich Kloidt 任务工具支持

在原帖中查看解决方案

0 点赞
2 回复数
Translation_Bot
Community Manager
Community Manager
Community Manager

@User13836,你能在这里提供帮助吗?

谢谢,

见面。

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

默认情况下,链接器填充从低到高地址范围的内存区域。 由于 DSPR5 内存是从最低可用地址 (0x10000000) 开始的,因此未分配给任何强制使用不同布局的 LSL 组的部分最终会出现在这里。 DSPR5 内存用完后,链接器将继续使用 PSPR5 内存。 然后是 DSPR4、PSPR4 等

如果您想将当前确实位于 DSPR5 RAM 中的部分移至其他内存,则可以定义一个 LSL 组,该组使用选择线将这些部分分配给该组。 而且小组本身可能会被置于不同的记忆中。

分配所有以.text 开头的部分 它们位于虚拟内存空间 (vtc) 中的某个组中,然后将该组置于 DSPR4 内存范围内的某个位置,您可以添加一个条目,例如:

section_layout mpe: vtc: linear {group SHARED_CODE (run_addr = mem: mpe: dspr4)
}
{
select "*(.text|.text*)";
}

到 ee_tc_tasking_flash.lsl 文件中。

最诚挚的问候,

Ulrich Kloidt 任务工具支持

0 点赞