ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
1402693 Топик полностью
reZident (12.02.2024 11:07, просмотров: 122) ответил vesago на Ну я гипотетически :) Лучше 2 байта. Для понимания сути. Мне показалось, что если пишем количество байт, меньше чем страница, остаток превращается в FF. Т.е. затирается. Или вру? Не могу сейчас натурально проверить.
Нет, если нет превышения границы буфера, то ничего не затирается. Т.е. писать можно столько байт, сколько остается от текущего адреса, до адреса, который кратен размеру буфера. Потому, что при последовательной записи в буфер младшие биты автоматически инкрементируются, но только в пределах размера буфера. 

Допустим буфер 8 байт, а текущий адрес 123=0b01111011=0x7B. Тогда начало кратное размеру буфера будет (0x7B & 0xFFF8) =0x78 и последний адрес для записи 0x7F. Тогда и при записи последовательности из 8 байт автоинкрементое изменение адреса будет выглядеть так: 0x7B -> 0x7C ->0x7D -> 0x7E -> 0x7F -> 0x78 -> 0x79 -> 0x7A. Как видно последние три байта попадут в начало страницы и затрут предыдущую информацию. Поэтому, начиная с адреса 123, записать последовательно можно только 5 байт.