[an error occurred while processing this directive]
|
Это во-первых.
Конечно, никто не спорит, хотелось бы иметь возможность побайтово стирать, это значительно проще с точки зрения программера, но... за неимением гербовой - пишем на простой.
Во-вторых - менять данные надо не так часто, можно один раз напрячься и сделать.
В третьих - Если это какие-то конфикурационные настройки, то организовываю их в виде структуры, сразу после включения определяю, в каком из сегментов они лежат и возвращаю указатель на эту структуру. Доступ на чтение через указатель. В процессе записи смотрю, можно ли записать поверх - если можно, записываю. если нет - копирую в другой сегмент все, кроме меняемых данных, дописываю что нужно, стираю старую версию данных и возвращаю указатель на новое их место. Живет.
В четвертых, и этого никто не упомянул - если данных много, никто не мешает использовать не эти два сегмента по 128, а более другие сегменты, которые по 512 байт.
В пятых. Снова о вопросе "ставить внешний кристалл или извращаться с внутренней памятью". Контроллер заточен на микропотребление. И ставить еще один корпус порой весьма накладно по микроамперам. Конечно, можно и питание этой памяти брать с ноги контроллера и включать ее когда надо (так и делал в одном приборе на однократном 430Р337 с питанием от 4-20ма, там за каждые 100мка битва шла), но некрасиво это как-то. Значит надо копию в ОЗУ читать, чтоб ногами пореже шевелить.
В целом где-то так. "Щит и латы, посох и заплаты, меру окончательной расплаты - каждый выбирает по себе" (с)Никитины
E-mail: info@telesys.ru