DFU upgradable BLE stack example PSoC 6

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

cross mob
DaCh_1995281
Level 3
Level 3
First solution authored 10 sign-ins 10 questions asked

Is there an example for using implementing an upgradable BLE stack using the newer DFU SDK? I'm trying to upgrade my project based on CE220960 to use PDL 3.1.0 and the newer DFU SDK.

CE216767​ uses DFU and BLE but isn't quite what I'm looking for because I need it to have the upgradable stack.

I am currently using PSoC Creator 4.2 but have plans to eventually migrate to ModusToolbox sometime in the future in case it matters.

Any help would be appreciated.

0 Likes
1 Solution
ShipingW_81
Moderator
Moderator
Moderator
500 replies posted 250 solutions authored 250 replies posted

Cy_PDL_Init() function has been added in SystemInit() in PDL3.1.0. You don't need to care it.

If you have correctly changed the linker files of the apps, App2 verify start address would appear in cy_dfu_metadata.c.

View solution in original post

0 Likes
3 Replies
lock attach
Attachments are accessible only for community members.
ShipingW_81
Moderator
Moderator
Moderator
500 replies posted 250 solutions authored 250 replies posted

Please follow the steps described in attached doc to update to PDL 3.1.0 for CE220960.

0 Likes

Where is the Cy_PDL_Init() function supposed to be added? The document isn't clear on that.

Are there any changes in App0 and also do I assume that anything from bootload_user.c/h should be added to dfu_user.c/h if it is missing?

For example in App0 in dfu_user.c

When the PDL is changed to 3.1.0, cy_dfu_metadata contains

CY_DFU_APP0_VERIFY_START, CY_DFU_APP0_VERIFY_LENGTH, /* The App0 base address and length */

CY_DFU_APP1_VERIFY_START, CY_DFU_APP1_VERIFY_LENGTH, /* The App1 base address and length */

0u                                                             /* The rest does not matter     */

But using 3.0.4, in bootload_user.c, cy_bootload_metadata contains

CY_BOOTLOAD_APP0_VERIFY_START, CY_BOOTLOAD_APP0_VERIFY_LENGTH, /* The App0 base address and length */

CY_BOOTLOAD_APP1_VERIFY_START, CY_BOOTLOAD_APP1_VERIFY_LENGTH, /* The App1 base address and length */

CY_BOOTLOAD_APP2_VERIFY_START, CY_BOOTLOAD_APP2_VERIFY_LENGTH, /* The App2 base address and length */

                                                               /* Initialize vApps with dummy data */

0xFFFFFFFF, 0x00000000,                                        /* vApp3 stores the temporal stack update location */

0xFFFFFFFF, 0x00000000,                                        /* vApp4 stores stack update destination */

0u                                                             /* The rest does not matter     */

And CY_BOOTLOAD_APP2_VERIFY_START isn't defined when I switch to 3.1.0

Thanks

0 Likes
ShipingW_81
Moderator
Moderator
Moderator
500 replies posted 250 solutions authored 250 replies posted

Cy_PDL_Init() function has been added in SystemInit() in PDL3.1.0. You don't need to care it.

If you have correctly changed the linker files of the apps, App2 verify start address would appear in cy_dfu_metadata.c.

0 Likes