Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Выходной eeprom-файл
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
Mexx
Приветствую всех.

Мне необходимо создать образ eeprom с начальными значениями параметров устройства.
Делаю примерно так (IAR AVR 2.38, оптимиз выкл):

__eeprom volatile const unsigned char params[2] @DATA_ADDR = {1, 2};
__eeprom volatile const unsigned char crc[1] @CRC_ADDR = {0x12};

// без этой ф-ции eep-файл пустой
static void dummy() {
volatile char i;
if ((params[0] == 0) || (crc[0] > 0))
i = 1;
else
i = 2;
}

В этом случае eep-файл создается нормально. Но объясните, плиз:
1. почему, если объявить crc не как массив, а просто как char, то ее значение в выходном eep-файле пропадает?
2. можно ли обойтись без функции dummy?

Thanx
Сергей Борщ
Цитата(Mexx @ Dec 17 2006, 03:55) *
1. почему, если объявить crc не как массив, а просто как char, то ее значение в выходном eep-файле пропадает?
Неизвестно. Не должно. Как именно объявляешь?
Цитата(Mexx @ Dec 17 2006, 03:55) *
2. можно ли обойтись без функции dummy?
Да.
Код
__root __eeprom volatile const unsigned char params[2] @DATA_ADDR = {1, 2};
__root __eeprom volatile const unsigned char crc[1] @CRC_ADDR = {0x12};
Но зачем хранить данные которые не используются?
Mexx
Так в вых eep-файле значение 0x12 есть:
Код
__root __eeprom volatile const unsigned char crc[1] @CRC_ADDR = {0x12};

А так - нет:
Код
__root __eeprom volatile const unsigned char crc @CRC_ADDR = 0x12;
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.