打印
[STM32F4]

STM32F4系列启动后是如何进行指令执行的?

[复制链接]
504|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liuzaiy|  楼主 | 2020-12-2 23:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32F4系列启动后是如何进行指令执行的?

使用特权

评论回复
沙发
renyaq| | 2020-12-2 23:32 | 只看该作者
需要装载到RAM中吗?

使用特权

评论回复
板凳
supernan| | 2020-12-2 23:36 | 只看该作者
以前用DSP用的多,DSP一直都是从FLASH中装载到RAM中运行。

使用特权

评论回复
地板
liuzaiy|  楼主 | 2020-12-2 23:40 | 只看该作者
STM32F4的MCU已经达到了168M,这个速度已经够快了。所以我想知道是不是在cpu启动之后,也把程序指令从FLASH中LOAD出来到RAM中再执行?

使用特权

评论回复
5
liuzaiy|  楼主 | 2020-12-2 23:43 | 只看该作者
如果不是,那是如何做到快速指令执行的呢?

使用特权

评论回复
6
supernan| | 2020-12-2 23:49 | 只看该作者
Flash虽然访问频率无法很高,但可以用位宽来解决啊。

使用特权

评论回复
7
xxrs| | 2020-12-2 23:52 | 只看该作者
它每次读128BIT,就满足了MCU全速运行所需要的带宽

使用特权

评论回复
8
yinxiangh| | 2020-12-2 23:56 | 只看该作者
Copy到RAM的搞法也有的。GD就是这么搞的。

使用特权

评论回复
9
sonicll| | 2020-12-3 08:53 | 只看该作者
本帖最后由 sonicll 于 2020-12-3 08:57 编辑

直接从FLASH取指令啊,现在很多型号内置的FLASH都是零等待的,执行速度不比RAM差。你想把FLASH内容load到RAM运行也是可以的,但是一般RAM容量没有那么大,只能放小体积的代码,而且“把FLASH内容load到RAM”的这段代码本身也是在FLASH里执行的,所以归根结底,上电启动后,还是要先从FLASH取指令执行

使用特权

评论回复
10
liuzaiy|  楼主 | 2020-12-8 22:08 | 只看该作者
那也就是说,STM32自带FLASH的宽度是128BIT?

使用特权

评论回复
11
yinxiangh| | 2020-12-8 22:13 | 只看该作者
STM32指令应该是32位宽,每次读128BIT的话,就意味着读取FALSH的速度是168/4=42M,感觉这个FLASH的读取速度也不算慢了。

使用特权

评论回复
12
嵌入小菜菜| | 2020-12-8 22:15 | 只看该作者
这个速度已经够快了吧,还需要再快吗?

使用特权

评论回复
13
pangb| | 2020-12-8 22:17 | 只看该作者

所有的指令都是要到ram里面执行的

使用特权

评论回复
14
ousj| | 2020-12-8 22:21 | 只看该作者
Thumb指令,16位,所以只有21M就够了

使用特权

评论回复
15
嵌入小菜菜| | 2020-12-8 22:24 | 只看该作者
这个我还没有试验过,或许可以的吧。

使用特权

评论回复
16
liuzaiy|  楼主 | 2020-12-8 22:36 | 只看该作者
具体解释一下?谢谢。每条语句从FLASH中读取到RAM中执行?

使用特权

评论回复
17
xxrs| | 2020-12-8 22:40 | 只看该作者
研究这么深入,是有啥用处?

使用特权

评论回复
18
liuzaiy|  楼主 | 2020-12-8 22:44 | 只看该作者
搞定了,呵呵,犯了低级错误…多谢各位

使用特权

评论回复
19
tfqi| | 2021-1-5 11:44 | 只看该作者
这个问题怎么形容啊

使用特权

评论回复
20
wiba| | 2021-1-5 11:51 | 只看该作者
不太清楚他的执行流程

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

735

主题

7546

帖子

2

粉丝