コンパイルされた ELF ファイルでいくつかの変数を変更する必要があります。これを明確に説明するために、単純な C 構造体を例として使用します。
単一のソース ファイルがコンパイルされ、MyFile.c から MyFile.elf にリンク (@ 0x1000) されます。
typedef struct {
uint32_t SerialNumber; /* Increments for every time it's programmed */
uint32_t PartNumber; /* Always the same */
char ProdDateTime[32]; /* "YYYY-MM-DD HH:MM:SS" date/time when programmed */
uint32_t CalcCrc32; /* Checksum of the above data */
} MyData_T;
const MyData_T MyData = {
/* SerialNumber */ 0x11111111,
/* PartNumber */ 0x12345678,
/* ProdDateTime[32] */ "2013-11-10 12:49:30",
/* CalcCrc32 */ 0xC0CAC01A
};
今、私は(コンパイルせずに)「コンソールツール」が必要です:
- 新しいシリアル番号を 0x1000 に書き込みます
- 新しい文字列を 0x1008 に書き込みます
- 0x1028 でチェックサムを更新します。
最初の (1) タスクを実行するツール (objcopy など?) を見つけることができませんでした。これはかなり一般的なシナリオであると思われますか? 今のところ独自のツールを作成しましたが、オープン ソース ツールまたは類似のツールを使用したいと考えています。
提案/アイデア/コメント/批判は大歓迎です:D ありがとうございます!!