- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Solved! Go to Solution.
- Labels:
-
BLE
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Got it. Thanks.