После линковки получается ch.elf, потом из него делается ch.bin,
далее моя утилита в конец bin кое что добавляет и получаю
ch.crc.bin. Теперь мне надо прошить модифицированный бинарник а
отладочные символы берутся из исходного ch.elf - в gdb можно
подсунуть отдельный файл с символами. Сейчас делается так: # Custom rules
# Program
encrypt: $(BUILDDIR)/$(PROJECT).bin
@echo "encrypt binary file"
./tools/fwencryption.exe -i $(BUILDDIR)/$(PROJECT).bin -o $(BUILDDIR)/$(PROJECT).crc.bin
Jflash.exe -openprj ./stm32g031f8prj.jflash -min -open $(BUILDDIR)/$(PROJECT).crc.bin,08005000 -connect -erasesectors -programverify -exit
#
# Custom rules
Такое решение работает но дальше надо уметь шить через GDB Server запущенный на удаленной машине. То есть из $(BUILDDIR)/$(PROJECT).crc.bin создать
$(BUILDDIR)/$(PROJECT).crc.elf как то так:
# $(CP) --input-target=binary --output-target=elf32-little $(BUILDDIR)/$(PROJECT).crc.bin $(BUILDDIR)/$(PROJECT).crc.elf
# $(CP) --input-target=elf32-little --output-target=elf32-little --change-section-address .data=0x08005000 --set-section-flags .data=CONTENTS,ALLOC,LOAD,READONLY,CODE $(BUILDDIR)/$(PROJECT).crc.elf
# $(CP) --input-target=elf32-little --output-target=elf32-little --rename-section .data=.text $(BUILDDIR)/$(PROJECT).crc.elf
CP = objcopy
Закомментировано потому что файл создается но ни Jflash ни Gdb server в нем ничего не видят.