there's more practical alternatives: - if the screen layout is simple, make it "data driven" so you load some configuration instead of code. COnfig would have "background image X, paint field X at coords Y,Z with font F" - use native code, sandbox it with the MPU. There's RTOSs out there like Tock that allow dynamically loading "apps" that you can either use or take inspiration from. - just accept you'll have to reflash the entire firmware when changing the screen layout.