DFU from local storage

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

cross mob
JaSi_1632926
Level 4
Level 4
Welcome! 25 replies posted 10 replies posted

Hi,

I have an EMMC memory attached to a PSoC 6 device. To perform a firmware update I will first transfer the image to the EMMC through a custom external channel, and then start the update from the PSoC. One option to do this is to implement the functions in dfu_user.c, but that seems counter-intuitive, since I first have to parse the .cyacd2 file using the cybootloaderutils code, and then funnel it through the DFU API - all on the same MCU.

Is there some shortcut I can take here that better suits my use case? If I can instead use the .hex file a nice side effect is that it's much smaller than the .cyacd2 file.

Thanks, Jacob

0 Likes
1 Solution
JaSi_1632926
Level 4
Level 4
Welcome! 25 replies posted 10 replies posted

I solved it by looking at CE220959 and using cybootloaderutils (part of PSoC Creator) to get a bootloader capable of upgrading from a .cyacd2 file stored in a local memory. Next up is to optimize the process by using a more optimized format (less verbose) than the .cyacd2.

View solution in original post

0 Likes
5 Replies
MarkA_91
Employee
Employee
25 replies posted 10 replies posted 5 replies posted

Hi Jacob,

I'm not clear on where your problem is. Is it in the DFU code? If so, we have a code example, CE220959, PSoC 6 BLE Bootloader with External Memory, that may help. It's in the process of being updated for the latest version of the PDL (3.1.0), but the current version can be found here.

If the problem is in the host code, both of our host programs use the .cyacd2 file as input. If needed, we can provide source code for these programs.

Also, which IDE are you using - PSoC Creator or ModusToolbox?

Regards,

Mark

0 Likes

Hi,

I don't have a specific error per se - I'm just not sure the best way to achieve what I want. Your linked example should help - getting it updated to use PDL 3.1.0 would be awesome! Any ETA on that?

I'm using PSoC Creator.

Thanks, Jacob

0 Likes

Hi Jacob, that example is actually in the final stages of signoff before public release. I got permission to give you an advance copy; please send your e-mail address to me at mark.ainsworth@cypress.com.

Regards,

Mark

0 Likes
MarkA_91
Employee
Employee
25 replies posted 10 replies posted 5 replies posted

FYI the code example referred to previously is now released and available on www.cypress.com, at CE220959.

0 Likes
JaSi_1632926
Level 4
Level 4
Welcome! 25 replies posted 10 replies posted

I solved it by looking at CE220959 and using cybootloaderutils (part of PSoC Creator) to get a bootloader capable of upgrading from a .cyacd2 file stored in a local memory. Next up is to optimize the process by using a more optimized format (less verbose) than the .cyacd2.

0 Likes