【问题标题】:unknown opcode using ARM NEON instructions with Microsoft ARM assembler使用带有 Microsoft ARM 汇编器的 ARM NEON 指令的未知操作码
【发布时间】:2012-06-26 13:59:17
【问题描述】:

我正在使用 Visual Studio 2008 附带的 Microsoft ARM Assembler v15.00.20720 (armasm.exe)。我正在尝试构建一个使用 ARM Cortex-A8 NEON 指令的程序集文件,但我收到“未知操作码” VLD1VST1 指令的错误 我的处理器是 TI OMAP 3430。

我的命令行:

armasm -32 -CPU ARM8 myfile.asm  myfile.obj

例如:

VLD1.64 {d0-d3}, [r1@128]! ; unknown opcode VLD1
VST1.64 {d4-d7}, [r3@128]! ; unknown opcode VST1

如何解决这些错误?

【问题讨论】:

    标签: assembly windows-mobile arm


    【解决方案1】:

    VS2008 的 armasm 仅支持不包括 NEON 的 ARMv6 (ARM11) 架构。 (the doc 只表示到 v5,但我认为它在 SP1 中得到了扩展。)

    对于 ARMv7,您可以使用最新的 WinCE (=Windows Embedded Compact) Platform Builder 或 Visual Studio 2012(尽管我不能 100% 确定 VS2012 是否支持以 WinCE 为目标)。

    【讨论】:

    • 看起来 NEON 指令仅在 A 系列处理器中,而不是底层 ARMv7 内核。 arm.com/products/processors/technologies/neon.php 我尝试使用 CE6 Platform Builder armasm (v15.01.31217) 并收到类似的错误。 VS2012 不能针对 WinCE。 (然而)尽管如此,我还是可以试试。我需要的只是目标文件,对吗?一旦我明白了,VS2008应该能够链接它。
    • 您应该获得 Windows Compact 7 工具,他们support ARMv7:“Windows Embedded Compact 7 支持架构 v5、v6、v6 MP 和 v7 的 ARM 许可技术。”
    • WEC7 armasm (v15.01.50304) 也不支持 NEON。我怀疑 NEON 是 WEC7 ARM 汇编程序不支持的 Cortex-A 系列架构的一部分。
    • 我刚刚安装了VS2012 RC。那里的 ARM 汇编器 (v11.00.50522) 似乎接受了 NEON 指令集。不幸的是,VS2008 说生成的目标文件“无效或损坏”。啊!
    • @PAulH 这很奇怪,因为我见过一些用于 WEC7 的 OMAP BSP,我认为他们确实使用了 NEON。我需要稍后检查。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-25
    • 2022-08-11
    • 1970-01-01
    • 2016-11-04
    • 2015-11-22
    相关资源
    最近更新 更多