ELF Bin 檔案檢視 ELF Bin 檔案區別

2021-09-30 03:15:59 字數 1184 閱讀 4297

嵌入式開發的時候,我們的編譯乙個*.s檔案,並最終生成bin檔案,編譯命令大致如下:

cc=arm-softfloat-linux-gnu-gcc

ld=arm-softfloat-linux-gnu-ld

objcopy=arm-softfloat-linux-gnu-objcopy

$(cc) -g $(cflag) -c boot.s     #先將boot.s檔案生成boot.o

$(ld) -g -bstatic -t$(ldfile) -ttext 0x12345600 boot.o --start-group -map boot.map -o boot.elf    #再將boot.o生成boot.elf, boot.elf通常就是可執行檔案,類似於gcc -o test test.c 中的test檔案,在linux shell下輸入./test就可以執行。

$(objcopy) -o binary boot.elf boot.bin    #接著將boot.elf->boot.bin,這樣可以縮小**尺寸。

執行arm-softfloat-linux-gnu-objdump -h boot.elf 可以檢視該檔案的資訊,但是如果變成

arm-softfloat-linux-gnu-objdump -h boot.bin會提示錯誤,為了看boot.bin檔案資訊,輸入:

arm-softfloat-linux-gnu-objdump -h -b binary -m arm boot.bin就可以了。哈哈我也是現學了一招,其中引數-h可以被替換成為-d, -s, -s等等,請用arm-softfloat-linux-gnu-objdump --help檢視器中表示的意義。

說說elf bin 檔案區別:

我們有了linux os,為了執行可執行檔案,他們是遵循elf格式的,通常gcc -o test test.c,生成的test檔案就是elf格式的,這樣就可以執行了。

arm-softfloat-linux-gnu-objcopy命令將去掉elf格式的東西,僅僅保留最純的彙編(不知道如何解釋),

在embedded中,如果上電開始執行,沒有os系統,如果將elf格式的檔案燒寫進去,包含一些elf格式的東西,arm執行碰到這些指令,就會導致失敗,如果用arm-softfloat-linux-gnu-objcopy生成純粹的彙編,程式就可以一步一步執行。

聯絡[email protected]就可以了。

Linux 檔案檢視命令和檔案內容檢視

linux 中存在大量的檔案,根據自身需求去查詢檔案時,需要了解檔案型別,能夠更方便的查詢檔案。當然,實現檢視檔案基本資訊和內容的前提是知道文件的具體位置。檔案型別 普通檔案 d 目錄檔案 b 裝置檔案 塊裝置 c 裝置檔案 字元裝置 l 鏈結檔案 s 套接字檔案 p 管道檔案 檔案檢視命令 ls ...

Linux 檔案檢視

var log messages 包括整體系統資訊,其中也包含系統啟動期間的日誌。此外,mail,cron,daemon,kern和auth等內容也記錄在var log messages日誌中。var log dmesg 包含核心緩衝資訊 kernel ring buffer 在系統啟動時,會在螢幕...

Linux 檢視檔案

cat more less head tail cat 是乙個文字檔案 檢視 和 連線 工具,通常與more搭配使用,與more不同的是cat可以合併檔案。檢視乙個檔案的內容,用cat比較簡單,就是cat後面直接接檔名。語法結構 cat 選項 檔案 選項 a,show all 等價於 vet b,n...