我试图将我的项目从 LPC4337 迁移到 LPC4320。由于LPC4320内部没有Flash,所以我在SPIFI接口上挂了一块MX25L8035E,设置为SPIFI启动。
本项目在LPC4337上运行时,CPU使用率仅为20%,而在LPC4320上运行时,CPU使用率达到100%,任务执行频率没有达到预定值。
我尝试将SPIFI中的CTRL寄存器SPIFI_CTRL_CSHI改为0,程序执行速度加快了,但任务执行频率仍然低于预定值,CPU占用率仍为100%。
对于这种外接Flash的
单片机,是不是需要对SPIFI做一些特殊的设置来提高性能呢?
以下是我在 SystemInit() 中配置 SPIFI 的代码。我使用的编译器是Keil MDK。
Chip_Clock_SetBaseClock(CLK_BASE_SPIFI, CLKIN_IRC, true, false);
LPC_SPIFI->CTRL = SPIFI_CTRL_TO(0x0)|
SPIFI_CTRL_CSHI(0x0)|
SPIFI_CTRL_DATA_PREFETCH_DISABLE(0)|
SPIFI_CTRL_INTEN(0)|
SPIFI_CTRL_MODE3(0)|
SPIFI_CTRL_PREFETCH_DISABLE(0)|
SPIFI_CTRL_DUAL(0)|
SPIFI_CTRL_DUAL_CL (0)| )|
SPIFI_CTRL_FBCLK(1)|
SPIFI_CTRL_DMAEN(0);
Chip_SetupCoreClock(CLKIN_CRYSTAL,204000000,真);
Chip_Clock_SetDivider(CLK_IDIV_E, CLKIN_MAINPLL, 2);
Chip_Clock_SetBaseClock(CLK_BASE_SPIFI, CLKIN_IDIVE, true, false);