STM32F103のフラッシュにロギングしたデータを保存するプログラムを書いている。
今日嵌ったのが構造体のアライメント、
1Word = 16bitが最低単位のつもりで
struct _DATA{
u32 a;
u16 b,c,d;
};
という構造体を宣言してサイズが10Byteのつもりで
配列を取っていたらFlash領域をはみ出してエラー、
しばらく悩んで構造体のサイズを確認してみたら16Byteになっている。
そうか、32bitCPUのコンパイラはそうなんだ。
と納得。
仕方がないから構造体を使わずにデータを詰めていくことにする。
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment