BLE OTA Bootloader functions defined in bootloader for loadable?

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

For the fixed stack OTA bootloader it seems like if I don't use a BLE API function in the 'loader' project, it gets removed and is not available in the 'loadable' project, is this correct? We're using a 128k device and if I set 'remove unused sections = false' I get a ROM overflow condition.  My workaround is to just put the BLE functions I need in a block that won't execute in the 'loader' project, then they will be available in the 'loadable'.  Is this the right approach or am I missing something here?

Thanks,

Eric

0 Likes
1 Solution
AnjanaM_61
Moderator
Moderator
Moderator
10 questions asked 5 comments on KBA First comment on KBA

Hi Eric,

Yes, In Fixed Stack OTA, BLE is component is available in Bootloader project. However we can link the necessary BLE APIs for our application by using the custom linker scripts.

Please go through our appnote: AN97060 - PSoC® 4 BLE and PRoC™ BLE - Over-The-Air (OTA) Device Firmware Upgrade (DFU) Guide | Cypre...

Go through the section 5.3 for adding Fixed stack OTA to an existing application project.

PSoC 4 BLE FAQs: https://community.cypress.com/docs/DOC-13821

Thanks & Regards,
Anjana

View solution in original post

3 Replies
Anonymous
Not applicable

Conceivably, if you have a large enough application project, then building the entire BLE API library could use up too much space. What you are describing for your approach sounds right to me; Since the bootloadable will be fixed stack, that means you can't upgrade/change the BLE stack once you upload it to the unit. But I haven't worked much with bootloading specifically, so I wouldn't exert much confidence in my answers

Epratt

0 Likes
AnjanaM_61
Moderator
Moderator
Moderator
10 questions asked 5 comments on KBA First comment on KBA

Hi Eric,

Yes, In Fixed Stack OTA, BLE is component is available in Bootloader project. However we can link the necessary BLE APIs for our application by using the custom linker scripts.

Please go through our appnote: AN97060 - PSoC® 4 BLE and PRoC™ BLE - Over-The-Air (OTA) Device Firmware Upgrade (DFU) Guide | Cypre...

Go through the section 5.3 for adding Fixed stack OTA to an existing application project.

PSoC 4 BLE FAQs: https://community.cypress.com/docs/DOC-13821

Thanks & Regards,
Anjana

Anonymous
Not applicable

OK I see now, their was no KEEP instruction in the linker file for the API function I was trying to call.  So if the function is used directly in the bootloader project the linker will link it, if not, there must be a KEEP instruction for it. Got it, thanks.

0 Likes