Creating our own Bootloader or to customize the existing component

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

cross mob
Anonymous
Not applicable

Hello

   

We are developing one application which requires to use bootloader component given by Cypress.

   

But for some reason we are facing Memory issues so we decided to create our own bootloader.

   

Can you please provide some inputs for creating our own bootloader using Cypress Creator IDE or to do some changes in existing bootloader  component.

0 Likes
14 Replies
ETRO_SSN583
Level 9
Level 9
250 likes received 100 sign-ins 5 likes given

Some ref material -

   

 

   

    

   

          

   

http://www.cypress.com/?rID=57561     AN73503 - USB HID Bootloader for PSoC® 3 and PSoC 5LP

   

http://www.cypress.com/?rID=50230     AN68272 - PSoC® 3, PSoC 4 and PSoC 5LP UART Bootloader

   

http://www.cypress.com/?rID=41002     AN60317 - PSoC® 3 and PSoC 5LP I2C Bootloader

   

http://www.cypress.com/?rID=78703     AN84401 - PSoC® 3 and PSoC 5LP SPI Bootloader

   

 

   

Regards, Dana.

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

"Memory issues due to some reason" makes me shiver. Wouldn't it be safer to evolve the reason for issues to avoid the cause (and not the symptom)

   

 

   

Bob

0 Likes
Anonymous
Not applicable

Bob update process that they have written is very memory consuming which we dont want to use.

   

So we decided to go for creating our own bootloader component. is it possible to do it using cypress creator ide?

   

If yes then can you please provide some inputs to me? from where to start?

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

The links Dana provided are a relatively complete collection of the matter. To get much more information use the "Keyword Search" at top of this page and select the infos you're interested in.

   

Memory consuming Bootloader? To implement the very basic bootloader functions some flash will be needed, no matter, but I question whether you will save a reasonable amount of rom-bytes by writing the code yourself.

   

Concerning ram: when the bootloader passes contol to the bootloaded all ram in use will be freed, so that will not be an issue.

   

 

   

Bob

0 Likes
HeLi_263931
Level 8
Level 8
100 solutions authored 50 solutions authored 25 solutions authored

A Bootloader is program as any other one. So it should be not to complicated to wrote one by yourself. I would start by looking at the bootloader component data sheet.

   

Basically you just need:

   
        
  • a toogle to decide when to start the application and when to bootload (e.g. a pin)
  •     
  • a communication system (for downloading the new application)
  •     
  • a flash write logic to store the new application in memory
  •     
  • and a PC application for sending the new application to the PSoC
  •    
   

The Bootloadable application then gets a reference to your bootloader, so it knows about its size (for memory placement).

   

The bootloader component datasheets also has a description of the communication protocol, so you might reuse that.

   

Btw: the PSoC3 bootloader is just 2k in size, and needs 4 bytes of sRAM. Are you sure you will be significantly better than that? Its the communication part which needs more space (the datasheets says for I2C one needs additional 4k flash and 1.5k RAM), and you won't probably save much there...

0 Likes
Anonymous
Not applicable

Thanks hli...

   

We have tdecide to go for creating our own simple bootloader for psoc 3 device.

   

Can you please give me some inputs how to design using creator ide.

   

 

   

-Vijay

0 Likes
HeLi_263931
Level 8
Level 8
100 solutions authored 50 solutions authored 25 solutions authored

Read the bootloader component data sheet. It explains how such a component works. I think you also should read the TRM, to learn about writing to flash memory. Anything else is just 'normal' programming, so there is nothing special to point you to.

0 Likes
HeLi_263931
Level 8
Level 8
100 solutions authored 50 solutions authored 25 solutions authored

But I think you still should check wheter its possible to go with the existing bootloader. You still didn't state what your actual problem is...

0 Likes
Anonymous
Not applicable

actually we have a specific requirement about how update the application software  in the field which is not available in the current bootloader. we can not use updating facility given by current bootloader.

   

is it possible to develop simple bootloader component from scratch using creator ide?

   

if yes can you please give us some inputs of how to start?

0 Likes
HeLi_263931
Level 8
Level 8
100 solutions authored 50 solutions authored 25 solutions authored

Oh, you didn't mention such specific requirements before. You said you had 'memory issues'... Maybe you can ask your Cypress representative whether these requirements could be implement in the existing component in one of the next updates?

   

Yes, you can implement a bootloader in PSoC Creator. I guess its not that complicated. And I already gave you all the pointers you should need (twice already...).

   

 

   

hli

0 Likes
Anonymous
Not applicable

Hello Hli,

   

I started referring TRM document.

   

but i am not getting how to access SFR's when creating library project for bootloader component.

   

As I am new to PSoC devices i am not getting things clearly.

   

Can you please guide me into this?

   

is there any sample source code with you which is creating compoent using SFR's?

   

 

   

-Vijay

0 Likes
HeLi_263931
Level 8
Level 8
100 solutions authored 50 solutions authored 25 solutions authored

SFRs? Do you mean 'special function registers'? What do you want to do with them? (I guess you should read the PSoC3 TRM, and the registers TRM for more info on that).

   

There is no need, I think, to create a new component or a library for the bootloader. Just develop it as a normal application - its just one that reads stuff over UART / USB / whatever and stores it into flash memory and is able to run this code.

   

In your bootloadable application you then reference the hex file created for your bootloader app, so your real app can be put into the proper memory location by the linker.

0 Likes
saka_284526
Level 1
Level 1
First like received

HI

   

I am trying to create CAN bootloder can u please  help me.

0 Likes
HeLi_263931
Level 8
Level 8
100 solutions authored 50 solutions authored 25 solutions authored

Please don't hijack existing threads with different topics with your new question. Please open a new topic if you have a new questions. That way you will get better answers, since it gets more visbility.

   

 

   

Thanks!

   

(and btw. - I answered to your other question)

0 Likes