Arm 皮质-M1的CMSIS

Arm 皮质-M1的CMSIS,arm,embedded,cortex-m,cmsis,Arm,Embedded,Cortex M,Cmsis,可悲的是,我不得不使用和模糊基于ARM Cortex-M1内核的微控制器。我刚刚发现最新的CMSIS(5.2)不支持它,官方CMSIS说: CMSIS支持全系列Cortex-M处理器(带 Cortex-M1除外)和ARMv8-M架构,包括 安全扩展 我想Cortex-M1不是很受欢迎。但是没有CMSIS我该怎么办?我的供应商提供了支持包,奇怪的是它包含了这个核心的CMSIS文件,即core_cm1.h;它充满了ARM版权,似乎不是由上述供应商直接编写的。文件注释列出了2013年2月25日起的CM

可悲的是,我不得不使用和模糊基于ARM Cortex-M1内核的微控制器。我刚刚发现最新的CMSIS(5.2)不支持它,官方CMSIS说:

CMSIS支持全系列Cortex-M处理器(带 Cortex-M1除外)和ARMv8-M架构,包括 安全扩展

我想Cortex-M1不是很受欢迎。但是没有CMSIS我该怎么办?我的供应商提供了支持包,奇怪的是它包含了这个核心的CMSIS文件,即core_cm1.h;它充满了ARM版权,似乎不是由上述供应商直接编写的。文件注释列出了2013年2月25日起的CMSIS V3.20版。但我在其他任何地方都找不到它,无论是在更高版本的CMSIS中,还是在更低版本的CMSIS中

在约瑟夫·姚(Joseph Yiu)的《手臂皮质M0最终指南》中,我发现了这句话:

软件也有很小的可能需要轻微调整 因为执行时间不同。在撰写本文时,没有 Cortex-M1可使用CMSIS软件包。然而,你 可以对Cortex-M1上的Cortex-M0使用相同的CMSIS文件 编程,因为它们基于相同版本的ARMv6-M 建筑


我将core_cm0.h与CMSIS 4.0和core_cm1.h与我的供应商进行了区分,并发现只有很小的区别(例如,1您可以在Cortex-M1上使用Cortex-M0 CMSIS-core标题。您需要注意以下几点: -Cortex-M1中没有WFI、WFE和SEV指令。 -Cortex-M1有一个用于I-TCM启用控制的辅助控制寄存器。如果需要切换I-TCM启用,则需要手动声明。 -CPU ID寄存器具有不同的值 -指令执行定时是不同的 -中断延迟不是恒定的

从CMSIS-CORE 4到CMSIS-CORE 5有很多代码更改。但这些更改的重点是支持额外的工具、通用编码样式和CMSIS的未来扩展。
希望这有帮助。

从软件的角度来看,Cortex-M1与Cortex-M0非常相似。在CMSIS级别,使用Cortex_cm0.h(最新的CMSIS)可以正常工作


您可能还会发现编译器开关不支持Cortex-M1——在本例中,将其视为M0。

您真的在使用“M1微控制器”吗-谁制造了这样的东西?M1是FPGA的软核。您的供应商可能刚刚提供了M0 CMSIS的旧版本。在CMSIS内核中,ARMv6-M不会有太大的变化。因为它都是作为源提供的,所以您有能力验证您需要的部件是否适合您的目标。没有Cortex-M1 CMSIS的唯一原因是我猜是因为M1是用于FPGA的软核IP,实现可能会有所不同,因为有许多供应商选择的选项。我会使用供应商提供的文件,因为它们可能会与他们为部件@Clifford,weell选择的硅选项相匹配。这实际上有点可疑。供应商没有正式说明这一点s是Cortex-M1,官方称为“高性能RISC核”但正如我在问题中所说,它附带了M1的文件,我应该使用armcc等等。我想你是对的,我应该只使用供应商提供的文件。@old_timer,我们才刚刚开始使用这个特定的芯片,所以没有我的同事知道任何关于它的信息。但是当它出现时,手动重新实现所有寄存器定义“在cmsis中已经完成了这项工作,这简直是疯了。”肖恩霍利汉我可以,但我担心它是用俄语编写的,因为它实际上是一个俄罗斯军事mcu。这是链接