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

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨,

我正在嘗試執行以下鏈接器腳本:

組 abc(有序,連續,對齊 = 4,不複製)
{
選擇 " .數據 .var1 ";
}
 
群組防禦(有序,連續,對齊 = 4,屬性 = rws)
{
選擇 " .bss.var1 ";
}
 
請依照TASKING TriCore™工具連結器提示 _tricks_WEB.pdf第 11 頁中給出的說明進行操作
 
如前所述,數據和 bss 部分為 var1 分為兩個組。 腳本有許多不同的部分,像這樣。 但是在整個腳本中,只有一個沒有複製部分的組。
 
我在添加組 abc 之前以及添加組 abc 之後計算了複製表的大小。 理想情況下,複製表格大小應該沒有區別,因為添加的組是使用 nocopy 指令指定的。
但是如果在添加此組 abc 之前後複製表,我可以找到大小差異。
 
 
 
有人可以解釋這種行為嗎? 為什麼即使對組 abc 有 nocopy 指令,複製表大小也有差異?
 
 
問候
阿努什卡
 
 

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/Gettign-copy-table-size-difference-even-after-giving-nocopy-instruction-for-a/td-p/684715

1 解決方案
Translation_Bot
Community Manager
Community Manager
Community Manager

複製表格的大小由需要為零(.bss 區段)或初始化(.data 區段)的區段的項目數量定義。 這個數字很大程度取決於內存中部分的順序。 如果強制執行叢集訂單,則會有許多複製表格項目。 例如,當使用三個變量時,例如

中文件 _1; 國際文件 _2
; 中文字 _3;

並且它們不是按照順序排列的位置,而是叢集。 然後鏈接器將不得不生成三個複製表格條目。 一個以將每個變量零。 如果這些變數按順序定位,鏈接器只會創建一個複製表格項目,以將所有三個變量零。

要確定當您新增一個群組(該群組選擇了自應用nocopy 關鍵字後不應初始化的初始化變數部分)時,哪個變更確實導致了意外的複製表增加,您可以考慮使用hldumptc.exe 工具轉儲複製表內容,它包含在 TASKING TriCore™工具的商業版本中,但不包含在 ADS 版本中。 使用應用程序的 ELF 文件轉印複製表的命令行調用是:

hldumptc 您的項目名稱 .elf-F2--區段 = 表-o copytable_dump.txt

轉儲輸出如下所示:

 

User13836_1-1706516467938.png

 

此範例顯示 .bss 的清晰條目 初始化變量的變量和副本項目。

最好的問候,

烏爾里希·克洛伊特
任務處理工具支持

 

 

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/Gettign-copy-table-size-difference-even-after-giving-nocopy-instruction-for-a/m-p/684946

在原始文章中檢視解決方案

0
2 回應
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨 @User13836 ,

 

你能在這裡幫忙嗎?


最好的問候,阿
努帕瑪。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/Gettign-copy-table-size-difference-even-after-giving-nocopy-instruction-for-a/m-p/684749

0
Translation_Bot
Community Manager
Community Manager
Community Manager

複製表格的大小由需要為零(.bss 區段)或初始化(.data 區段)的區段的項目數量定義。 這個數字很大程度取決於內存中部分的順序。 如果強制執行叢集訂單,則會有許多複製表格項目。 例如,當使用三個變量時,例如

中文件 _1; 國際文件 _2
; 中文字 _3;

並且它們不是按照順序排列的位置,而是叢集。 然後鏈接器將不得不生成三個複製表格條目。 一個以將每個變量零。 如果這些變數按順序定位,鏈接器只會創建一個複製表格項目,以將所有三個變量零。

要確定當您新增一個群組(該群組選擇了自應用nocopy 關鍵字後不應初始化的初始化變數部分)時,哪個變更確實導致了意外的複製表增加,您可以考慮使用hldumptc.exe 工具轉儲複製表內容,它包含在 TASKING TriCore™工具的商業版本中,但不包含在 ADS 版本中。 使用應用程序的 ELF 文件轉印複製表的命令行調用是:

hldumptc 您的項目名稱 .elf-F2--區段 = 表-o copytable_dump.txt

轉儲輸出如下所示:

 

User13836_1-1706516467938.png

 

此範例顯示 .bss 的清晰條目 初始化變量的變量和副本項目。

最好的問候,

烏爾里希·克洛伊特
任務處理工具支持

 

 

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/Gettign-copy-table-size-difference-even-after-giving-nocopy-instruction-for-a/m-p/684946

0