我有一个带有以下部分的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个部分。如您所见,其中一些部分是相邻的。
是否有办法在链接时或在使用其他工具之前合并这些部分?
答案 0 :(得分:0)
我正在使用一个以该小精灵作为输入的工具,但最多只能使用16个部分。 https://github.com/espressif/esptool
由于该工具是开源的,因此更容易修复,然后尝试解决此限制。
合并具有相同标志且连续的节并不难,但是可能在存在引用节开始/结束的重定位时可能会破坏代码。
如果没有这样的重定位,则应首先查看为什么。所有这些部分。