реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Сохранение масива структур в EEPROM.
Jenya7
сообщение Aug 19 2013, 12:39
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Привет.
Уменя есть структура.
Код
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.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Aug 19 2013, 13:06
Сообщение #2


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Используйте ключевое слово компилятора IAR __eeprom.
+ пользуйтесь поиском по форуму:
http://electronix.ru/forum/index.php?showtopic=16140


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Aug 19 2013, 13:32
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



в принципе так компилиться
Код
__eeprom phase_t ephases[10];

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


просмотрел предыдущие посты, все не то.

Сообщение отредактировал Jenya7 - Aug 19 2013, 13:38
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Aug 19 2013, 13:41
Сообщение #4


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



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


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Aug 19 2013, 13:45
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(demiurg_spb @ Aug 19 2013, 18:41) *
какую?

сложный вопрос sm.gif доступ к компайлеру у меня будет через час sm.gif
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Aug 19 2013, 14:56
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075




ошибка такая:
Error[e133]: The output format intel-standard cannot handle multiple address spaces. Use format variants (-y -O) to specify which address space is wanted

Сообщение отредактировал Jenya7 - Aug 19 2013, 14:57
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение Aug 19 2013, 15:19
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Это не компилятор. Эта ошибка линкёра Вам говорит, что Вы начали использовать в программе 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
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Aug 19 2013, 15:21
Сообщение #8


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



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

будьте любезны, подскажите как отконфигурировать линкер, чтоб он понимал что это ипром.
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение Aug 19 2013, 15:31
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



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

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

Рецепт см. у меня выше.
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Aug 19 2013, 15:33
Сообщение #10


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(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


прописал, все равно ругается.
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение Aug 19 2013, 15:38
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Так-же или иначе?
Посмотри куда сейчас указано в Output и Extra Output.
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Aug 19 2013, 15:47
Сообщение #12


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



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

ругается так же.
Output - Output format - intel-extended
Extra Output - не задействован.
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Aug 19 2013, 16:27
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(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).

Go to the top of the page
 
+Quote Post
Jenya7
сообщение Aug 19 2013, 16:35
Сообщение #14


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(_Артём_ @ 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, 16:36
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Aug 19 2013, 16:51
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(Jenya7 @ Aug 19 2013, 19:35) *
все равно ругается sad.gif


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



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

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


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

Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 16:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01474 секунд с 7
ELECTRONIX ©2004-2016