Generating Intel Hex Files with a given Length using srec_cat

The ‘standard’ binary files for many tools are S19, binary or Intel Hex files. Especially for S19 and Intel Hex it can be useful to control the amount of data per line. By default, the GNU objcopy creates files with a line length of 44 characters:

default objcopy binary file line length

default objcopy binary file line length

But it is possible to have Intel Hex files with an custom line length using the SRecord utility, and this is what this article is about.

First, use the GNU ‘objcopy‘ to generate a Intel Hex file (or use the MCUXpresso IDE for this). The following line generates the Intel Hex file from an ELF/Dwarf (.axf) file:

arm-none-eabi-objcopy -v -O ihex app.axf app.hex

This generates a ‘default’ Intel Hex file with a line length of 44 characters:

default objcopy binary file line length

default objcopy binary file line length

Then use the srec_cat tool from the SRecord package with the -line-length option:

srec_cat app.hex -intel -output new.hex -Intel -line-length=64

With this, I have a Intel Hex file with a different line length, in this case 64 characters:

Intel Hex File with longer lines

Intel Hex File with longer lines

That’s it 🙂

The SRecord tools are very versatile to convert and manipulate binary files, have a look at the links below.

Happy Inteling 🙂

Links

4 thoughts on “Generating Intel Hex Files with a given Length using srec_cat

  1. I did this already – a big benefit for our products is reprogram speed. My code programs each line of HEX as it comes over RS232; reformatting the file to more data on each line reduces communications overhead and speeded up our programming by about a third!

    Like

What do you think?

This site uses Akismet to reduce spam. Learn how your comment data is processed.