You are here

PSOC Creator to generate intel hex and binary format | Cypress Semiconductor

PSOC Creator to generate intel hex and binary format

Summary: 10 Replies, Latest post by Bob Marlowe on 20 Oct 2016 06:10 AM PDT
Verified Answers: 0
Last post
Log in to post new comments.
Mohit KUMAR's picture
User
5 posts

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.

user_1377889's picture
User
10125 posts

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

 

Bob

Mohit KUMAR's picture
User
5 posts

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. 

user_1377889's picture
User
10125 posts

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

Mohit KUMAR's picture
User
5 posts

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();

michael_1534646's picture
User
33 posts

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.

user_1377889's picture
User
10125 posts

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

michael_1534646's picture
User
33 posts

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.

user_1377889's picture
User
10125 posts

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

user_1377889's picture
User
10125 posts

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

RolfNoot's picture
User
9 posts

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

Log in to post new comments.