PSOC Creator to generate intel hex and binary format

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

cross mob
Anonymous
Not applicable

I want the release output in intel hex and binary format. Please tell me what all changes need to be done in build settings to get the binary and intel hex output format.

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

Intel Hex fie is generated when build. Binary is not required. What do you need these file formats for?

   

 

   

Bob

0 Likes

Hi Bob,

 

For HEX file, where is it? Which folder is it located?

Thanks,

 

0 Likes
Anonymous
Not applicable

Thanks for your reply Bob. I am working on custom Psoc bootloader so as per my project I also need a binary file. Is there any way to generate binary output file by changing in build setting. I also tried hex2bin utility but it turncate some of the data during conversion. 

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

Easiest for you would be to use the Bootloader component and make it a custom interface.

   

Second easiest is to copy the Bootloader sources and modify them at your need.

   

Since Bootloader and Bootloadable component have to play together, this dependency is maintained this way.

   

 

   

Bob

0 Likes
Anonymous
Not applicable

Thanks Bob. I made my custom bootloader without using the existing bootloader component but I am unable to jump to the application from bootloader.Below is my function. I am using the below code for launch application: 

   

Bootloader_SET_RUN_TYPE(Bootloader_SCHEDULE_BTLDB);

   

CySoftwareReset();

0 Likes
Anonymous
Not applicable

What if I have no host in my system?

   

The image will be transferred to an external (SPI) RAM (using the main application), and the bootloader will have to read it during the soft reset.

0 Likes

You will have to write your own bootloader. You may start with the custom bootloader interface and fill the required functions with your code. Seems to be a bit overhead, but will work.

   

 

   

Bob

0 Likes
Anonymous
Not applicable

Thanks.

   

If I understand correctly the process, I need to save the HEX file in the RAM, and then transfer it to the Bootloader component using the 5 custom functions (start, stop, reset, read, write).

   

The problem is that my RAM's size is 128KB, while the HEX file is more than 280KB (I'm using a 4200M device with 128KB flash), so I need to convert the HEX file to BIN before transfering it to the RAM, while the Bootloader component expects to receive a HEX...

   

Does the above make sense?

   

How can this be solved?

   

Thanks.

0 Likes

Changing the format from ASCII to hexadecimal would alone save 50%. There are a lot of spaces and other redundant information in the Intel Hex file. I know that the resulting format is a non-standard, but in this case it's the efficiency that rules. Converters are not too difficult to program.

   

 

   

Bob

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

Bootloader_SET_RUN_TYPE() will need a memory location for setting this flag. Make sure that this location does not get reset during system boot.

   

 

   

Bob

0 Likes
ronoc_298001
Level 1
Level 1
10 sign-ins 5 sign-ins Welcome!

It is possible to create a bootloader component with custom code. I've done this but it requires complete understanding of the Cypress bootloader. I can tell you it will cost a lot of time and effort too, to create your own.

I've also written several PC tools, 1) for parsing HEX file, encrypting and uploading it to a server and 2) for customers to upload new firmware from the server into their devices (see attachment).

   

For most applications CY's bootloader is well suited, unless you want smaller flash footprint, custom encryption or similar custom requirements...

   

 

   

Regards,

   

Rolf

   

0 Likes

Hi

   

i write in this post so maybe someone can help me to understand my issue; i want to send the file cyacd with lin interface, as you now all the node see the raffic so i put the file cyacd inside the message of LIN protocol and extract inside the BLE node , i modify the read function so the Bootloader Cypress receive data from LIN but i think that the problem is the cyacd file; the official HOSt uart bootloader open this file and send a bin version of it so the same routine of Bootloader inside the node are able to understand and programming flash.

   

If i use a simple uart  link with Cypress HOST it work, maybe i have to convert the cycacd to bin file for bootloader. What do you fthink about this? 

0 Likes