The Developer's Guide for Over Air Download for CC254x suggests in section 8.2 OAD Target Overview that:
"The other advantage of having a permanently resident Image-A which only implements the BLE-stack and OAD Target Profile is that the final customer’s Image-B does not have to include the OAD Target Profile at all, saving flash size..."
I have been trying to build an ImageB without the OAD Target, but whenever I do, the resulting hex file does not have the OAD Image Header in it. I have tracked the difference down to calling OADTarget_AddService() or not. If my code calls OADTarget_AddService, I get the appropriate OAD Image Header in my hex file, highlighted in yellow:
:020000040000FA
:10300000AF02FFFF0100009442424242FFFFFFFF78
:10301000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0
...
However, if I simply comment out the call to OADTarget_AddService(), I get the following in my hex file instead:
:020000040000FA
:02300000B71106
:10303000023264023C7BFFFFFFFFFFFFFFFFFFFF49
...
Without the proper OAD Image Header, the BIM cannot checksum and launch the image properly.
What do I need to do to remove the OAD Target from my ImageB in order to save space as advertised? I also don't want my ImageB acting as an OAD Target since I have a minimal ImageA that is OAD only and is not intended to be updated OTA.
Thanks,
-rich