SoftConsole 4.0 "плохая инструкция" ассемблер

Используя MicroSemi SoftConsole 4.0, чтобы попытаться скомпилировать и запустить демонстрационный проект FreeRTOS, я столкнулся с ошибкой "неверная инструкция" [каждая строка кода] '". По сути, весь файл по какой-то причине не собирается. Моя консоль выглядит так:

Building file: ../FreeRTOS-Plus/WolfSSL/wolfcrypt/src/aes_asm.asm
Invoking: Cross ARM GNU Assembler
arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -O2  -g -x assembler-with-cpp -MMD -MP -MF"FreeRTOS-Plus/WolfSSL/wolfcrypt/src/aes_asm.d" -MT"FreeRTOS-Plus/WolfSSL/wolfcrypt/src/aes_asm.o" -c -o "FreeRTOS-Plus/WolfSSL/wolfcrypt/src/aes_asm.o" "../FreeRTOS-Plus/WolfSSL/wolfcrypt/src/aes_asm.asm"
../FreeRTOS-Plus/WolfSSL/wolfcrypt/src/aes_asm.asm: Assembler messages:
../FreeRTOS-Plus/WolfSSL/wolfcrypt/src/aes_asm.asm:37: Error: bad instruction `_text SEGMENT'
../FreeRTOS-Plus/WolfSSL/wolfcrypt/src/aes_asm.asm:38: Error: bad instruction `aes_cbc_encrypt PROC'
../FreeRTOS-Plus/WolfSSL/wolfcrypt/src/aes_asm.asm:46: Error: bad instruction `save rdi and rsi to rax and r11,restore before ret'
../FreeRTOS-Plus/WolfSSL/wolfcrypt/src/aes_asm.asm:47: Error: ARM register expected -- `mov rax,rdi'
../FreeRTOS-Plus/WolfSSL/wolfcrypt/src/aes_asm.asm:48: Error: immediate expression requires a # prefix -- `mov r11,rsi'
../FreeRTOS-Plus/WolfSSL/wolfcrypt/src/aes_asm.asm:50: Error: bad instruction `convert to what we had for att&t convention'
../FreeRTOS-Plus/WolfSSL/wolfcrypt/src/aes_asm.asm:51: Error: ARM register expected -- `mov rdi,rcx'
../FreeRTOS-Plus/WolfSSL/wolfcrypt/src/aes_asm.asm:52: Error: ARM register expected -- `mov rsi,rdx'
../FreeRTOS-Plus/WolfSSL/wolfcrypt/src/aes_asm.asm:53: Error: ARM register expected -- `mov rdx,r8'
../FreeRTOS-Plus/WolfSSL/wolfcrypt/src/aes_asm.asm:54: Error: ARM register expected -- `mov rcx,r9'
../FreeRTOS-Plus/WolfSSL/wolfcrypt/src/aes_asm.asm:55: Error: immediate expression requires a # prefix -- `mov r8,[rsp+40]'
../FreeRTOS-Plus/WolfSSL/wolfcrypt/src/aes_asm.asm:56: Error: ARM register expected -- `mov r9d,[rsp+48]'
../FreeRTOS-Plus/WolfSSL/wolfcrypt/src/aes_asm.asm:58: Error: bad instruction `end'
FreeRTOS-Plus/WolfSSL/wolfcrypt/src/subdir.mk:161: recipe for target 'FreeRTOS-Plus/WolfSSL/wolfcrypt/src/aes_asm.o' failed
make: *** [FreeRTOS-Plus/WolfSSL/wolfcrypt/src/aes_asm.o] Error 1

и т. д. и т. д. (это дает мне ошибку почти для всех 1000 строк кода, которые я, конечно, отредактировал для разборчивости). Как можно заметить, я использую Cross ARM GNU Assembler (arm-none-eabi-gcc), и мой вариант ARM-ассемблера -x assembler-with-cpp, Не уверен, что еще мне нужно включить, но если кто-то знает о потенциальном флаге ассемблера или опции, которую я мог бы пропустить где-нибудь в командной строке, это было бы очень полезно. Я даже не уверен на 100%, что здесь происходит, поэтому любое объяснение того, что может пойти не так, будет полезно. Я чувствую, что это на самом деле не проблема кодирования, а скорее проблема отсутствия совместимости (возможно, неправильный формат сборки? Даже если я использую ассемблер с перекрестным кронштейном). Спасибо!

2 ответа

Не похоже на код ARM ASM. Возможный код Intel.

@ Ричард прав. Это наша сборка Intel, которая помогает криптографическому ускорению на определенных платформах Intel.

Вы можете исправить это, добавив определение NO_ASM в wolfSSL или путем исключения любых файлов, заканчивающихся на.asm, из вашего проекта.

Другие вопросы по тегам