將程式重新定位到新記憶體位置 XMC1403-Q064

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

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

我正在為我的項目使用 XMC1403-Q064x0200 芯片組。 程式碼從預設的 0x10001000 位置開始。 但是我想將其移到 0x10002000 以為自定義引導加載器模塊提供空間。

TL; DR:我想知道如何在不將 BMI 選項更改為 BSL 模式的情況下才能做到這一點。

我嘗試更改鏈接器目錄中的 FLASH 原點(並減少 FLASH 的長度)。 但是我無法將其重新定位並成功運行它。

在使用拆卸窗口檢查時,我發現代碼在 0x10002000 地址中閃爍,但其他一些代碼處於 0x10000E00。 閱讀參考手冊後,我明白它包含有關 BMI 和其他初步信息的信息。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/XMC/Relocating-program-to-a-new-memory-location-XMC1403-Q064/td-p/638655

2 回應
Translation_Bot
Community Manager
Community Manager
Community Manager

@lalithroshan

當我閱讀您的主題描述時,我想了解我是否正確思考。 請回答我的以下問題,以幫助我理解您的問題並幫助您解決同樣的問題-

1."在使用拆卸窗口檢查時,我發現代碼在 0x10002000 地址中閃爍,但其他一些代碼處於 0x10000E00。"

>>在這裡,您可以在修改鏈接器文件後檢查 0x10002000 位置的代碼嗎?此外,0x10000E00 是閃存磁區 0 的位置(用戶可讀)。Flash 區段 0 用於存儲系統信息,並始終是唯讀。

二."我嘗試更改鏈接器目錄中的 FLASH 原點(並減少 FLASH 的長度)。 但是我無法將其重新定位並成功運行它。"

>>在這裡,您最後看到的錯誤是什麼? 您的程序是否轉到默認處理器/硬故障?

此外,您可以嘗試在調試配置的 GUI 中添加以下命令-

add-symbol-file filename address

您需要添加上述命令,如下圖所示-

Aashita_Raj_0-1699907237779.png

其中文件名應該是 .elf 的位置 程式碼和地址的檔案應該是載入檔案的記憶體位址。所以命令應該如下-

.elf 的添加符號文件位置 " 檔案"地址

您可以關注本以更清楚地理解它。 請告訴我,這可以在您的時候或在有任何進一步的查詢時起作用。 我們很樂意為您提供幫助。

最好的問候,

青下

0
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨 @Aashita_Raj
我 會首先回答您的問題,
1。"在這裡,您可以在修改鏈接器文件後檢查 0x10002000 位置的代碼嗎?此外,0x10000E00 是閃存磁區 0 的位置(用戶可讀)。 Flash 區段 0 用於存儲系統信息,並始終是唯讀。"
>>是的 在將 FLASH 原點從 0x10001000 修改為 0x1000 2000 後,我可以在調試(使用發行版本構建)時查看拆卸。我也附上了它的圖像。 如果您還有任何疑問,請告訴我。

Screenshot 2023-11-15 131315.jpg

 二."在這裡,您最後看到的錯誤是什麼? 您的程序是否轉到默認處理器/硬故障?"

>>是的,我收到以下消息。 沒有可用的來源。

Screenshot 2023-11-15 153249.jpg

按照鏈接中給出的步驟後,

Screenshot 2023-11-15 161406.jpg

 從另一個項目中找到偏移後,

Screenshot 2023-11-15 161431.jpg

我收到以下錯誤。 這次我無法查看拆卸。

Screenshot 2023-11-15 161516.jpg

感謝您花時間解決此問題。 我的最終目標是開發一個引導程序,該程式將透過 CAN 總線接收應用程式 HEX,將其寫入自訂位址(本例中為 0x10002000)並跳到相應的應用程式。

 

0