公告

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

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

你好,

我正在AURIX_TC377上编码,我遇到了以下链接错误,我不知道该如何解决。

 

ltc E112:找不到 4 个部分:ltc I455:要求:空间中 1M (0x15eb80) 字节的 RAM 区域 mpe: v
tc: linear ltc I456:分区类型:范围限制-范围 0x70000000-0x70032800 ltc I456:分区类型:组限制-连续
ltc I457:bss_sec (84546) (0x15cc20 字节) ltc I457:data_sec (84547) (0x1f5c 字节)
ltc I457:zbss_sec (84548) (0x2 字节)
ltc I457:zData_sec (84549) (0x2 字节)


 

似乎在集成了新插件之后,分配的大小已经不够了。 但是我不确定应该做什么更改才能使其再次适合。

例如。 .lsl 中 bss_sec 的区块大小 =2,ltc I457:bss_sec (84546)(0x15cc20 字节)

我对链接脚本不熟悉,这使我很难弄清楚与这四个部分有关的问题。 提前感谢你的帮助

我附上.lsl 并供你参考。

 

PS。 我试着检查.map 搜索所有为零的已分配部分 0x00000000,但什么也没找到。

我附上了一个包含链接器文件 (.lsl) 和.map 的 zip 文件 文件

 

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

你的例子中确实有一个错误。 你不能将溢出与区块大小结合使用。 这是行不通的,因为那样就永远不会发生溢出。 您需要使用大小值为第一部分定义固定尺寸:

例如

部分 " bss_sec"(大小 = 60k,属性 = rw,溢出 = BSS_DATA_OVERFLOW)""

如果该部分的大小应为 60kB,如果超过此大小,则它将继续出现在溢出部分。

最诚挚的问候,

Ulrich Kloidt 任务工具支持

在原帖中查看解决方案

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

您的 LSL 文件显示以下组定义:

 

group data_default_Group(有序、连续、填充、run_addr = mem: mpe: regionblock_1_dspr_core0)
{分
组 bss_section bss_Sec(区块大小 = 2,属性 = rw)}

" "
{
select "[.]bss*";
}

这里是所有以.bss 开头的部分 尚未分配给之前定义的另一个组(链接器确实从上到下处理 LSL 文件内容)将被分配给名为 bss_sec 的输出部分。 由于您使用的是区块大小值,因此没有大小限制。 这只是告诉链接器将该部分的大小增加两个字节的步长,直到该部分足够容纳所有输入部分。 输出部分 bss_sec 的总体大小为 0x0015cc20,这太大了,无法容纳在单个内存范围内。 你尝试将该组放在 regionblock_1_dspr_core0 内存中(run_addr = mem:mpe: regionblock_1_dspr_core0),但它的大小确实只有 206848 字节:

内存区域块_1_dspr_core0
{
mau = 8;
type = ram;
size = 206848; /* 202 KiB */
map (dest=bus:local_bus, dest_offset = 0x70009000, size = 206848);
}

因此,你需要将输出部分分布在多个存储器上。 使用溢出关键字的 LSL 语言支持这一点。 看看这个章节:

分布式输出部分的溢出关键字

包含在 LSL 常见问题解答中,网址为:

https://resources.tasking.com/tasking-whitepapers/linker-script-language-lsl-tips-tricks-for-tasking...

举一个关于这个的例子。

最诚挚的问候,

Ulrich Kloidt 任务工具支持

0 点赞
lock attach
Attachments are accessible only for community members.
Translation_Bot
Community Manager
Community Manager
Community Manager

非常感谢! 我现在确实明白问题出在哪里。 我修改了链接器脚本以使用溢出关键字并分发输出部分。 不幸的是,错误还是一样的。

我在下面的照片中做了这些更改。 我还附上了修改后的.lsl

 

asafwat_0-1699624637630.png

 

知道为什么它没有反映出来并且不断产生同样的错误吗? 也许我用错误的方式使用了这个关键字?

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

你的例子中确实有一个错误。 你不能将溢出与区块大小结合使用。 这是行不通的,因为那样就永远不会发生溢出。 您需要使用大小值为第一部分定义固定尺寸:

例如

部分 " bss_sec"(大小 = 60k,属性 = rw,溢出 = BSS_DATA_OVERFLOW)""

如果该部分的大小应为 60kB,如果超过此大小,则它将继续出现在溢出部分。

最诚挚的问候,

Ulrich Kloidt 任务工具支持

0 点赞