关于单片机指令执行的疑问

[复制链接]
查看11 | 回复3 | 2021-1-27 07:17:20 | 显示全部楼层 |阅读模式
现在,用过51和MSP430的单片机,但是对指令执行的流程一直有疑问。现在,正在用MSP430F149,Flash和RAM都位于统一的16位地址空间,Flash存储的是指令代码。
那么在代码执行时,指令会先进入RAM中缓存,然后再进入CPU吗?还是,直接由Flash进入CPU?
Flash的速度,肯定比CPU慢很多,如何才能保证代码的高效执行?像intel的处理器里,有代码的一级缓冲和二级缓冲,可以作为代码的缓冲区。对于单片机,存在类似的机制吗?
请高手多多指教,谢谢![
分 -->
回复

使用道具 举报

千问 | 2021-1-27 07:17:20 | 显示全部楼层
系统启动后,将代码从flash搬移ram执行。
回复

使用道具 举报

千问 | 2021-1-27 07:17:20 | 显示全部楼层
单片机没有intel处理器那样功能强大。
单片机从FLASH运行时直接从FLASH取指令,把它当做是一个RAM。
如果要使用代码在RAM中运行,在单片机启动后先将FLASH中的代码搬移到RAM中,再从RAM中运行。
回复

使用道具 举报

千问 | 2021-1-27 07:17:20 | 显示全部楼层
51类型的单片机,启动的时候会有一个“用户启动区域”,启动时会自动利用该段程序将程序从FLASH搬到RAM中;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行