Ситуация такая: моя программа хранит данные в Scratchpad Flash. Задачка не бей лежачего: эти данные изменяются по команде от управляющего устройства по SPI, при пуске производится перегрузка в массив в ОЗУ. Чтобы в флеш были хоть какие-то членораздельные данные при старте проверяю первые четыре байта и если они 0xFF, то считаю, что массив не инициализирован и я записываю туда некие данные по умолчанию.
Так вот: у меня 5 комплектов плат, на 4-х из них все великолепно, а вот на одной в последнее время пару раз видел вот какой прикол: Даю команду записать, все вроде проходит, работает. Но перегружаюсь, проц зависает наглухо. Перешиваю, все стартует, но данные из флеш прогружаются такие: первый байт правильный, дальше одни 0xFF, т.е. такое чувство, что флеш стерлась, первый байт записался и все... Но это тоже странно: если бы не вставал флаг готовности флеш, то я бы после первой же команды ушел в ступор (само собой, там прерывания запрещены), но я продолжаю работать и отвечать на команды...
Понятно, где нужно искать: "сдох проц", "непропай" и т.д., но... Подскажите спецы по Keil, можно ли просмотреть/изменить/инициализировать флеш из под оболочки?
|