關於黃金 TC297 指定設置 DFLASH 位置

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

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

如果將陣列變數的初始值想要改變在 DFLASH 0xAF00 0000 位置上,請問在任務鏈接文件如何設置?

#define 增強大小 8192
uinT32 時 _ LHMTQMAPDLC_Y_ 轉速 [增益大小] = { 30, 0, 20, 15, 35,36, 37, 38 }; uint32 個 ATQD_LHMTQMAPDLC_1 _ 轉速 [增益大小] = { 30, 0, 20, 15, 35,36, 37, 38 };

 

 

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/%E9%97%9C%E6%96%BCAURIX-TC297-%E6%8C%87%E5%AE%9A%E8%A8%AD%E7%BD%AE-DFLASH-%E4%BD%8D%E7%BD%AE/td-p/653091

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

嗨德文黃,

您可以引用的一些偽代碼:

in code:
#pragma section farrom "user_test_rodata" uint32 user_array[BUFF_SIZE]={......}; #pragma section farrom restore

in linker file:
group (ordered, run_addr=mem:dfls0)
{
select ".rodata.user_test_rodata";
}
 

memory defines are already there if no, add also:
memory dfls0
{
mau = 8;
size = 1M;
type = reserved nvram;
map (dest=bus:sri, dest_offset=0xaf000000, size=1M );
}

Kunqiao_L_0-1701917911770.png

 

 

@User13836 如果我錯了,請更正我。感謝您的進一步支持

 

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/%E9%97%9C%E6%96%BCAURIX-TC297-%E6%8C%87%E5%AE%9A%E8%A8%AD%E7%BD%AE-DFLASH-%E4%BD%8D%E7%BD%AE/m-p/654380

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

0
6 回應
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨 @User13836 ,

您對任務鏈接器腳本有更好的建議嗎?

謝謝

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/%E9%97%9C%E6%96%BCAURIX-TC297-%E6%8C%87%E5%AE%9A%E8%A8%AD%E7%BD%AE-DFLASH-%E4%BD%8D%E7%BD%AE/m-p/654371

0
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨德文黃,

您可以引用的一些偽代碼:

in code:
#pragma section farrom "user_test_rodata" uint32 user_array[BUFF_SIZE]={......}; #pragma section farrom restore

in linker file:
group (ordered, run_addr=mem:dfls0)
{
select ".rodata.user_test_rodata";
}
 

memory defines are already there if no, add also:
memory dfls0
{
mau = 8;
size = 1M;
type = reserved nvram;
map (dest=bus:sri, dest_offset=0xaf000000, size=1M );
}

Kunqiao_L_0-1701917911770.png

 

 

@User13836 如果我錯了,請更正我。感謝您的進一步支持

 

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/%E9%97%9C%E6%96%BCAURIX-TC297-%E6%8C%87%E5%AE%9A%E8%A8%AD%E7%BD%AE-DFLASH-%E4%BD%8D%E7%BD%AE/m-p/654380

0
Translation_Bot
Community Manager
Community Manager
Community Manager

_L,

感謝回復,如果 BUFF_SIZE = 8192,就會出現載入失敗,可是 DFLASH 大小有 1M,因為不會錯誤,所以想請問實際可用的大小為多少?

DevinHuang_0-1701928201648.png

 

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/%E9%97%9C%E6%96%BCAURIX-TC297-%E6%8C%87%E5%AE%9A%E8%A8%AD%E7%BD%AE-DFLASH-%E4%BD%8D%E7%BD%AE/m-p/654544

0
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨德文黃,

我會看一下。 順便說一句,您是否有理由為什麼將數組放入 Dflash? 您是否考慮使用 EEPROM? 如果它是唯讀類型,我們也可以將它們放入 Pflash 中。

謝謝

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/%E9%97%9C%E6%96%BCAURIX-TC297-%E6%8C%87%E5%AE%9A%E8%A8%AD%E7%BD%AE-DFLASH-%E4%BD%8D%E7%BD%AE/m-p/654560

0
Translation_Bot
Community Manager
Community Manager
Community Manager

因為要取代 EEPROM,所以才能改用 DFLASH,另外我們測試這邊的測試,將 BUFF_SIZE 設定 9000,使用 Memtool,設置是可以成為功能進行的,但使用 AURIX 調試就會產生錯誤,所有人想詢問原因?

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/%E9%97%9C%E6%96%BCAURIX-TC297-%E6%8C%87%E5%AE%9A%E8%A8%AD%E7%BD%AE-DFLASH-%E4%BD%8D%E7%BD%AE/m-p/654658

0
Translation_Bot
Community Manager
Community Manager
Community Manager

這是我會說的最好的方法。 記憶體本身需要在 LSL 文件中定義,然後可以另外定義一個 LSL 群組,該群組放置在 DFLASH 記憶體中,並包含區段的選取行,包括應放置在該範圍內的陣列。

可以驗證對映檔案的內容,以便交叉檢查陣列是否位於 DFLASH 記憶體中。

請注意,將初始化變量放置在 DFLASH 記憶體中將無法正常運作。 這是因為由 C 啟動代碼調用的 c_init 函數,該函數負責初始化數據並清除非初始化數據不進行 DFLASH 編程。 它只是將初始數據的 ROM 副本複製到 RAM 地址。 而且 DFLASH 是!= 龍頭。

如果您想使用調試器將數據編程到 DFLASH,這是可能的。 然後你可以使用 const 數據:

#pragma section farrom "user_test_rodata"
const uint32 user_array[BUFF_SIZE]={......};
#pragma section farrom restore

 

最好的問候,

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

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/%E9%97%9C%E6%96%BCAURIX-TC297-%E6%8C%87%E5%AE%9A%E8%A8%AD%E7%BD%AE-DFLASH-%E4%BD%8D%E7%BD%AE/m-p/654716

0