【问题标题】:Programming on different ARM architectures在不同的 ARM 架构上编程
【发布时间】:2015-11-29 08:19:20
【问题描述】:

我正在努力确保自己了解一些有关针对不同 ARM 架构(例如 ARMv5 与 ARMv7)进行编程的基础知识。

我有一个移植到较新的 Raspberry Pi B(Cotrex-7A) 的 python 程序。还要让它在 ARMv6 或 ARMv5 架构上运行需要什么。该程序无需 GPU 即可进行简单的波形处理和串行通信。

我的理解是,我必须为每个架构重新编译程序以考虑不同的指令集。而且我还需要运行相同版本的 Linux(在本例中为 Wheezy),但我还需要考虑更多吗?

是否有可能如果它在 ARMv7 中编译它不会在 ARMv6 或 ARMv5 上编译

谢谢

【问题讨论】:

  • 通常你可以为旧架构编译并让它在新架构上工作,它们通常会添加并且很少会删除。对于正常的指令是正确的,对于浮点,它是在逐个芯片的基础上,如果你使用软浮点,你是可移植的,硬浮点是可能出现问题的地方(同样是旧的端口,只要你不真的老了)。
  • 为了好玩,您也可以将其表述为“我有一个可以在我的 Core i5 上运行的 Python 程序,如果要让它在 Core 2 Duo/Pentium 4/Pentium III 上运行需要什么? /夸克?”答案几乎是相同的。如果您来自 x86 并且从来不必担心那里的架构版本,那么您也不太可能在 ARM 上遇到重大问题。

标签: python linux arm raspberry-pi


【解决方案1】:

python 的好处是你很少需要担心 底层架构。 Python被解释,所以解释器做 处理 32 位、64 位、little-endian、big-endian 的所有艰苦工作, 软或硬浮点等。

另外,你不需要编译你的 python,因为解释器会 如果您同时提供 .py 和 .pyc 或 .pyo 文件,还可以编译您的源代码 后者与需要的不匹配。编译python是 与编译 C 不同,例如,因为 python 的目标是虚拟的 机器,不是真正的硬件。生成的 .pyc 或 .pyo 文件是 但是与特定版本的python有关。

一般情况下,通常会提供源文件,如果没有.pyc或.pyo, 那么第一次运行 python 时它会创建它们(如果它有 文件权限)。然后第二次运行将使用已编译的版本, 如果源没有改变。

【讨论】:

  • 太好了,谢谢!我对 python 和 ARM 开发都很陌生,所以这为我指明了正确的方向。我假设我的主要限制是 python 版本兼容性
猜你喜欢
  • 1970-01-01
  • 2021-06-03
  • 1970-01-01
  • 2019-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-21
  • 2017-09-17
相关资源
最近更新 更多