Мне дали задание написать для МК (микроконтроллера) циклический буфер для log-сообщений переменной длины (туда входят как двоичная так и текстовая информация), которые будут записываться последовательно во внешнюю память EEPROM или в худшем случае FLASH-память, и при этом после включения питания МК должен восстановить указатели на сообщения, но ту же область памяти можно использовать как для промежуточного хранения прошивки, а после перепрошивки МК должен правильно распознать, что там лежит мусор и переинициализировать указатели. Как это лучше сделать? Есть варианты: 1. использовать ячейки постоянной длины типа массива ссобщений фиксированной длины, невыгодно, так как длина сообщений может варьироваться в больших пределах, да и неэкономно на флешке маленького объема. 2. использование маркера тоже не понятно, как различить где начало и конец, а где наехало новое сообщение. Вообщем то, нужно чтоб на одну и ту же область памяти не записывалось много раз, а равномерно распределялось по всей области памяти. Нужен совет, или ссылочку на какое-нибудь готовое решение. Спасибо.
|