Minimum.exe Text Size Outliers
Christian MAUDERER
christian.mauderer at embedded-brains.de
Tue May 25 15:13:26 UTC 2021
Hello Joel,
I think we currently have very few BSPs with a linked in device tree
blob. I know only of the new imxrt (which isn't in your list) and I
think one Xilinx something BSP.
For imx: I only have a build for some minimum based on 5 at hand right
now. I have to re-build an up to date version to double check that. For
this BSP there is 0x000069bc text size and 0x00040ebc rodata. So the
rodata is the odd part.
nm -S --size-sort
./build/b-imx7/arm-rtems5/c/imx7/testsuites/samples/minimum.exe | tail -5
gives a
80205e40 000004e0 T memcpy
80203a00 0000078c T _IO_Vprintf
80300c2c 00000a00 B bsp_interrupt_handler_table
80301ac0 00001000 B _ISR_Stack_area_begin
80207080 00040000 r bsp_fdt_blob
So yes: For some reason there is a big bsp_fdt_blob there even if none
should be linked in. I had a look at that variable:
https://git.rtems.org/rtems/tree/bsps/shared/start/bsp-fdt.c
U-Boot passes a FDT blob and the BSP copies it into that area that is
reserved with a fixed size. Seems reasonable because we can't easily
allocate memory when we copy the FDT. It's done during initialization
and therefore there is no heap yet.
If you still have the binaries: Maybe you can call the nm command like
above for the other BSPs too so we can see what the biggest objects are?
Best regards
Christian
Am 24.05.21 um 15:00 schrieb Joel Sherrill:
> Hi
>
> I built all 187 BSPs overnight and saved minimum.exe. Although I think
> 64K is still too much code, I am using that as an initial cutoff when
> asking for some help in identifying why minimum.exe is surprisingly
> large for some BSPs. 146 stayed under 64k which leaves 41 needing some
> investigation or explanation. I suspect some might have a device tree
> blob linked in. The surprising ones are the riscv, stmh7, beagle, and qoriq.
>
> Here is the list:
>
> 73680 504 34135552 34209736 209ffc8
> minimum-exes/arm-nucleo-h743zi-minimum.exe
> 73680 504 34135552 34209736 209ffc8
> minimum-exes/arm-stm32h7-minimum.exe
> 88509 452 268346424 268435385 fffffb9
> minimum-exes/riscv-frdme310arty-minimum.exe
> 88647 760 67019328 67108735 3ffff7f
> minimum-exes/riscv-rv64imac_medany-minimum.exe
> 88697 760 67019328 67108785 3ffffb1
> minimum-exes/riscv-rv64imac-minimum.exe
> 88947 760 67019072 67108779 3ffffab
> minimum-exes/riscv-rv64imafdc-minimum.exe
> 88955 760 67019072 67108787 3ffffb3
> minimum-exes/riscv-rv64imafdc_medany-minimum.exe
> 89279 452 67019064 67108795 3ffffbb
> minimum-exes/riscv-rv32imac-minimum.exe
> 89561 452 67018808 67108821 3ffffd5
> minimum-exes/riscv-rv32imafc-minimum.exe
> 89577 452 67018744 67108773 3ffffa5
> minimum-exes/riscv-rv32imafdc-minimum.exe
> 90267 452 67018040 67108759 3ffff97
> minimum-exes/riscv-rv32iac-minimum.exe
> 96523 760 67011520 67108803 3ffffc3
> minimum-exes/riscv-rv64imafd_medany-minimum.exe
> 96547 760 67011456 67108763 3ffff9b
> minimum-exes/riscv-rv64imafd-minimum.exe
> 97787 452 67010536 67108775 3ffffa7
> minimum-exes/riscv-rv32im-minimum.exe
> 98071 452 67010296 67108819 3ffffd3
> minimum-exes/riscv-rv32imafd-minimum.exe
> 99587 452 67008744 67108783 3ffffaf
> minimum-exes/riscv-rv32i-minimum.exe
> 100328 9148 24320 133796 20aa4 minimum-exes/i386-pc386-minimum.exe
> 103344 9436 24256 137036 2174c minimum-exes/i386-pcp4-minimum.exe
> 108836 9148 24320 142304 22be0 minimum-exes/i386-pc486-minimum.exe
> 111956 9148 24320 145424 23810 minimum-exes/i386-pc586-minimum.exe
> 112148 9372 24256 145776 23970
> minimum-exes/i386-pc586-sse-minimum.exe
> 114612 9148 24320 148080 24270 minimum-exes/i386-pc686-minimum.exe
> 121013 19128 93696 233837 3916d
> minimum-exes/powerpc-mvme5500-minimum.exe
> 123765 22980 379760 526505 808a9
> minimum-exes/powerpc-qemuprep-minimum.exe
> 124253 22916 380484 527653 80d25
> minimum-exes/powerpc-mvme2100-minimum.exe
> 126669 23060 379760 529489 81451
> minimum-exes/powerpc-qemuprep-altivec-minimum.exe
> 129820 1024 11872 142716 22d7c minimum-exes/mips-malta-minimum.exe
> 130673 24324 380496 535493 82bc5
> minimum-exes/powerpc-mtx603e-minimum.exe
> 130977 24380 380496 535853 82d2d
> minimum-exes/powerpc-mcp750-minimum.exe
> 131029 24240 380496 535765 82cd5
> minimum-exes/powerpc-mvme2307-minimum.exe
> 154493 23912 92876 271281 423b1
> minimum-exes/powerpc-beatnik-minimum.exe
> 168173 27216 25081 220470 35d36
> minimum-exes/powerpc-mvme3100-minimum.exe
> 289136 424 535532700 535822260 1fefffb4
> minimum-exes/arm-imx7-minimum.exe
> 312308 7964 66788536 67108808 3ffffc8
> minimum-exes/powerpc-qoriq_core_1-minimum.exe
> 312340 8036 33277808 33598184 200aae8
> minimum-exes/powerpc-qoriq_core_0-minimum.exe
> 312340 8036 519817056 520137432 1f00aad8
> minimum-exes/powerpc-qoriq_e500-minimum.exe
> 316944 8060 519816888 520141892 1f00bc44
> minimum-exes/powerpc-qoriq_e6500_32-minimum.exe
> 331076 1304 519814736 520147116 1f00d0ac
> minimum-exes/powerpc-qoriq_e6500_64-minimum.exe
>
> Help in reducing and/or explaining is appreciated.
>
> --joel
>
>
>
>
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
>
--
--------------------------------------------
embedded brains GmbH
Herr Christian MAUDERER
Dornierstr. 4
82178 Puchheim
Germany
email: christian.mauderer at embedded-brains.de
phone: +49-89-18 94 741 - 18
fax: +49-89-18 94 741 - 08
Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/
More information about the devel
mailing list