Есть функция, которая пишет данные из ОЗУ во FLASH.
Если вызываю эту функцию в одном месте программы (в начале), то после этого во FLASH оказываются актуальные данные вперемешку с неправильными данными - чаще нулевые значения (или иногда старые данные, которые записывал туда неделю назад, т.е. те которые когда-то там были).
Если вызываю ЭТУ ЖЕ функцию в другом месте программы - работает, пишутся актуальные данные!
То есть одна и та же функция, если вызывать ее из разных частей программы, ведет себя по-разному - то работает абсолютно адекватно, то наоборот.
Может где-то какие-то регистры залочены и запись не срабатывает?
Может в какие-то моменты времени нельзя писать во флэш? Если вы знаете, объясните этот момент.
И еще, обязательно ли записывать данные побайтно?
Можно ли целиком float или int значение сразу писать, как в коде, который я показывал? Или надо обязательно разбивать на отдельные байты?
Вот тут только пример для записи побайтно, а мне нужно отдельными переменными сохранять.
http://www.efo.ru/doc/Silabs/Silabs.pl?2050
Сообщение отредактировал jdhfdg - Sep 27 2011, 20:27