由flash引发对ARM架构的思考

前言:
在上一篇博客(https://blog.youkuaiyun.com/Boooooots/article/details/86635228)的附录中提到了代码是下载到flash中的,且代码段是放在flash中的,那么为什么可以在flash中运行代码呢?能运行代码的必要条件是什么?CPU是如何处理这些二进制代码的?cpu是处理数据和指令,那么谁来管理和组织储存设备和外设呢?cpu与外部是通过什么来进行交互的?种种疑问,均需要逐步去分析和掌握,知其然,还要知其所以然!

1.STM32F7xxxx系统架构
带着整体的框架结构去看问题、分析问题会清晰一些,首先了解一下系统结构:
在这里插入图片描述
图1.1
2.nor flash为什么可以运行代码?
这句话分解一下有三点:什么是运行?什么是nor flash? 为什么可以运行?

2.1.先了解下什么是运行?
这里的运行并不是指真正的“执行”的概念,cpu执行代码的过程是流水线(pipeline)的,采用流水线的工作方式主要是为了提高计算机的运行性能(提高性能的设计方式还有并行、预测,并行的概念在总线矩阵中有应用)。三级流水线指的是:取指、译码、执行,后两步其实都是在cpu核心(cortex-m7)中动作的,也就是arm公司的内部技术。这里着重分析一下取指令的过程:取指令是需要与外部交互的,arm公司也是留了接口出来,以供其他芯片厂商使用。如图1.1中,cortex-m7留的接口有AXIM、AHBP、DTCM、ITCM、AHBS,这些总线接口就是CPU与外部连接的通道,当然有取指令的通道。

说到这里,就很有必要深究一下总线到底是怎么把各个模块联系上的,任何cpu能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值