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