在Linux環境中,所處平台不同,執行文件也就不同,同一執行文件不能在不同平台下使用
如在Ubnutu下 是用gcc編譯一個.c文件
gcc main.c -o main.out
-o 可以指定輸出文件名
但是這個mian.out文件只能在Ubnutu等其他X86構架的平台上運行,如果我們要在ARM上運行,就需要使用交叉編譯器。
交叉編譯器需要去根據系統構架去官網下載。
使用交叉編譯器的編譯一個可執行裸機文件:
流程
①、使用arm-linux-gnueabihf-gcc,將.c .s文件變為.o
arm-linux-gnueabihf-gcc -g -c main.c -o main.o
②、將所有的.o文件連接為elf格式的可執行文件。
arm-linux-gnueabihf-ld -Ttext 0X87800000 main.o -o main.elf
其中0x87800000為代碼起始執行地址。
③、將elf文件轉為bin文件。
arm-linux-gnueabihf-objcopy -O binary -S -g main.elf main.bin
也可以將elf文件轉為匯編,反匯編。
arm-linux-gnueabihf-objdump -D main.elf > main.dis
再使用imxdownload燒寫到存儲目錄
./imxdownload main.bin /dev/sdd