為什麼選擇 " ld.w " 導致一些內存內容修改?

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

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

在我的理解中,"ld.w " 正在將數據從內存加載到寄存器,它不應該更改任何內存內容。 但在下面的情況下,在 " ld.w 之後 " 執行指令時,某些內存內容被改變。 這是很難理解。 有人遇到過類似的問題。 以下是我的情況,

1)在執行 " ld.w 之前 " 指令,來自 0x6002387C 的內存內容是 " 0 億 0,"

dfysy163_0-1695797895785.png

2)執行 " ld.w 後 D15,一個 [14] -0X002C",從存儲器內容更改為 0X0DB30ABF,0X09 ""

dfysy163_1-1695798136269.png

 

 

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

@dfysy163,
我想建議您只需在 core0 上運行代碼,而不是激活其他兩個核心,以檢查是否可能出現這種現象。
布爾,
傑里米

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

0
8 回應
Translation_Bot
Community Manager
Community Manager
Community Manager

親愛的@dfysy163
好像有點奇怪, CAN分享一下對應的彙編指令原始碼嗎?
我想在現場複製這個現象,它CAN幫助我找出答案。
BR,
傑里米

0
Translation_Bot
Community Manager
Community Manager
Community Manager

您CAN ld.w 指令僅從記憶體讀取,沒有使用該指令從 CPU 寫入。

在你的情況下,我猜有一個中斷改變內存或外部主機(其他 CPU,DMA 和很快)改變內存內存內容。

在 ld.w 之後 d15 的內容是什麼? 它是舊的價值還是新的價值?

0
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨,傑里米和 MOD,

感謝您的回复,

以下是運行 ld.w 指令之前和之後的代碼。 在運行之前,它只是將 D15 中的值設置為令牌(即 0x02),在運行 ld.w 之後,它將數據從內存 0x60023874 加載到 d15,該值是正確的,它。 然後它會準備調用時間相關的函數。

DMA 並未在此階段啟動。 由於我們在 TC377 上運行 3 個內核時,其他內核的中斷可能是一個原因。

我將嘗試禁用其他內核的中斷。 有沒有快速的方法來禁用核心的所有中斷。

運行之前的代碼,

dfysy163_0-1695869326180.png

在運行 ld.w 之後,

dfysy163_1-1695869378045.png

 

 

0
Translation_Bot
Community Manager
Community Manager
Community Manager

請在下面的主題中看到我的回复

0
Translation_Bot
Community Manager
Community Manager
Community Manager

請參閱下面的回复

0
Translation_Bot
Community Manager
Community Manager
Community Manager

我想這個寫作是由任何其他核心完成的。 檢查您的其他內核是否訪問 CPU1_DSPR,尤其是此地址範圍。 也許映射文件CAN幫助識別位於該地址的內容。
為了確保該核心上沒有中斷,您CAN透過清除 ICR 的位元 15 來停用偵錯器中的中斷,然後執行該步驟。如果更改,則其他核心會更改內容,否則會出現更改內容的中斷(也CAN透過指令步驟而不是程式步驟來查看)。

0
Translation_Bot
Community Manager
Community Manager
Community Manager

@dfysy163,
我想建議您只需在 core0 上運行代碼,而不是激活其他兩個核心,以檢查是否可能出現這種現象。
布爾,
傑里米

0
Translation_Bot
Community Manager
Community Manager
Community Manager

@dfysy163

事情怎麼樣了?

BR,

傑瑞米

0