【MM32F5270开发板试用】如何将数据存放在DTCM
上两篇文章:
【MM32F5270开发板试用】一、依靠SPI_SD,移植FatFs文件系统
【MM32F5270开发板试用】SysTick+Scheduler轮询
本次所有代码按照以前习惯全部开源:我的Github地址是:https://github.com/kings669/M...
我打算做:MM32F5 系列漫谈 2:吞吐率最大化的总线设计中的播放器,里面就有说到需要将数据放入DTCM中。
一、DTCM
在MM32F5270中有:
– 多达 192KB 的 SRAM,其中包括 32KB 指令 TCM(ITCM), 32KB 数据 TCM(DTCM)和 128KB 的系统 RAM,DTCM地址是从0x20000000开始,大小32KB
TCM=Tightly Coupled Memory,是一种被直接集成在CPU芯片中的高速缓存。DS有两种TCM,分别是ITCM(Instruction TCM)和DTCM(Data TCM)。
DTCM 用于数据存取,特点是跟内核速度一样
内置 32K 字节指令 TCM SRAM 和 32K 字节数据 TCM SRAM。指令 TCM(ITCM)起始地址为 0x00000000,数据 TCM(DTCM)起始地址为 0x2000 0000。
TCM SRAM 可以被 CPU 或者 DMA 用最快的系统时钟且不插入任何等待进行访问。
二、使用DTCM
1、我们打开keil魔术棒工具:
0x300000000 开始是SRAM1的区域,勾选后是给Keil进行管理
2、我们点击 Linker
点击编辑
3、我们就可以在这里开始编写一部分代码
RW_RAM1 0x20000000 0x00008000{ ;DTCM
*(.RAM_D1)
}
分配一个用户段(section),段的名字是RAM_D1,段的地址是 0x2000000
4、接着,使用_attribute__((section(“name”)))声明变量。定义变量后,一定编译成功,Build Analyzer才会更新。一定保存后要更新!!
测试
进入debug的watch加入查看
可以看出在DTCM的地址范围内
总结
这是我第一次了解这个TCM这个概念,学习MM32F527这款芯片,学到了很多东西。给了我很多的探索的机会。在此把我的学习过程会在论坛上分享。如有错误,欢迎指正。😀