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

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

您好,我發現 ADS 編譯器編譯器編譯的 Hex 文件具有不連續且非常不規則的數據地址(如下圖所示)。 可以使用哪些設定來使這些資料的地址變得緊湊且連續?

Anony_0-1706157301234.png

 

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/Consultation-on-Compiling-Hex-File-Settings/td-p/683198

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

當應用程序代碼/const 數據放置中有空隙時,生成的 HEX 或 SREC 文件中將始終存在空隙。 依預設,連結器不會填滿這些空隙。 可以通過調整 LSL 文件來做到這一點。 如果您為所有 ROM 部分定義群組,並將 fill= 條目套用到這些群組,則鏈接器將使用填充值填充所有未使用的範圍。

一個更簡單的方法應該是使用 sRecord 工具來發布處理生成的 HEX 或 SREC 文件,因為這也可以添加所需的填充值。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/Consultation-on-Compiling-Hex-File-Settings/m-p/684961

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

0
3 回應
Translation_Bot
Community Manager
Community Manager
Community Manager

不幸的是,沒有鏈接器選項可以讓鏈接器以遞增順序創建六個文件。 十六進制格式使用 '04' 記錄來指定位址的上方單詞,然後為 64kB (下單詞的位址範圍) 指定位址偏移項目。 例如。

:0200000480007 A: 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

第一個條目是「04」記錄,用於指定起始地址為 0x80000000,第二行和第三行是代碼/const 數據的數據條目。

: 二 ○○ 00000

表示 0x20 位元組的數據,從 0x80000000 的偏移 0x0000 開始,最後一個字節為 00,表示這是數據記錄。

: 14002000

意味著 0x14 位元組的數據,從 0x80000000 的偏移 0x0020 開始

默認情況下,未使用的範圍不會填充。 如果您需要這個,您可以考慮使用 SRecord(https://srecord.sourceforge.net)這樣的工具發布處理生成的 HEX 文件。

如果您不需要填充未使用的區域,而只需要按升序排列的十六進制文件,則可以考慮讓鏈接器另外創建一個 SREC 文件。 這是以遞增的順序。 為了實現這一目標,您需要添加條目:

-WL-OTC39X_ 測試. SR: SREC

在「任務雜項」功能表中。TC39x_ 測試是此範例中專案的名稱。

User13836_0-1706191633087.png

 

最好的問候,

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

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/Consultation-on-Compiling-Hex-File-Settings/m-p/683756

0
Translation_Bot
Community Manager
Community Manager
Community Manager

你好,

那麼。所以我想知道為什麼地址中有這麼多不連續的地方的原因?
另外,我嘗試生成它生成 SREC 文件的方法似乎不成功,如果我可以的話 SREC 的文件會有連續地址嗎?

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/Consultation-on-Compiling-Hex-File-Settings/m-p/684485

0
Translation_Bot
Community Manager
Community Manager
Community Manager

當應用程序代碼/const 數據放置中有空隙時,生成的 HEX 或 SREC 文件中將始終存在空隙。 依預設,連結器不會填滿這些空隙。 可以通過調整 LSL 文件來做到這一點。 如果您為所有 ROM 部分定義群組,並將 fill= 條目套用到這些群組,則鏈接器將使用填充值填充所有未使用的範圍。

一個更簡單的方法應該是使用 sRecord 工具來發布處理生成的 HEX 或 SREC 文件,因為這也可以添加所需的填充值。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/Consultation-on-Compiling-Hex-File-Settings/m-p/684961

0