基于cortex m3的汇编代码有区别吗?
Is there a difference at assembly code of the based cortex m3?
例如...
stm32l152(基于cortex m3)的汇编语言和stm32f103的汇编语言一样吗?
而且based cortex m3的所有mcu的汇编语言都一样吗?
我知道外围设备不一样,但是汇编语言呢?
有什么不同吗?
为了澄清你的问题,指令集和汇编语言之间有一个重要的区别。指令集(顾名思义)是处理器理解的指令集。汇编语言是一种低级编程语言,它提供(大部分)1:1 其助记符和实际指令之间的对应关系。
所有Cortex-M3处理器的指令集都是一样的。它是 Cortex M4 和 M4F 的子集,是 Cortex M0 和 M0+ 的超集。它还与这些设备二进制兼容,因此为 M3 编写的代码将 运行 在 M4F 上保持不变。
工具链和体系结构之间的汇编语言不同,因此除非您指定工具链,否则您的原始问题没有简单的答案;但是例如,如果您使用的是 ARMASM,那么是的,使用该工具链的汇编语言对于所有 Cortex-M3 设备都是相同的。
正如您在问题中指出的那样,来自不同制造商的处理器之间存在显着的外设差异,因此即使来自不同制造商的两个给定设备可能共享一个指令集,也很难设计出任何有用的裸机软件实际上运行 他们俩。如果您使用的操作系统提供硬件功能的完全抽象,那么您的应用程序代码很有可能在两者之间实现二进制兼容,但我不确定这有多大帮助。
阅读 ARM 文档很容易回答这个问题,我认为这解释了反对票的原因 - 但如果英语不是您的第一语言,如果文档看起来有点令人生畏,我可以理解。
例如... stm32l152(基于cortex m3)的汇编语言和stm32f103的汇编语言一样吗? 而且based cortex m3的所有mcu的汇编语言都一样吗?
我知道外围设备不一样,但是汇编语言呢? 有什么不同吗?
为了澄清你的问题,指令集和汇编语言之间有一个重要的区别。指令集(顾名思义)是处理器理解的指令集。汇编语言是一种低级编程语言,它提供(大部分)1:1 其助记符和实际指令之间的对应关系。
所有Cortex-M3处理器的指令集都是一样的。它是 Cortex M4 和 M4F 的子集,是 Cortex M0 和 M0+ 的超集。它还与这些设备二进制兼容,因此为 M3 编写的代码将 运行 在 M4F 上保持不变。
工具链和体系结构之间的汇编语言不同,因此除非您指定工具链,否则您的原始问题没有简单的答案;但是例如,如果您使用的是 ARMASM,那么是的,使用该工具链的汇编语言对于所有 Cortex-M3 设备都是相同的。
正如您在问题中指出的那样,来自不同制造商的处理器之间存在显着的外设差异,因此即使来自不同制造商的两个给定设备可能共享一个指令集,也很难设计出任何有用的裸机软件实际上运行 他们俩。如果您使用的操作系统提供硬件功能的完全抽象,那么您的应用程序代码很有可能在两者之间实现二进制兼容,但我不确定这有多大帮助。
阅读 ARM 文档很容易回答这个问题,我认为这解释了反对票的原因 - 但如果英语不是您的第一语言,如果文档看起来有点令人生畏,我可以理解。