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

作者: gn00618777 (非常念舊)   2021-01-06 23:11:30
我是看了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呢?
謝謝
作者: DRQX (傳說中的實力派)   2021-01-07 19:28:00
可能可能 你需要把計概/作業系統/編譯器 的解釋看一看bin / hex 都是機械碼
作者: chuegou (chuegou)   2021-01-07 23:19:00
從那裡開始執行 取決於處理器 通常是將開機裝置(flash)指定位置的程式碼 搬到處理器內部ram(scratchpad)開始執行也有直接在flash執行的處理器
作者: final01 (牛頓運動定律)   2021-01-13 08:40:00
程式設計師自我修練那本去看看
作者: suninrain (低潮)   2021-01-29 17:38:00
印象中MCU燒錄是MCU裡面還有個bootload,HOST根據特定封包傳給IC,bootload就會自己搬去flash了,怎麼搬就看flash的規格了,不太知道你的環境...你如果講的細一點可能大家比較能幫助你
作者: kikiqqp (喵食罐頭)   2021-02-08 20:56:00
更低階的MCU連BOOTLOAD都沒有,程式開始就是由0x00h開始跑到Flash(或EPROM)最後燒錄完全由HOST這邊控制

Links booklink

Contact Us: admin [ a t ] ucptt.com