__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文章
1622浏览量
147761 -
IAR
+关注
关注
5文章
345浏览量
36625 -
函数
+关注
关注
3文章
4307浏览量
62434 -
代码
+关注
关注
30文章
4751浏览量
68359 -
应用程序
+关注
关注
37文章
3243浏览量
57608
原文标题:MIMXRT1176 代码放在 ITCM里面运行,为什么执行速度并没有在外部Flash里面执行的快?
文章出处:【微信号:嵌入式 MCU,微信公众号:嵌入式 MCU】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论