作者descent (「雄辩是银,沉默是金」)
看板ASM
标题Re: [问题] 想请问 binary 在记忆体的执行过程
时间Tue Dec 7 22:08:45 2021
你有用过 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://webptt.com/cn.aspx?n=bbs/ASM/M.1638886132.A.01C.html