我可以在Atmel SAM E70处理器中使用“指令”TCM来获取数据吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我可以在Atmel SAM E70处理器中使用“指令”TCM来获取数据吗?相关的知识,希望对你有一定的参考价值。

我正在为Atmel SAME70Q21微处理器开发应用程序。该MCU具有ARM Coretex-M7内核。

Atmel在这种特殊的MCU变体中实现了ARM TCM(紧耦合存储器)。 Atmel似乎将TCM分为两部分“ITCM”(指令TCM)和“DTCM”(数据TCM)

我目前正在使用DTCM进行快速存储,通常来自中断。但是,ITCM目前实际上已关闭,尽管TCM的配置系统仍然会为其分配32K数据。

我在想,既然我没有执行ITCM,并且已经分配了ram,我可以使用ITCM进行数据存储吗? Cortex-M7是Von Neumann架构CPU,我见过的架构图显示两个TCM内存段具有与CPU不同的接口。

DTCM和ITCM内存空间都是链接器脚本中的rw(要使用ITCM,实际上你必须在运行时将代码重新定位到它中)。 (ab)以这种方式使用ARM内核会对性能产生什么影响?

答案

From the ARM Cortex-M7 Processor Technical Reference Manual Section 5.8 TCM Interfaces

预取单元(PFU)可以从任何TCM接口获取指令。加载存储单元(LSU)和AHBS接口可以使用任何TCM接口读取和写入数据。如果将代码放在ITCM中并将数据放在DTCM中,则可以获得最佳性能。但是,没有放置TCM,代码和数据的功能限制。

如果您既不使用代码,那么可能没有性能损失,但如果您在TCM中运行代码,那么将它们从哈佛架构中分离出来,允许并发指令获取和数据读取。 ITCM的64位总线可能允许单周期指令和操作数获取 - 但我怀疑这将对数据读/写有任何好处。

以上是关于我可以在Atmel SAM E70处理器中使用“指令”TCM来获取数据吗?的主要内容,如果未能解决你的问题,请参考以下文章

SAM 上的 Atmel ASF - pio_configure_pin 描述错误?

Atmel SAM3X 双组切换不起作用

Atmel SAM4S8B:无法进入编程模式

Atmel SAM v71 XPlained - 无法与端口 C 一起使用

在 Atmel SAM L21 Xplained Pro 上通过 UART 发送请求和接收响应的代码问题

缺少文件异常.h