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