Считать EEPROM

Megawollt
Offline
Зарегистрирован: 06.12.2015

Всем привет и с наступающим.

Встала задача считать первые 4 ячейки памяти не изменяя программу. Можно ли это сделать и как?

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Можно попытаться программатором, если программа не закрыта

Megawollt
Offline
Зарегистрирован: 06.12.2015

Программа залита в Ардуино IDE. Не знаю, закрывает она или нет

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Тогда не закрыта. Посмотри тут

Megawollt
Offline
Зарегистрирован: 06.12.2015

Спасибо. Статью почитал, микросхему удачно скопировал, но мне хотелось бы именно увидеть значения в первых трех ячейках

sadman41
Offline
Зарегистрирован: 19.10.2016

avrdude же умеет eeprom дампить вроде.

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Megawollt пишет:

Всем привет и с наступающим.

Встала задача считать первые 4 ячейки памяти не изменяя программу. Можно ли это сделать и как?


Какой памяти?
RAM?
EEPROM?
FLASH?

Megawollt
Offline
Зарегистрирован: 06.12.2015

ой, извините. EEPROM

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Megawollt пишет:

ой, извините. EEPROM

#include <EEPROM.h>

void setup() {
  Serial.begin(115200);
  for (uint16_t i = 0; i < EEPROM.length(); i++) { //Опрелеляем диапазон EEPROM памяти
    if (0x00 == (i % 0x10)) { // В начале каждой строки из 16 ячеек дампа выводим адрес блока
      Serial.println();
      if (i < 0x0F) { Serial.print("0"); }
      if (i < 0xFF) { Serial.print("0"); }
      Serial.print(i, HEX);  Serial.print(" ");
    }
    uint8_t val = EEPROM.read(i);
    if (val < 0x0F) { Serial.print("0"); }
    Serial.print(val, HEX); Serial.print(" ");
  }
  Serial.println();
}

void loop() { }

 

Megawollt
Offline
Зарегистрирован: 06.12.2015

Разве ардуино иде не стирает еепром при перепрошивке?

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Megawollt пишет:

Разве ардуино иде не стирает еепром при перепрошивке?

При перепрошивке - стираета а если считать память, то нет. Только я не знаю где находится EEPOM  в считаном файле. Надо изучать даташит к программе.

sadman41
Offline
Зарегистрирован: 19.10.2016

По секрету сообщу: я поискал в гуголо "avrdude считать eeprom"... И шо ви таки думаете?

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

sadman41 пишет:

По секрету сообщу: я поискал в гуголо "avrdude считать eeprom"... И шо ви таки думаете?

Ай - вэй. А там херню на Англицком пишут.

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Google translate вам в помощь.

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

asam пишет:

Google translate вам в помощь.

Извиняюсь, конечно, но Вы читали те переводы?

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Регулярно использую. Правда не с английского,  а с немцкого и португальского. Технические тесты переводит достаточно адекватно.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Конструкция вида не помогла?
 

  uint8_t val = EEPROM.read(i);

 

sadman41
Offline
Зарегистрирован: 19.10.2016

mykaida пишет:

sadman41 пишет:

По секрету сообщу: я поискал в гуголо "avrdude считать eeprom"... И шо ви таки думаете?

Ай - вэй. А там херню на Англицком пишут.

А вы попробуйте - удивитесь.

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Та ладно. Я так китайскую литературу опять же с китайских сайтов читаю. И что удивительно иногда получше чем наши современники пишут. Конечно и то и другое можно отнести к мусорной литературе. После почтения забыть все как страшный сон.

О китайском языке знаю что они пишут иероглифами, так даже лучше находить что и где можно прочесть.

Megawollt
Offline
Зарегистрирован: 06.12.2015

Я думаю сделать так. Записать скетч вывода памяти в сериал, а потом прошить копию памяти с помощью казамы