Just a note to the list to get feedback on the split image and build dependencies. Feedback would be great, but I also just want to get this out there for understanding (myself mostly as its hurting my head). All if this stuff is buried in newt, so the user won't have to understand much of this, but here's the explanation for developers.
As an FYI when this is checked in, you will define a split app in your target by adding. app=apps/my_ble_app loader=@apache-mynewt-core/ble_loader Of course non-split single images will still be available. Dependencies and new build steps within Newt: 1) Build loader.elf - This is the app that runs as the stand alone loader image. Its name is whatever you call it in your target (e.g. ble_loader.elf above), but here I'll call it loader.elf. It is built like a normal newt app and the existing newt .elf->.a->.o->.c dependencies work great. 2) Build application .a's - This is the object archives for the split application. They are built like a normal newt app and the existing newt .a->.o->.c dependencies work great. 3) Build loader_rom.elf - the shared position dependent library that defines the symbols that the loader and app will share. Newt will check dependency on loader .a's and app .a's and if any are newer than loader_rom.elf will rebuild loader_rom.elf This elf-lib will be passed to the app for linking. NOTE: It's name will be based on the name of the loader= target (e.g. ble_loader_rom.elf in this example). 4) Build splitApp.a - is the archive of all the .as for the split app with the symbols in loader_rom.elf removed. Newt will check dependency on the app.a's and loader_rom.elf and if any are newer than splitApp.a, will rebuild it. Its built by archiving all the app .a's into one big blob, and then removing the symbols that are in loader_rom.elf. 5) app.elf - This is the split application image that gets loaded into partition 2. Its dependent on splitApp.a and loader_rom.elf New will check dependencies on splitApp.a and loader_rom.elf and rebuild app.elf if either of these are newer than the existing app.elf In a single image build, I will skip steps 1,3 and there will be no dependency on loader_rom.elf. I'll probably continue to do step 2,4,5 for single or split images even though its not strictly necessary since it will make the code more readable and should take negligible time.
