@ivan58

Что из программного кода попадает в Eeprom, SRAM, Flash?

/*
  Зажигаем светодиод на одну секунду, затем выключаем его на  
  одну  секунду в цикле.
 */
 
void setup() {               
  // Инициализируем цифровой вход/выход в режиме выхода.
  // Выход 13 на большинстве плат Arduino подключен к светодиоду на плате.
  pinMode(13, OUTPUT);   
}
 
void loop() {
  digitalWrite(13, HIGH);   // зажигаем светодиод
  delay(1000);              // ждем секунду
  digitalWrite(13, LOW);    // выключаем светодиод
  delay(1000);              // ждем секунду
}

Я так считаю, что части кода попадают в разные отсеки памяти. Переменные в SRAM, настройки в EEPROM, ну и сам код во Flash. Он что, дробится, этот код?
  • Вопрос задан
  • 208 просмотров
Решения вопроса 2
@VT100
Embedded hardware & software.
Иван! Перестаньте жонглировать незнакомыми Вам терминами. Тем более - с помощью ИИ (он не заменит мозги, т.к. правильно заданный вопрос - половина ответа).
Начните "от печки": Гарвардская и фон-Неймановская архитектуры.
Ответ написан
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Этот код исключительно в регистрах
Пинмод пишет единицу в регистр
Дальше старт цикла
Дальше Диджитал воайт пишет в регистр значение и ждет секунду потом пишется значение противоположное и повтор.

Если смотреть шире то происходит следующее при включении питания дергается загрузчик и ждёт на портах обновления если ничего нет то он загружает из nvram данные в оперативку и передаёт управление по загружённому адресу
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@vanyamba-electronics
Код программы располагается во Flash, переменные - в RAM.
Чтобы записать данные (например константы) во Flash, используется ключевое слово PROGMEM:
const dataType variableName[] PROGMEM = {data0, data1, data3…​};

Чтобы записать или считать данные из EEPROM, можно воспользоваться классом DEV_EEPROM библиотеки VE_AVR:
DEV_EEPROM[0] = newPotValue;       // Записываем в EEPROM по адресу 0
DEV_EEPROM[0] >> ledBlinkDelay;    // Читаем записанное значение
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы