__RAMFUNC(RAM)void SysTick_Ticks(uint32_t value)
{
g_systickCounter=value;
int addcount= 0;
while (g_systickCounter != 0U)
{
addount++;
}
PRINTF(" addcount:%d ",addcount);
}
通過在IAR環境下添加__RAMFUNC,修改了函數SysTick_Ticks以在ITCM中運行,實際測得的運行速度變慢,系統計數累加的次數也減少了,代碼在XIPFlash里面執行的更快一些。
-> 如果在應用程序中啟用了I-Cache,那么無論該函數在ITCM或外部XPFlash中執行,系統計數值都應該幾乎相同,但如果禁用I-Cache和FlexSPI預取緩沖區,性能會降低。如下是禁用代碼。
/* Disable L1 I-Cache*/ SCB_DisableICache(); /* Disable L1 D-Cache*/ SCB_DisableDCache(); /* Disable FlexSPI AHB read prefetch */ FLEXSPI->AHBCR &= ~(FLEXSPI_AHBCR_PREFETCHEN_MASK | FLEXSPI_AHBCR_CACHABLEEN_MASK);
-
FlaSh
+關注
關注
10文章
1635瀏覽量
148031 -
IAR
+關注
關注
5文章
352瀏覽量
36684 -
函數
+關注
關注
3文章
4331瀏覽量
62622 -
代碼
+關注
關注
30文章
4788瀏覽量
68616 -
應用程序
+關注
關注
37文章
3268瀏覽量
57710
原文標題:MIMXRT1176 代碼放在 ITCM里面運行,為什么執行速度并沒有在外部Flash里面執行的快?
文章出處:【微信號:嵌入式 MCU,微信公眾號:嵌入式 MCU】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論