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.
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.
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.
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:
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.
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.
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?
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.
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.
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...
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?