Closed legath closed 7 years ago
@legath Могли бы вы приложить скомпилированный объектный файл с отладочными символами (флаг -ggdb3)?
gcc version 5.4.1 20160919 eeprom.zip
@legath Извините, хотелось бы увидеть скомпилированный объектный файл с отладочными символами самой программы (т.е. после линковки).
@legath Судя по версии GCC: (15:5.4.1+svn241155-1) 5.4.1 20160919 (взято из объектного файла), вы используете среду компилятора из дебиановского (убунтовского) репозитория. Я бы вам по рекомендовал использовать компилятор от сюда. Это официальная сборка, поддерживаемая ARM. Насколько я помню у меня были когда-то проблемы с запуском программы скомпилированной компилятором из стандартного (убунту) репо.
@legath И для уточнения, вы используете последнюю версию данной библиотеки?
@eldarkg да, я делал pull к себе. Для уточнения, я нашел что на новом контроллере перед работой с EEPROM необходимо вызывать EEPROM_ErasePage, тогда при последующей работе все читается и пишется не зависимо о количества циклов подачи питания.
Компилятор у меня не из репозитория , а с лаунчпад, но сути это не меняет. Воспользуюсь Вашим советом и протестирую на рекомендованном. Спасибо.
@legath По сути в принципе надо перед тем чем что-то записать в ЕЕПРОМ необходимо делать очистку страницы (для сведения: очистка - заполнение памяти единицами; запись - только сброс битов в 0. Т.е. если бит, который вы хотите установить в единицу уже нулевой, его можно взвести только полным стиранием страницы, с последующей записью необходимых данных). Я не стал бы надеяться на производителя, что он стерет эту память.
@legath Можно закрывать вопрос?
Думаю что можно закрывать. Хотя момент с чтением 0 все равно не совсем понятен, особенно после Вашего комментария.
@legath Т.е. я имею ввиду, что если в памяти уже нули, то после записи туда каких-либо данных, там так и будут нули.
EEPROM_ReadWord всегда возвращает 0 , даже если данные есть. Настройки задержек верные т.к. с оптимизацией 0 все работает.