我正在开发Atmel应用程序SAME70Q21微处理器。该MCU具有ARM Coretex-M7内核。我可以在Atmel SAME70处理器中使用“指令”TCM数据吗?
爱特梅尔在这个特殊的MCU变体中实现了ARM TCM(紧耦合存储器)。 Atmel似乎将TCM分为“ITCM”(指令TCM)和“DTCM”(数据TCM)两部分。我正在使用DTCM进行快速存储,通常来自中断。但是,ITCM目前实际上已关闭,但TCM的配置系统仍分配了32K的数据。
我在想,因为我没有执行ITCM,并且内存已分配,我可以使用ITCM进行数据存储吗? Cortex-M7是一个冯诺依曼体系结构CPU,我所看到的架构图显示了两个TCM内存段具有与CPU分离的接口。
链接描述文件中的DTCM和ITCM内存空间都是rw
(为了使用ITCM,实际上您实际上必须在运行时将代码重新定位到其中)。 (ab)以这种方式使用ARM内核的性能影响是什么?
“**指令** TCM不知道怎么办?它的意思是存储中断处理程序或其他性能相关函数,更好的方法是按照预期使用它。做一些过早的优化,对你的代码进行基准测试和分析,找出热点并优先使用C语言进行优化,只有这样才可以考虑采用不同的方法,并将这些功能放在ITCM中。它可以用于datqa(如果可以的话) – Olaf
@Olaf - 也许AFICT,指令/数据区别最初用于较早的核心(ARM926EJ),并将函数移入它的部分涉及将其视为普通RAM?或者事实上,我只是好奇?或者你认为我没有做过其他优化? –
我总是惊讶于“什么如果我这样做的话“在堆栈交换中被如此积极地否定。尝试和尝试是一种很好的学习方式,中医部分的文档至多是最少的,我试图了解该设备如何更好地工作。为什么我不能问一些奇怪的事情? –