ICode总线原理
ICode总线是ARM Cortex-M系列内核中的一条重要总线,主要用于指令的传输。以下是其原理的详细介绍:
- 功能概述 :ICode总线主要用于连接Cortex-M内核与FLASH存储器的指令接口,负责从FLASH闪存中加载程序指令。当程序被编译后,会转换为机器指令存储在FLASH中,内核通过ICode总线获取这些指令并按顺序执行,以实现程序的运行。
- 地址范围 :ICode总线基于AHB-Lite总线协议,其地址范围为0x0000_0000 – 0x1FFF_FFFF,取指操作以字的长度执行,即使是对于16位指令也是如此,这样CPU内核可以一次取出两条16位Thumb指令。
- 传输特点 :ICode总线传输的指令地址是对齐的,处理器的总线接口会把非对齐的数据传送都转换成对齐的数据传送,因此连接到ICode总线上的设备只需支持AHB-Lite的对齐访问。
- 与其他总线的关系 :在一些Cortex-M内核的处理器中,如Kinetis K系列,ICode总线和DCode总线会进行多路复用合为一个CODE总线。CODE总线周期在内核无附加延时,而系统总线周期的时序取决于访问类型,其指令访问会在内核增加一个等待状态,所以应尽可能使用CODE总线区来存储代码以发挥最大性能。