This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Mergehex equivalent in SES

I'm looking into migrating my project from gcc/make to Segger Embedded Studio, because I have some tricky debugging to do and SES should be a bit easier to use than GDB for it.

My current build system, in make, will produce a load of hex files (app, bootloader, SD, bootloader settings), then use mergehex to put them all together into one monolithic hex file, then flash that:

flash-all: all
    @printf "Generating bootloader settings hex.\n"
    $(NRFUTIL) settings generate --family $(FAMILY) --application $(HEX) --application-version 1 --bootloader-version 1 --bl-settings-version 2 --app-boot-validation VALIDATE_GENERATED_CRC --sd-boot-validation VALIDATE_GENERATED_CRC --softdevice $(SOFTDEVICE) --no-backup $(OUTPUT_DIRECTORY)/bls.hex
    @printf "Merging bootloader in.\n"
    $(MERGEHEX) -m $(BOOTLOADER) $(OUTPUT_DIRECTORY)/bls.hex -o $(OUTPUT_DIRECTORY)/bl_bls.hex
    @printf "Merging soft device in.\n"
    $(MERGEHEX) -m $(SOFTDEVICE) $(OUTPUT_DIRECTORY)/bl_bls.hex -o $(OUTPUT_DIRECTORY)/sd_bl_bls.hex
    @printf "Merging application in.\n"
    $(MERGEHEX) -m $(OUTPUT_DIRECTORY)/sd_bl_bls.hex $(HEX) -o $(OUTPUT_DIRECTORY)/sd_app_bl_bls.hex
    @printf "Erasing flash. Note that this will destroy any bonds on the device. Remember to also destroy them on the central (phone).\n"
    $(NRFPROJ) --eraseall
    @printf "\nProgramming merged hex.\n"
    $(NRFPROJ) --program $(OUTPUT_DIRECTORY)/sd_app_bl_bls.hex
    @printf "\nClearing the reset reason register.\n"
    $(NRFPROJ) --memwr 0x40000400 --val 0xFFFFFFFF
    @printf "\nResetting.\n"
    $(NRFPROJ) --reset

It will also clear the reset reason register.

How do I do all this with SES? Can it do all these things directly, or do I still have to call out to nrfproj and mergehex? How do I do that?

Related