objcopy を使用して、リソース ファイル (zip ファイル) をフラッシュ メモリ (ARM に埋め込まれたもの) に埋め込むために必要なスクリプトを削除しています。
私は次のようにobjcopyを使用しています:
arm-none-eabi-objcopy.exe -I binary -O elf32-littlearm -B arm --rename-section .data=.rodata input.zip input.zip.o
arm-none-eabi-nm.exe -S -t d input.zip.o
00006301 R _binary_input_zip_end
00006301 A _binary_input_zip_size
00000000 R _binary_input_zip_start
私が知る必要があるのは、_end および _size シンボルの幅です。_start は、バイト配列のようにアクセスできるアドレスであると推測できます: extern uint8_t _binary_input_zip_start[];
. そして、_end と _size は「ネイティブ」の int サイズであると想定しています。これらを uint32_t として解釈できると安全に想定できると思います。
しかし、私は確信が持てません。objcopy のドキュメントに関連する「サイズ」が見つかりません: https://sourceware.org/binutils/docs/binutils/objcopy.html