NXP MCU 技术论坛
直播中

陈杰

7年用户 1408经验值
私信 关注
[问答]

从SPIFI引导时性能损失很大的原因?

我试图将我的项目从 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);

         

更多回帖

发帖
×
20
完善资料,
赚取积分