У м/с EEPROM нет сегментов. У них запись определяется размером буфера. В пределах размера буфера адрес инкрементируется автоматически. Поэтому при записи вне пределов размера буфера происходит нарушение адресации. Пример. У AT24C512 размер буфера 128 байт. Допустим вам нужно записать 5 байт с адреса 0x017E. Если вы будете писать с адреса 0x017E (десятичный - 382) сразу все 5 байт, то они конечно же уместятся в 128-и байтный буфер, но будут записаны по следующим адресам. 0x017E 0x017F 0x0100 <-здесь произошло переполнение счетчика буфера 0x0101 0x0102 потому, что за границей буфера произойдет переполнение счетчика буфера и байты будут попадать в его начало. Чтобы этого не происходило, нужно делать выравнивание на границу размера буфера. Т.е. сначала записать 2 байта, начиная с адреса 0x017E, затем адресовав с адреса 0x0180, записать еще три байта.
|