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

看板ASM (組合語言)作者 (「雄辯是銀,沉默是金」)時間3年前 (2021/12/07 22:08), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
你有用過 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呢? : 謝謝 -- 紙上得來終覺淺,絕知此事要躬行。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.184.173.118 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/ASM/M.1638886132.A.01C.html
文章代碼(AID): #1Xhshq0S (ASM)
文章代碼(AID): #1Xhshq0S (ASM)