Навчальний курс avr
Ініціалізацію змінних зберігаються в ОЗУ компілятор "запихає" в початок програми мікроконтролера - перед викликом функції main. І вона виконується кожен раз, коли на мікроконтролер підключений до джерела живлення або відбувається його скидання.
З EEPROM змінними ситуація трохи інша, їх повинен ініціалізувати сам користувач шляхом програмування EEPROM спеціальним файлом (з розширенням .eep).
Як згенерувати файл для EEPROM? Якщо в коді є ініціалізація EEPROM змінних, то AtmelStudio 6 і CodeVision AVR створять цей файл автоматично. А ось в IAR`e для цього потрібно прописувати Лінкер команди. Робиться це так.
Меню Project> Options.> Linker вкладка Output. Встановлюємо значення за замовчуванням - галочка Override default знята, формат - Debug information for C-SPY. На вкладці Extra Options ставимо галочку Use Command Options і в віконці нижче прописуємо такі рядки:


Після компіляції і збірки проекту IAR створить файл прошивки - .hex і файл для EEPROM`a - .eep
Отриманий eep файл записується за допомогою програматора в мікроконтролер.
У IAR`e і CodeVision AVR використання EEPROM змінних по суті нічим не відрізняється від використання звичайних змінних (що зберігаються в ОЗП і регістрах). Вся робота по організації читання та запису в ці EEPROM змінні виконується компілятором.
У AtmelStudio для читання / запису EEPROM змінних використовуються спеціальні макроси. Вони визначені в файлі eeprom.h. Ось деякі з них:
З цієї статті ви дізналися:
- як оголосити змінну в EEPROM пам'яті,
- як створити файл для ініціалізації EEPROM,
- як прочитати і записати дані в EEPROM.
У наступній статті будуть розібрані регістри, що використовуються для читання і запису в EEPROM, а також низкоуровневая робота з цим типом пам'яті.