【问题标题】:Merge elf sections合并精灵部分
【发布时间】:2020-11-03 13:53:49
【问题描述】:

我有一个包含以下部分的 elf 文件:

Section Headers:
  [Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
  [ 0]                   NULL            00000000 000000 000000 00      0   0  0
  [ 1] .rtc.text         PROGBITS        400c0000 14e3c92 000000 00   W  0   0  1
  [ 2] .iram0.vectors    PROGBITS        40080000 000074 000400 00  AX  0   0  4
  [ 3] devices           PROGBITS        3ffb0000 13b2780 000090 00  WA  0   0  4
  [ 4] _k_mem_slab_area  PROGBITS        3ffb0090 13b2810 000038 00  WA  0   0  4
  [ 5] _k_sem_area       PROGBITS        3ffb00c8 13b2848 000048 00  WA  0   0  4
  [ 6] _k_mutex_area     PROGBITS        3ffb0110 13b2890 000014 00  WA  0   0  4
  [ 7] _net_buf_pool_are PROGBITS        3ffb0124 13b28a4 000050 00  WA  0   0  4
  [ 8] net_if            PROGBITS        3ffb0180 13b2900 0000a0 00  WA  0   0 32
  [ 9] net_if_dev        PROGBITS        3ffb0220 13b29a0 000020 00  WA  0   0  4
  [10] initlevel         PROGBITS        40080400 000474 000080 00   A  0   0  4
  [11] sw_isr_table      PROGBITS        40080480 0004f4 000100 00  WA  0   0  4
  [12] shell_sections    PROGBITS        40080580 0005f4 00002c 00   A  0   0  4
  [13] shell_root_cmds_s PROGBITS        400805ac 000620 000040 00   A  0   0  4
  [14] text              PROGBITS        400805ec 000660 000115 00  AX  0   0  4
  [15] .dram0.data       PROGBITS        3ffb0240 13b29c0 000128 00  WA  0   0  4
  [16] rodata            PROGBITS        3ffb0368 13b2ae8 0034d0 00   A  0   0  4
  [17] bss               NOBITS          3ffb3838 13b5fb8 001900 00  WA  0   0  8
  [18] app_noinit        PROGBITS        3ffb5138 14e3c92 000000 00   W  0   0  1
  [19] noinit            NOBITS          3ffb5140 13b5fb8 005e10 00  WA  0   0 16
  [20] .intList          PROGBITS        3ebfe010 000790 000048 00  WA  0   0  4
  [21] .flash.text       PROGBITS        400d0018 14d2798 0114fa 00  AX  0   0  4

我正在使用一个将这个精灵作为输入的工具,但最多只能处理 16 个部分。如您所见,其中一些部分是相邻的。

有没有办法在链接时或在使用其他工具之前合并这些部分?

【问题讨论】:

  • 你能解释一下为什么要合并它们吗?可以编写链接描述文件。
  • @P__J__ 我使用的工具不能处理超过 16 个部分。他们可以使用细分,但目前他们使用部分
  • 什么工具?这个工具有什么作用?
  • esptool。这会将 elf 文件转换为 bin file for esp32

标签: elf objcopy


【解决方案1】:

我正在使用一个将这个精灵作为输入的工具,但最多只能处理 16 个部分。 https://github.com/espressif/esptool

由于该工具是开源的,修复它会更容易,然后尝试解决这个限制。

合并具有相同标志且连续的节并不难,但可能如果存在引用节开始/结束的重定位,则会破坏代码。

如果没有这样的重定位,你应该首先看看为什么你有所有这些部分。

【讨论】:

  • 我会尝试解决这个问题。但我试图找到一个快速的解决方法,因为这只是一个与我正在尝试做的事情无关的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-02
  • 1970-01-01
相关资源
最近更新 更多