首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cortex-M1的CMSIS

Cortex-M1的CMSIS
EN

Stack Overflow用户
提问于 2018-01-19 15:59:50
回答 2查看 254关注 0票数 0

可悲的是,我不得不使用和模糊基于ARM皮质M1核心的微控制器。我刚刚发现最新的CMSIS (5.2)不支持它,官方的CMSIS 文档这样说:

CMSIS支持整个Cortex-M处理器(Cortex-M1除外)和ARMv8-M体系结构,包括安全扩展。

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

在约瑟夫·姚的“手臂皮质的权威指南-M0”中,我发现了这句话:

由于执行时间的不同,软件需要进行小的调整的可能性也很小。在编写本报告时,没有用于Cortex-M1的CMSIS软件包。但是,您可以在Cortex-M1编程中对Cortex-M0使用相同的CMSIS文件,因为它们基于相同版本的ARMv6-M体系结构。

我将core_cm0.h与CMSIS4.0和core_cm1.h与我的供应商区别开来,发现只有非常小的差别(例如,1 << smthn在几个地方变成了1u << smthn )。我将core_cm0.h与CMSIS5.0.2和core_cm1.h分别与我的供应商进行了比较,发现了许多不同之处,结构不同,inline的内联功能也不同等等。

所以我的问题是:使用core_cm0对Cortex-M1,甚至对最新的CMSIS来说,真的安全吗?或者我应该谨慎行事,坚持我的供应商的文件(即使我不知道它是从哪里得到的)?

EN

回答 2

Stack Overflow用户

发布于 2018-02-01 13:47:48

您可以在Cortex-M1上使用Cortex-M0 CMSIS核心标头。有几件事你需要知道:- WFI,WFE和SEV指令在Cortex-M1中不可用。- Cortex-M1有一个用于I启用控制的辅助控制寄存器。如果您需要切换I启用,则需要手动声明。- CPU ID寄存器有不同的值-指令执行时间是不同的-中断延迟不是恒定的。

从CMSIS 4到CMSIS 5有大量的代码变化,但这些变化集中在对附加工具的支持、通用编码样式的支持以及对CMSIS的未来扩展上。希望这能有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2018-02-07 08:35:18

从软件的角度来看,皮质M1与Cortex-M0非常相似。在CMSIS级别,使用core_cm0.h (最新的CMSIS)将运行良好。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48344986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档