PRoC BLE Bootloader via UART

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

cross mob
Anonymous
Not applicable

Hi everyone,

   

I'm working with the PRoC BLE chip called CYBLE-022001-00 and I'm using TI's MSP430 as a host controller which communicates over UART with the CYBLE chip.

   

Now I would like to update the CYBLE's Firmware with the Bootloader component.

   

I put up a very simple new Project for the CYBLE module, which only consists of the Bootloader component and a UART Component.

   

So now, as I understand it, at strart-up the bootloader waits for a defined time for a certain command. If it receives this command, bootloading begins. If not, normal application will start.

   

My questions are:

   

- what is the exact command, that it waits for?

   

- what exactly is the syntax, that I need to use during bootloading? How exactly do I transfer the data?

   

- Is there any application note on how to program the host-side of bootloading? All I can find are examples where you have to use host application from PSoC Creator, but I need to know how this works in detail.

   

 

   

Thanks a lot in advance and best regards,

   

Gregor

0 Likes
5 Replies
Anonymous
Not applicable

Refer the two application note:

   

 

   

http://www.cypress.com/documentation/application-notes/an86526-psoc-4-i2c-bootloader

   

http://www.cypress.com/documentation/application-notes/an68272-psoc-3-psoc-4-and-psoc-5lp-uart-bootl...

   

 

   

In the first application note , we gave the information on how to build I2C bootloader host. The syntax and everything would be same when using UART also.

   

 

   

please tyr that.

   

 

   

Regards,
Vikas

0 Likes
Anonymous
Not applicable

Hi Vikas,

   

thanks a lot for the answer. I was able to run a small example.

   

However, I encountered another problem:

   

I'm using the PRoC 4 Bluetooth Module called CYBLE-022001-00. So of course I'm also using the Bluetooth functionality.

   

I saw now, that the Module's memory seems to be too small to hold the "Bluetooth Component" as well as the "Bootloadable-Component" at the same time. Errors occurs during compilation:

   

Build error: .\CortexM0\ARM_GCC_493\Debug\Design01.elf section `i.lec_hci_handle_le_default_command' will not fit in region `rom'

   

Build error: section .cyloadablemeta loaded at [0001ffc0,0001ffff] overlaps section i.hci_le_set_supported_commands loaded at [0001ff88,0001ffef]

   

Build error: section i.lec_hci_handle_add_to_white_list_command loaded at [0001fff0,0001fff7] overlaps section .cyloadablemeta loaded at [0001ffc0,0001ffff]

   

Build error: region `rom' overflowed by 0 bytes

   

Do you know if this can be true? It makes no sense to me, since if this is true, I can't realize a bootloadable project on the above mentioned module....

   

 

   

Thanks again,

   

Gregor

0 Likes
Anonymous
Not applicable

Hello Gregor:

   

I am getting the same ROM Overflow error too.

   

Have you determined what causes it yet?

   

I will let you know if I figure it out.

   

Thanks,

   

Tim

0 Likes
Anonymous
Not applicable

Hello Tim,

   

unfortunately, i still don't have a solution for this (I've been working on other things lately).

   

I would imagine that the Bluetooth Component uses quite some space in the flash, so that for this module (with very limited memory) it's not possible to have the Bluetooth Component and to have it bootloadable.

   

I hope that this is not the case :-). Maybe it's also possible to limit the space for Bluetooth by getting rid of some stuff that is not needed in a certain application. But i don't know how to modify what is being initialized as soon as you include the bluetooth component.

   

I would still be very much interested if you find a solution.

   

 

   

Thanks,

   

Gregor

0 Likes
Anonymous
Not applicable

Hello Gregor:

   

Our issue with the Bootloadable Component causing a ROM exceeded error was due to erroneously giving the Bootloadable HEX and ELF files instead of the Bootloader HEX and ELF files in the "Configure Bootloadable" Dependencies tab settings.

   

Is it possible your issue is due to configuring the Bootloadable instead of the Bootloader files as we did?

   

Have a nice week,

   

Tim

0 Likes