电子说
__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);
全部0条评论
快来发表一下你的评论吧 !