На днях писал код, задача которого была в том чтобы некую большую структуру выплевывать в DMA.
Было удивительно когда в памяти структуры стали появляться пустые места(байты). Естественно с такими пропусками в DMA слать структуру было нельзя(без гемора разбора с обратной стороны). стал разбираться и понял что МК в память записывает ориентировочно по 4 байта. и если была переменная которая 3 байта, то если следующая переменная имеет 4 байта, то к 3 байт прибавляет один лишний и только потом записывают 4 байта. МК то 32 битный . В общем навел порядок в структуре и все встало на свои места.
Вот такой нюанс. Может конечно опытные это знают, но для меня было это в новинку.