微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有关手臂组装和不同处理器的问题

如何解决有关手臂组装和不同处理器的问题

所以我开始了一个很小的项目,以学习有关rtos的一些基础知识(已经在uni完成了os课程),我想自己尝试一下并尝试制作一个小的rtos。

听起来很困难,也许是,但是我很愿意拍摄。

所以我的问题是,手臂皮层处理器之间在与ISA有关的方面是否有所区别。

例如,如果我在M0 +上写了sys调用或中断,它是否与M33兼容,或者是否需要在许多情况下编写相同的东西? (例如,M33为1,M0 +为1等)。

由于微体系结构正在发生变化,因此我假设我可以做到,但我不确定。

此外,由于某些处理器具有相同的体系结构但微体系结构不同,这是否意味着每个处理器都可能支持一些额外的指令?例如M33可以有strcpy指令,而M0不能吗?

预先感谢, kx

解决方法

这基本上是对异地材料的要求,可能会被关闭。您只需要查看所有这些答案所在的arm文档...关于ISA /内核(大多数代码与内核无关,但与不是arm且在任何情况下均不兼容的芯片无关)方式,从而在操作系统设计中使用抽象层和驱动程序。

我讨厌使用链接,但在Wikipedia上搜索cortex-m。虽然它远胜于印刷百科全书,但它并不完美,但是特别是在cortex-m页面上,我常常觉得作为某些事情的起点非常有用,然后直接深入研究arm文档。而且我已经看到它有错误,但是那很好。忽略冯·诺伊曼/哈佛那是火焰诱饵的东西。我不同意他们对armv6-ms以及他们所谓的thumb-1支持的评估,我不同意他们对thumb-2的支持,我对从“所有拇指变体”或armv4t拇指添加到armv6-m的20条thumb-2指令进行了统计。 (以及armv7-m约为150)。

该图表确实显示了您可以在arm文档中轻松阅读的内容,即armv7-m与armv6-m共享相同的指令,但增加了一些指令。虽然armv8-m有点棘手,但是它们与第一个文档描述它的方式不同,或者您有不同的描述方式,但是您可以想到一种方式是,他们具有armv6-m级别/设置和armv7-m级别设置,但是他们使用或曾经使用过的语言表示,如果他们选择放弃一些对开发人员或至少是工具人员来说比较粗糙的指令,则armv8-m可能会选择挑选他们喜欢的指令,因为这需要花费一段时间。正确使用工具(gnu汇编器,gcc等)。

您最好的选择是为armv6-m打造,到目前为止,我可以说它与所有cortex-m内核兼容。就指令集而言。就核心选项(fpu,中断,双栈指针,获取长度以及许多其他选项)以及芯片选项而言,您需要针对要处理的一个或多个目标逐个处理。 / p>

小心使用术语“微体系结构”会导致人们认为ARM是经过微编码的,而实际上不是,这是没有意义的。这些内核是为与体系结构文档相匹配而构建的,例如x86,而其他内核只是假定每个下一个内核都位于完成整洁工作的微小补丁之间。不同的管道深度是一个重要的指标,表明它比微小的补丁更接近完成工作。因此,假设每个内核的实现都是重复执行的,独立的并且很好,因为它通常无关紧要,它匹配的体系结构以及在执行此操作时会发生的错误/勘误确实很重要。

在armv4t中的拇指(arm内部具有不同的thumb版本号,当我们认为thumb和thumb2相同,并且它们类似于thumb7或9之类的东西时,一定会使他们感到困惑)是受支持的整个arm系列的isa在除aarch64 armv-8a之外的所有产品上。我确定我之前已经做过,但是我需要重新访问原始的vs vs armv6-m,以查看维基百科在试图说些什么。例如,它们对bl是同一条指令具有误导性,在cortex-m之前,它是两条单独的指令,以这种方式记录(不是一个32位,而是两个完全独立的16位),如果选择将这两个分开,则可以一段距离,但随着皮层毫秒,它成为一个不可分割的指令。从程序员的角度来看,它没有改变,因为常用的工具(气体等)背靠背生成了两个部分,并且没有选择生成一半指令的选项。

如果您仔细阅读armv7-m体系结构参考手册,可以按指令进行操作,可以看到armv7-的那些,特定于本质上是thumb2 cortex-m的那些(将注意armv7和armv6),然后一个会列出所有体系结构,或者说出所有的拇指变体,具体取决于您拥有的armv7-m文档的版本。

strcpy与ISA无关。它们都支持strb / ldrb,strh.ldrh,str / ldr等。

m33是armv8-m主线,因此如果您愿意的话,它基本上是armv7-m,请参阅armv8-m文档(以及armv7-m文档)(请注意基线= armv6-m和mainline = armv7-m BUT阅读精美的文字可能会有例外,我只有几个armv8-ms,他们只是使用gcc / gas(可能是告诉gcc / gas这是cortex-m0),并且没有像我那样做过多的阅读/研究在其他人身上...

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。