Sharing common functions across multiple firmwares

  • I have a bootloader and application firmware created using SEGGER Embedded Studio, but with the current flash size limitations, there is no room for adding new features to the application firmware. Is there a way to place functions used by both the bootloader and application firmware in a shared section, allowing both to reference these functions and reduce total flash usage?

    Additionally, is there a method to import the bootloader’s symbol table into the application firmware so that functions defined in both the bootloader and application occupy memory only in the bootloader’s flash area?

  • I think this is a bad idea.
    Because for one, this "shared" library code must be located in the BL application/sector, or else it would most probably delete itself partially when updating the application.
    However, that defeats the main idea of a separate BL in the first place - you would need to update it almost everytime you update the application. Not to mention, it makes the build/link process much more complicated.

    You are not the first one involved in a project that started out with much too optimistic resource requirement predictions.
    Bite the bullet, and upgrade to the next larger MCU variant - or platform.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!