我正在開發Atmel應用程序SAME70Q21微處理器。該MCU具有ARM Coretex-M7內核。我可以在Atmel SAME70處理器中使用「指令」TCM數據嗎?
愛特梅爾在這個特殊的MCU變體中實現了ARM TCM(緊耦合存儲器)。 Atmel似乎將TCM分爲「ITCM」(指令TCM)和「DTCM」(數據TCM)兩部分。我正在使用DTCM進行快速存儲,通常來自中斷。但是,ITCM目前實際上已關閉,但TCM的配置系統仍分配了32K的數據。
我在想,因爲我沒有執行ITCM,並且內存已分配,我可以使用ITCM進行數據存儲嗎? Cortex-M7是一個馮諾依曼體系結構CPU,我所看到的架構圖顯示了兩個TCM內存段具有與CPU分離的接口。
鏈接描述文件中的DTCM和ITCM內存空間都是rw
(爲了使用ITCM,實際上您實際上必須在運行時將代碼重新定位到其中)。 (ab)以這種方式使用ARM內核的性能影響是什麼?
「**指令** TCM不知道怎麼辦?它的意思是存儲中斷處理程序或其他性能相關函數,更好的方法是按照預期使用它。做一些過早的優化,對你的代碼進行基準測試和分析,找出熱點並優先使用C語言進行優化,只有這樣纔可以考慮採用不同的方法,並將這些功能放在ITCM中。它可以用於datqa(如果可以的話) – Olaf
@Olaf - 也許AFICT,指令/數據區別最初用於較早的核心(ARM926EJ),並將函數移入它的部分涉及將其視爲普通RAM?或者事實上,我只是好奇?或者你認爲我沒有做過其他優化? –
我總是驚訝於「什麼如果我這樣做的話「在堆棧交換中被如此積極地否定。嘗試和嘗試是一種很好的學習方式,中醫部分的文檔至多是最少的,我試圖瞭解該設備如何更好地工作。爲什麼我不能問一些奇怪的事情? –