MicroSemi SoftConsole 4.0을 사용하여 컴파일되고 실행되는 FreeRTOS 데모 프로젝트를 얻으 려하고 "잘못된 명령어 '[모든 코드 행]'오류가 발생했습니다. 기본적으로 전체 파일은 어떤 이유로 든 조립되지 않습니다. 내 콘솔은 다음과 같습니다SoftConsole 4.0 "잘못된 명령어"어셈블러
이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
등 등 (그것이 나에게 나는 물론 가독성을 위해 밖으로 편집 한 코드의 거의 모든 1000ish 라인에 대한 오류를 제공). 주목할 수 있듯이 크로스 ARM GNU 어셈블러 (arm-none-eabi-gcc
)를 사용 중이며 내 ARM 어셈블러 옵션은 -x assembler-with-cpp
입니다. 내가 포함 할 필요가있는 것이 무엇인지 모르겠지만 누군가가 잠재적 인 어셈블러 플래그 또는 옵션을 알고있는 경우 커맨드 라인의 어딘가에서 누락되었을 수 있으므로 매우 유용 할 것입니다. 나는 심지어 여기에 무슨 일이 일어나고 있는지 100 % 확신하지 못하기 때문에 무엇이 잘못 될지에 대한 설명도 도움이 될 것입니다. 나는 이것이 정말로 코딩 문제는 아니지만 호환성 문제 (아마도 잘못된 어셈블리 형식 일까? 크로스 - 팔 어셈블러를 사용하고 있음)의 부족과 같은 느낌입니다. 고맙습니다!
어셈블하려고하는 파일은 ARM 용이 아니며 x86 용입니다. 그것은 작동하지 않습니다. – Jester
@Jester 그것이 내가 생각했던 것입니다.하지만 제가 Richard에게 말했던 것처럼, 그것은 ARM 보드를위한 소프트웨어 프로젝트에 포함되어있었습니다. 이것은 혼란 스럽습니다. – Justin
나는 체크하지 않았지만 그 프로젝트는 크로스 플랫폼이거나 아니면 다른 곳의 코드를 포함 할 수도있다. 어쩌면 컴파일하려고하는 코드가 실제로 ARM 전용 또는 일반 C 버전을 가지고있을 수도 있습니다. 빌드 시스템이 잘못 컴파일하여 컴파일합니다. – Jester