title: Alignment of C structure in Internal FLASH memory
body: <p>I have a configuration structure I would like to save on the internal flash of ARM cortex M3.
  According to the specifications, the data save in the internal flash, must be aligned to 32bit. 
  Because I have lot's of boolean, and chars in my structure,I don't want to use 32bits to store 8 bits... I decided to pack the structure using the <code>__packed</code> preprocessor pragma, Then When I save it as a whole structure, I just have to make sure that the structure size is divisible by 4 (4 bytes = 32bits), I do it by adding padding bytes if needed.
  Currently, during development I alter the structure a lot, and to make it aligned with the 32 bits, I need to change the padding bytes all the time. 
  Currently, the structure look slike this</p>
  
  <pre><code>typedef __packed struct
  {
  uint8_t status;
  uint16_t delay;
  uint32_t blabla;
  uint8_t foo[5];
  uint8_t padding[...] // this has to be changed every time I alter the structure.
  } CONFIG;
  </code></pre>
  
  <p>Is there a better way to achieve what I'm doing ?
  I'm quite new in Embedded programming, and I want to make sure that I'm not doing mistakes.</p>
  
  <p>Edit: Please note. The data is persisted in the end of the internal-flash, so omitting the padding will not work...</p>