Уговорил, ща попробую в парсере ответов на команды извлекать размер
блока, а буфер сдвинется на 13, 14 или 15 байт на последнем блоке -
это же легко учесть. А то и правда, мазохизьм. :) UPD: Работает. И буфер один, и в нем шапка переменной длины и не для записи. Чо тупил? - а фиг ево знает. Старею. :)
if(block_length >=100){shift = 15;}
else if(block_length >=10 && block_length <100){shift = 14;}
else if(block_length <10){shift = 13;}
for(uint16_t i=shift; i<(block_length + shift); i=i+4)
{
flash_write((uint32_t) Address,*(uint32_t *) &rx_buffer[i]);
Address = Address + 0x04;
n++;
}