Hi all! =)
I just start working with arm926ej-s (an old board with Linux kernel 2.6.28, for wich I need write one small programm; got from the employee who quit).
I try to use ARM DS with GNU Toolchain for the A-profile Architecture: 8.2-2018.08 August 31, 2018 on Ubuntu (don't find toolchain with soft poin to Windows).
I use keys for project: -c -fmessage-length=0 -mcpu=arm926ej-s -mfloat-abi=soft -mthumb -mthumb-interwork
Compile Hello World programm, but when I start it on the board, It falls fith error "Illegal instruction". I find some topics, after then I find some tipic else and add D__ARM_ARCH_5TEJ__ define, also add __asm__ __volatile__ ("" : : : "memory"), but "Illegal instruction" again.
My code:
#include <iostream> using namespace std; int main() { __asm__ __volatile__ ("" : : : "memory"); while (true){ cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!! for (volatile int i = 0; i < 19200000; ++i){} } return 0; }
Compiler output:
01:38:12 **** Incremental Build of configuration Debug for project Test **** make all Building file: ../src/Test.cpp Invoking: GCC C++ Compiler 8.2.1 [arm-linux-gnueabi] arm-linux-gnueabi-g++ -std=c++98 -D__ARM_ARCH_5TEJ__ -O0 -g3 -Wall -c -fmessage-length=0 -mcpu=arm926ej-s -mfloat-abi=soft -mthumb -mthumb-interwork -fpic -MMD -MP -MF"src/Test.d" -MT"src/Test.o" -o "src/Test.o" "../src/Test.cpp" Finished building: ../src/Test.cpp Building target: Test Invoking: GCC C++ Linker 8.2.1 [arm-linux-gnueabi] arm-linux-gnueabi-g++ -s -mcpu=arm926ej-s -mfloat-abi=soft -mthumb -mthumb-interwork -o "Test" ./src/Test.o Finished building target: Test 01:38:15 Build Finished. 0 errors, 0 warnings. (took 3s.345ms)
Is anyone know, what I can try else? =)
would better to provide the disassembly code of main with objdump, so that we could have a look what instruction cause the Illegal instruction.