首页 问答 详情

STM32F4系列启动后是如何进行指令执行的?需要装载到RA 关注
伊娃 · 2017-10-10 · 1692 · 8 · 1
STM32F4的MCU已经达到了168M,这个速度已经够快了。所以我想知道是不是在cpu启动之后,也把程序指令从FLASH中LOAD出来到RAM中再执行?如果不是,那是如何做到快速指令执行的呢?
10 悬赏截止时间 2017-10-11
2个回复

Jack_liu 回复于 2018-05-22

我对这款芯片并不熟,但我可以讲讲几种常用的做法。


1. 指令存放于内置的norflash中

内置norflash是可以直接运行指令的,所以并不需要加载指令。但如果cpu速度比较快,建议norflash上的指令以cache的方式访问,这样会提高cache命中率,从而提高cpu整体运算速度。


2. 指令存放于外置spi flash中

由于spi flash无法直接运行程序,所以就需要单片机芯片内部有固件程序,可以将spi flash中的代码加载到单片机内部sram,然后jump过去运行就可以了。

当然如果有专用的spi flash controller帮忙做透明化处理,也可以做到类似于直接运行代码于spi flash。原理就是,spi flash controller模拟一个sram的接口,CPU要读指令,会发送请求到spi flash controller,spi controller读数据,并返回给cpu。虽然这样总体速度慢一点,但cache足够大,其实真跑起来也还可以的。我们现在产品就在用这个方法。

0人评论 0

xm 回复于 2018-05-14

CPU直接从flash读取指令或数据。它有指令预取和cache行。


• Prefetch on I-Code
• 64 cache lines of 128 bits on I-Code
• 8 cache lines of 128 bits on D-Code

0人评论 0

返回顶部