Cで書かれ、GCCコンパイラでコンパイルされたATmegaのコードがあります。
一部のデータは EEPROM に保存する必要があるため、次の宣言を追加します。
EEPROMを読んだ後、データが奇妙な方法で配置されていることがわかりました。いくつかの調査の後、.map ファイル (ツール チェーンによって生成された多くのファイルの 1 つ) で次のテキストを見つけました。
ご覧のとおり、コンパイラはデータを逆順に並べます。
もちろん、宣言を逆にしてさらにコーディングを楽しむこともできますが、これは予期しないことなので、コンパイラーがなぜそうなったのか理解できないまで、他の予期しない動作に直面することを恐れています.
何かご意見は?