[问题] 想请问 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