Помогите разобраться с начинкой Mega 2560

Тема в разделе "Arduino & Shields", создана пользователем Dima85, 17 ноя 2014.

  1. Dima85

    Dima85 Нерд

    EEPROM - Насколько я понимаю это этакий аналог встроенной флешки, сюда можно сохранять до 500 записей каждая из который может быть от 0 до 255. Перезапись до 10 000 раз. Из плюсов, после рестарта эти данные сохраняются.

    SRAM - Это RAM операционная память.

    Flash Memory - А что это такое? Для чего это и как с этим работать?
     
  2. ANV

    ANV Гуру

    Вы какой документ читаете? Даташит говорит про 256K флеша, 4K EEPROM и 8К RAM
    Flash memory и EEPROM - это энергонезависимые типы памяти, технология по которой она сделана.
    В данном случае Flash - это память программ (10000 циклов перезаписи), EEPROM - память данных, туда можно сохранять свои данные (100000 циклов перезаписи), SRAM - ОЗУ.
    В случае с Arduino в первом приближении за флеш вам волноваться не надо - среда программирования с ней все сделает сама, главное код не написать больше.
     
  3. Dima85

    Dima85 Нерд

    А в чем разница между
    Serial.print(F("- "));
    и
    Serial.print("- ");
     
  4. Unixon

    Unixon Оракул Модератор

    Первое берет строку из флэша, второе из оперативки.
     
  5. Dima85

    Dima85 Нерд

    То есть с начало записывается строчка в Flash потом берется оттуда? И так каждый раз когда происходит обращение к Serial.print(F("- ")); ?
    В этой теме ANV писал что во Flash можно перезаписать только до 100000. Другими словами если часто выводится этот Serial.print(F("- ")); его использовать не рекомендуется?
     
  6. Unixon

    Unixon Оракул Модератор

    Нет. Строка, а точнее, строковая константа, записывается во флэш при программировании контроллера (заливке скетча). Макрос F() ее только считывает. Это позволяет эффективно экономить оперативную память, особенно при использовании длинных строк.
     
    pastry777 нравится это.