Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 
    SOLVED

    BSEC 2.0.6.1 - Cortex-M33F binary size of libalgobsec.a

    knieriem
    Member

    BSEC 2.0.6.1 - Cortex-M33F binary size of libalgobsec.a

    Hi,

    looking at the binary sizes of libalgobsec.a, compiled for different architectures using GCC, I noticed that the size for Cortex_M33F (49453 B) is notably larger than the size for the comparable Cortex_M4F (27841). Both architectures support an FPU, and similar instruction sets, from what I can see on Wikipedia and in the  ARM architectures and processors forum; so I would expect similar compact code.

    In case of the M4F, the size increase, in comparison to the non-FPU version, is only some hundred bytes, in case of the M33F it is around 12 KiB:

    Cortex_M33    27337
    Cortex_M33F 49453
    Cortex_M4       27225
    Cortex_M4F     27841

    Is there a difference in GCC's compiler options (like, a different optimization choice) or some other conditions,  that explain the binary size increase on M33F?

    10 REPLIES 10
    BSTRobin
    Community Moderator

    Re: BSEC 2.0.6.1 - Cortex-M33F binary size of libalgobsec.a

    Hi knieriem,

    Thanks for your feedback. We will check and let you know later.

    BSTRobin
    Community Moderator

    Re: BSEC 2.0.6.1 - Cortex-M33F binary size of libalgobsec.a

    Hi knieriem,

    After our check, every other MCU uses -fdata-sections in compiling options, but M33F doesn't.
    -fdata-sections could decrease size of generated files.

    So M33F library size is bigger than others.

    knieriem
    Member

    Re: BSEC 2.0.6.1 - Cortex-M33F binary size of libalgobsec.a

    Hello BSTRobin,

    thank you for your reply.

    Option -fdata-sections tells the compiler to put each variable into its own section, rather than using one .data vs .bss section per object file; this allows the linker to remove variables from the executable that are not needed by the functions actually used, which would not be possible without that option.

    Using or not using this option should not have such a big impact on the size of .text section, the compiled functions, though;
    actually, when not using -fdata-sections, code can be slightly smaller (probably because the compiler knows relative offsets of variables and can create more efficient code).

    What I'm seeing is that functions in the M33F-lib.a are 1.3x to 3x larger than the same functions in M33 or M4F libs. These factors seem to suggest that optimization is not activated for M33F at all. Could you please check again, whether optimization is configured the same for M33F as for M33, M4 and M4F?

    Regards,
    Michael

    BSTRobin
    Community Moderator

    Re: BSEC 2.0.6.1 - Cortex-M33F binary size of libalgobsec.a

    Hi knieriem,

    By the way, did you try to run M33F library on your host MCU? If yes, could you let us know if you get some problem?

    Icon--AD-black-48x48Icon--address-consumer-data-black-48x48Icon--appointment-black-48x48Icon--back-left-black-48x48Icon--calendar-black-48x48Icon--center-alignedIcon--Checkbox-checkIcon--clock-black-48x48Icon--close-black-48x48Icon--compare-black-48x48Icon--confirmation-black-48x48Icon--dealer-details-black-48x48Icon--delete-black-48x48Icon--delivery-black-48x48Icon--down-black-48x48Icon--download-black-48x48Ic-OverlayAlertIcon--externallink-black-48x48Icon-Filledforward-right_adjustedIcon--grid-view-black-48x48IC_gd_Check-Circle170821_Icons_Community170823_Bosch_Icons170823_Bosch_Icons170821_Icons_CommunityIC-logout170821_Icons_Community170825_Bosch_Icons170821_Icons_CommunityIC-shopping-cart2170821_Icons_CommunityIC-upIC_UserIcon--imageIcon--info-i-black-48x48Icon--left-alignedIcon--Less-minimize-black-48x48Icon-FilledIcon--List-Check-grennIcon--List-Check-blackIcon--List-Cross-blackIcon--list-view-mobile-black-48x48Icon--list-view-black-48x48Icon--More-Maximize-black-48x48Icon--my-product-black-48x48Icon--newsletter-black-48x48Icon--payment-black-48x48Icon--print-black-48x48Icon--promotion-black-48x48Icon--registration-black-48x48Icon--Reset-black-48x48Icon--right-alignedshare-circle1Icon--share-black-48x48Icon--shopping-bag-black-48x48Icon-shopping-cartIcon--start-play-black-48x48Icon--store-locator-black-48x48Ic-OverlayAlertIcon--summary-black-48x48tumblrIcon-FilledvineIc-OverlayAlertwhishlist