Questions regarding bootloadable component in the project

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

cross mob
DhDa_2432241
Level 5
Level 5
5 likes given First like received First like given

Hello,
While configuring the bootloadable component in PSoC creator, it should be pointed to the bootloader project's hex file. Does this mean that the bootloader is updated every time the bootloadable project is being flashed using the bootloader? 

   

Thanks
Dheeraj

0 Likes
1 Solution
Anonymous
Not applicable

Hi Dheeraj,

   
    

A combination application consists of bootloader, bootloadable and communication component. I am assuming that this is needed if we require 2 applications supporting 2 different bootloaders and the launcher can be used to switch between them. Is that correct?

   
   

Yes, that is correct. The requirement for all of this duplicated functionality is what makes that arrangement difficult or impossible when the BLE stack is used, and it's why Cypress also implemented the Fixed Stack and Upgradable Stack architecture options.

   
    

Dual application bootloader consists of bootloader with communication component along with 2 combination applications. I am assuming that this bootloader has the capability to switch between the applications as well as update both the applications if they are corrupted. So does this support 3 bootloaders? (2 bootloaders in 2 combination applications as well as the main bootloader)

   
   

That is correct--3 bootloaders total, although this would still not be possible on a 128k module if the applications require BLE functionality.

   

If you are using a 128k module and you don't need to support over-the-air firmware updates (which means BLE + bootloader in the same project plus lots of spare flash space), then the single-application bootloader is definitely the least complicated and best suited choice for that flash size. However, this still won't let you update the bootloader itself except by a low-level SWD re-flash.

View solution in original post

0 Likes
8 Replies
Anonymous
Not applicable

The programmer usually saves time by only flashing changes (it is a configureable setting), and thus it is probably only flashing the changes to the overall hex code. But it depends on what your settings are.

0 Likes

I see. What happens when I don't use the MiniProg3 programmer and want to update the code using the bootloader?

   

First I used the MiniProg 3 to put the UART bootloader into my BLE chip. Then I transfer my bootloadable project using the UART interface. Does this update the bootloader too? In this case an external embedded host does the update. 

0 Likes
Anonymous
Not applicable

Hi Dheeraj,

   

It is possible to carry out a bootloader-project update using the UART bootloader interface, but this doesn't happen in the simplest arrangements supporting bootloader updates. Do you know which general architecture your project is following? The options are described in the Bootloadable component datasheet. Refer to the "Use Cases" section on Page 3 for a diagram showing each possible configuration.

   

If you want to be able to update the bootloader itself via the bootload process, then you must choose either the Launcher/Combination, Upgradable Stack, or Dual-Application w/Combination arrangement. If you are using BLE and you want this capability, then the Upgradable Stack architecture is typically the only viable option due to flash memory requirements of the stack itself. There is a set of example projects demonstrating this configuration built into the PSoC Creator IDE.

   

Jeff

0 Likes
lock attach
Attachments are accessible only for community members.

Hello Jeff,
Thanks for this. I went through the use cases. I have a 128KB PRoC BLE and I can't upgrade the stack due to flash limitations which strikes upgradable stack off the list. 

Launcher-combination is unclear to me. Looking at the figure there are 3 parts - launcher, combination 1 and combination 2.

A combination application consists of bootloader, bootloadable and communication component. I am assuming that this is needed if we require 2 applications supporting 2 different bootloaders and the launcher can be used to switch between them. Is that correct?

Dual application bootloader consists of bootloader with communication component along with 2 combination applications. I am assuming that this bootloader has the capability to switch between the applications as well as update both the applications if they are corrupted. So does this support 3 bootloaders? (2 bootloaders in 2 combination applications as well as the main bootloader)

I think 
my configuration is single-application bootloader. I can update my application through the communication channel which is UART. I have attached my project in the attachments.

Thanks
Dheeraj

0 Likes
Anonymous
Not applicable

Hi Dheeraj,

   
    

A combination application consists of bootloader, bootloadable and communication component. I am assuming that this is needed if we require 2 applications supporting 2 different bootloaders and the launcher can be used to switch between them. Is that correct?

   
   

Yes, that is correct. The requirement for all of this duplicated functionality is what makes that arrangement difficult or impossible when the BLE stack is used, and it's why Cypress also implemented the Fixed Stack and Upgradable Stack architecture options.

   
    

Dual application bootloader consists of bootloader with communication component along with 2 combination applications. I am assuming that this bootloader has the capability to switch between the applications as well as update both the applications if they are corrupted. So does this support 3 bootloaders? (2 bootloaders in 2 combination applications as well as the main bootloader)

   
   

That is correct--3 bootloaders total, although this would still not be possible on a 128k module if the applications require BLE functionality.

   

If you are using a 128k module and you don't need to support over-the-air firmware updates (which means BLE + bootloader in the same project plus lots of spare flash space), then the single-application bootloader is definitely the least complicated and best suited choice for that flash size. However, this still won't let you update the bootloader itself except by a low-level SWD re-flash.

0 Likes

Hi Jeff, 
Got it. Yes I am using a 128 KB module and I don't need over the air firmware update functionality for my BLE. However, I need a UART bootloader so that the application can be updated using another embedded host using UART. My application needs BLE functionality. 

In the future if I wish to update my bootloader as well as the application, at this point my bootloader is still UART bootloader(with some modifications) and I don't need the over the air BLE application update method but I need the BLE functionality, can I do this without SWD reflash?

Something like first the existing bootloader gets the latest application(containing a new bootloadable linked to updated bootloader project which has UART component) from the connected embedded host over UART and then updates the application. The application will then update the bootloader. At this point the bootloader and the application are updated. Is this possible or is there a better approach?

Launcher combination gives me the ability to switch between 2 combination applications but I don't need 2 applications cause it's space consuming. 

Also, should my bootloadable component point to the same bootloader project which is first flashed in the CYBLE using SWD? or is it okay if the bootloadable has the same communication component as the bootloader but different application code?

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

Hi Dheeraj,

   

Also, should my bootloadable component point to the same bootloader project which is first flashed in the CYBLE using SWD?

   

Ans: yes.

   

For updating bootloader itself, you need two do SWD programming. There is no other way right now.

   

Thanks & Regards,

   

Anjana

Got it. Thanks. 

0 Likes