代码存储位置与执行位置

RT1052系统包含的存储器

存储器容量访问速度访问方式特性
SPI-NorFlash标配32MB5FlexSPI外设FLASH,板载外部存储器(掉电保存)
SDRAM标配 32MB4SEMC 外设DRAM,板载外部存储器
OCRAM默认 256KB332 位总线SRAM, RT1052 芯片内部的通用缓存,使用 32 位总线访问
DTCM默认 128KB2双 32 位总线SRAM, RT1052 芯片内部的“数据紧耦合缓存”, 只可用于缓存数据
ITCM默认 128KB164 位总线SRAM, RT1052 芯片内部的“指令紧耦合缓存”, 只可用于缓存指令(代码)

1.代码存储在外部NorFlash中并且执行

加载指令
加载数据
加载数据
SPI-NorFlash
内核
ITCM,DTCM,OCRAM
SDRAM

代码保存在 SPINorFlash 中, 内核通过 FlexSPI 外设从 SPI-NorFlash 中加载代码并执行,而 DTCM、
OCRAM、 SDRAM 存储器则用于存储 C 语言的堆栈、以及显存等内容,即内核从这些位置
加载运行的数据。
由于 SPI-NorFlash 掉电后能正常保存内容,所以在下一次上电后,系统仍然能正常执
行 NorFlash 中保存的程序,所以在发布应用的时候通常采用把代码保存到 NorFlash 的这种
方式。

2.代码存储在 RAM 中并执行

加载指令
加载数据
加载数据和指令
ITCM
内核
DTCM,OCRAM
SDRAM,OCRAM

无论代码是存储在 ITCM、 OCRAM 或 SDRAM,它们相对于 NorFlash 的写入速度都
快得多,但由于掉电后代码会丢失,所以这种运行方式通常只用于开发阶段进行调试。

3.代码存储在 FLASH,在 RAM 中执行

复制代码
复制代码
加载数据
加载指令
复制代码
加载指令和数据
加载指令和数据
SPI-NorFlash
OCRAM
SDRAM
DTCM
内核
ITCM

系统平时把代码存储在 NorFlash,这能保证掉电后也能正常存储,
在上电后把代码从 NorFlash 复制到 ITCM、 OCRAM 或 SDRAM 中, 在正式运行时,内核
直接从这些 RAM 内加载代码并执行, 由于内核对 RAM 的访问速度更快,所以这能提高代
码的执行速度,尤其是与内核联系紧密、使用 64 位线宽的 ITCM,它是专门设计需要高速
执行代码的。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值