Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Сохранение масива структур в EEPROM.
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
Jenya7
Привет.
Уменя есть структура.
Код
typedef struct time
{
  char hour;
  char minutes;
  char seconds;
} time_t;

typedef struct date
{
  char day;
  char month;
  char year;
} date_t;

typedef struct
{
  time_t light_on;
  time_t light_off;
  time_t pump_on;
  time_t pump_off;
  time_t fan_on;
  time_t fan_off;
  date_t start_date;
  date_t stop_date;
  unsigned int days;
  char temp_high;
  char temp_low;
  char hum_high;
  char hum_low;
  char fan_cycle_time;
} phase_t;

Я создаю массив структур
Код
phase_t phases[10];


Как я могу сохранить масив структур в EEPROM? Компайлер IAR для AVR.
demiurg_spb
Используйте ключевое слово компилятора IAR __eeprom.
+ пользуйтесь поиском по форуму:
http://electronix.ru/forum/index.php?showtopic=16140
Jenya7
в принципе так компилиться
Код
__eeprom phase_t ephases[10];

не пойму как дальше работать, так выдает ошибку:
Код
phases[1] =  ephases[1];


просмотрел предыдущие посты, все не то.
demiurg_spb
Цитата(Jenya7 @ Aug 19 2013, 17:32) *
не пойму как дальше работать, так выдает ошибку:
какую?
Jenya7
Цитата(demiurg_spb @ Aug 19 2013, 18:41) *
какую?

сложный вопрос sm.gif доступ к компайлеру у меня будет через час sm.gif
Jenya7

ошибка такая:
Error[e133]: The output format intel-standard cannot handle multiple address spaces. Use format variants (-y -O) to specify which address space is wanted
ArtemKAD
Это не компилятор. Эта ошибка линкёра Вам говорит, что Вы начали использовать в программе EEPROM, а куда девать данные для нее в выходном файле неизвестно. В стандартный intel-hex файл засунуть кроме программы еще и EEPROM IAR не умеет...

В общем используйте в Extra Options линкёра
-Ointel-extended,(CODE)=$EXE_DIR$\$PROJ_FNAME$_data.hex
-Ointel-extended,(XDATA)=$EXE_DIR$\$PROJ_FNAME$_eeprom.hex
Jenya7
Цитата(ArtemKAD @ Aug 19 2013, 20:19) *
Это не компилятор. Эта ошибка Вам говорит, что Вы начали использовать в программе EEPROM, а куда девать данные для нее для выходного файла неизвестно. В стандартный intel-hex засунуть кроме программы еще и EEPROM IAR не умеет...

будьте любезны, подскажите как отконфигурировать линкер, чтоб он понимал что это ипром.
ArtemKAD
Цитата
подскажите как отконфигурировать линкер, чтоб он понимал что это ипром

Он понимает, что это. Он не знает куда это деть.

Рецепт см. у меня выше.
Jenya7
Цитата(ArtemKAD @ Aug 19 2013, 20:19) *
Это не компилятор. Эта ошибка линкёра Вам говорит, что Вы начали использовать в программе EEPROM, а куда девать данные для нее в выходном файле неизвестно. В стандартный intel-hex файл засунуть кроме программы еще и EEPROM IAR не умеет...

В общем используйте в Extra Options линкёра
-Ointel-extended,(CODE)=$EXE_DIR$\$PROJ_FNAME$_data.hex
-Ointel-extended,(XDATA)=$EXE_DIR$\$PROJ_FNAME$_eeprom.hex


прописал, все равно ругается.
ArtemKAD
Так-же или иначе?
Посмотри куда сейчас указано в Output и Extra Output.
Jenya7
Цитата(ArtemKAD @ Aug 19 2013, 20:38) *
Так-же или иначе?
Посмотри куда сейчас указано в Output и Extra Output.

ругается так же.
Output - Output format - intel-extended
Extra Output - не задействован.
_Артём_
Цитата(Jenya7 @ Aug 19 2013, 18:47) *
ругается так же.
Output - Output format - intel-extended
Extra Output - не задействован.


Выберите на вкладке Output какой-нибудь другой выходной формат (например ubrof 8). На вкладке Extra options добавьте строки из сообщения ArtemKAD.


После make в exe-папке должны появится ещё два hex-файла (proj_name_data.hex и proj_name_eeprom.hex).

Jenya7
Цитата(_Артём_ @ Aug 19 2013, 21:27) *
Выберите на вкладке Output какой-нибудь другой выходной формат (например ubrof 8). На вкладке Extra options добавьте строки из сообщения ArtemKAD.


После make в exe-папке должны появится ещё два hex-файла (proj_name_data.hex и proj_name_eeprom.hex).


все равно ругается sad.gif
хотя файлы появляются.
_Артём_
Цитата(Jenya7 @ Aug 19 2013, 19:35) *
все равно ругается sad.gif


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



Цитата(Jenya7 @ Aug 19 2013, 19:35) *
хотя файлы появляются.

Или они не стираются после команды make?


Какой формат выбран на вкладке Linker\Output?

Jenya7
я выбрал ubrof8
ArtemKAD
Output file - убрать пташку, Format - Debug information for C-SPY, Extra output - убрать галку.
Jenya7
Цитата(ArtemKAD @ Aug 20 2013, 00:50) *
Output file - убрать пташку, Format - Debug information for C-SPY, Extra output - убрать галку.


большое спасибо - компилиться.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.