Is flash programming a straightforward hex file transfer?

Hi there.. thanks for coming to the forums. Exciting news! we’re now in the process of moving to our new forum platform that will offer better functionality and is contained within the main Dialog website. All posts and accounts have been migrated. We’re now accepting traffic on the new forum only - please POST any new threads at . We’ll be fixing bugs / optimising the searching and tagging over the coming days.
2 posts / 0 new
Last post
Last seen: 1 year 10 months ago
Joined: 2020-09-07 19:03
Is flash programming a straightforward hex file transfer?


My past experience with MCU's has used proprietary programmers which remove technical understanding, so I apolagize if this sounds simple.

We're planning on using an in-house programming system to lower costs. We plan on having the chips boot from I2C flash memory. If I understand it correctly, we should take our code, compile it using the ARM GCC toolchain for the M0+ architecture to get the binary file and convert to a hex file. We then take that hex file and copy it verbatim to our I2C flash memory. No additional headers, no unused flash, just a straight copy starting from address 0 in the flash. Whatever the GCC spits out is proper machine-readable code?

That's what makes sense to me, but you have much more wisdom and experience in this realm, so I would love to know anything that doesn't sound right about this approach to you.

Last seen: 9 months 2 days ago
Joined: 2018-02-08 11:03
Hi tinychipsarebig,

Hi tinychipsarebig,

Thanks for your question. Please take a look at AN-B-072: DA14531 Booting from OTP and Serial Interfaces and section 9 in order to understand how the device can boot from the I2C interface. You should build the project first, and then use the SmartSnippets Toolbox V5.0.14 for Windows OS to burn the EEPROM.

Please see section 13 EEPROM Programmer.

Booting from I2C is the step 6 of the booting sequence and the chip will boot from specific pins – see table 1 in the AN-B-072.

Thanks, PM_Dialog