Du kannst dir theoretisch mittels objcopy (siehe google) den Flash
Inhalt in ein *.bin schaufeln. Darüber lässt du dann ein Programm
laufen, was die CRC berechnet. Das zurückbauen ins ELF File erfordert
allerdings meist etwas Übung und Kenntnisse der Toolchain.
Eine Möglichkeit wäre hinter der .text section im Linkerscript eine CRC
section
anzulegen und darin dann die CRC neu einzulinken.
Eine andere Möglichkeit ist es, sich eine Variable im Code anzulegen:
bspw: const uint32_t __my_crc_value; und diese dann mittels
toolchain-Tools umzubauen. Dazu wird die LMA (Load memory address), also
die stelle an der der initwert der variablen im flash steht, ausfindig
gemacht und das elf file an dieser Position umgefrickelt. Problem daran
ist, zu verhindern, dass der CRC Wert der Variable im Flash mit in die
CRC-Berechnung einfließt
Das ist beides nicht wirklich schön. Aber mir fällt spontan nichts
anderes ein. Alles in allem kein Hexenwerk. Wenn man allerdings mit den
Tiefen der toolchain weniger zu tun hat, ist das schon eine kleine Hürde
sich das notwendige Wissen zusammenzusuchen. Ich habe dir leider kein
Beispiel.
Bin gespannt, ob jemand eine gute Idee hat, die nicht so verbastelt ist
:)