Re: [問題] 想請問 binary 在記憶體的執行過程

作者: descent (「雄辯是銀,沉默是金」)   2021-12-07 22:08:45
你有用過 objcopy 把 elf 變成 binary 的經驗嗎?
基本上 binary 沒有任何資訊, 要正確執行是很困難的。
我碰過的一個範例是 dos .com, 可以用 objcopy 將
elf 變成 binary, 然後改名為 .com, 就可以在 dos 下執行,
但是這是有條件的, 起始位址的開頭需要要 cs:0x100 的地方,
得讓 link script 能從 0x100 開始做 link。
另外你說的 segment 也都在同一個地方, 簡單說沒分 segment
所以只有 binary, 基本上是無法正確載入執行, 除非先約定好
要怎麼執行
※ 引述《gn00618777 (非常念舊)》之銘言:
: 我是看了openAMP 的 github project 的 lib,裡面有關於master bootup
: retmote的lib。master bootup remote 是用 remote給的 *.elf檔。
: 只是我好奇,能不能只用自己製作的*.bin 來給 remote bootup
: 其實,我最主要想問的是,*.bin在記憶體中的分布,也是.text, .data, .bss這些嗎?
: 如果透由 *.elf 當然能透過 loader parsing elf 格式找到各 section 並把他
: 載入至記憶體特定位置。那 *.bin沒有格式(也許還是vendor自己加了有的沒的資訊),
: loader該怎麼知道要如何將它載到記憶體
: 並從哪個entry point 執行?
: 我只知道 loader 需要知道 *.bin有哪些是 vendor的資訊,那entry point呢?
: 謝謝

Links booklink

Contact Us: admin [ a t ] ucptt.com