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

 
 
> Подскажите как struct типа __eeprom заставить лежать не с нулевого адреса EEPROM
west329_
сообщение May 14 2009, 07:47
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 378
Регистрация: 10-09-07
Из: UKR/Voz
Пользователь №: 30 423



Компилятор IAR AVR 5.20. Контроллер mega162.

Требуется заставить компилятор не использовать первые 64 байта в EEPROM.

Объявляю в *.h
Код
typedef struct  T_EEPROM
  {
    unsigned char   Key[16];
    unsigned long   Login;
    unsigned char   IP_Server[4];
    unsigned int    Port_Server;
    unsigned int    Port_Client;
    unsigned char   APN[24];
    unsigned char   Serial[8];
    unsigned long   CRC32;
  }  T_EEPROM_Header;


потом
Код
T_EEPROM_Header       __eeprom *EE_Header;


и обращение такое в качестве теста
Код
    EE_Header->Key[0] = 10;
    EE_Header->Key[1] = 11;
    EE_Header->Key[5] = 12;
    EE_Header->Key[10] = 13;
    EE_Header->Key[14] = 14;
    EE_Header->Key[15] = 15;    
    EE_Header->Login = 0x00000000;
    EE_Header->IP_Server[0]=1;
    EE_Header->IP_Server[1]=2;
    EE_Header->IP_Server[2]=3;
    EE_Header->IP_Server[3]=4;
    EE_Header->Port_Server = 0xAAAA;
    EE_Header->Port_Client = 0xBBBB;
    EE_Header->APN[0] = 1;
    EE_Header->APN[1] = 2;
    EE_Header->APN[5] = 3;
    EE_Header->APN[10] = 4;
    EE_Header->APN[22] = 5;
    EE_Header->APN[23] = 6;    
    EE_Header->CRC32 = 0xCCDDEE00;


чтоб не использовать первые 64 байта памяти еепром, правлю файл cfgm162.xcl так
Код
//////////////////////////////////////////////////////////////////////////////
// Internal EEPROM
-D_..X_EEPROM_END=1FF       // End of eeprom memory
//-D_..X_EEPROM_START=0    //OLD
-D_..X_EEPROM_START=64    //NEW


как только начинаю заполнять стркутуру, он пишется с 0 адреса laughing.gif

если начинаю использовать раздельные данные без структуры типа
Код
__no_init unsigned int __eeprom Dest_Port_eeprom;
__no_init unsigned int __eeprom Sour_Port_eeprom;


то при записи в них данных
Код
    
Dest_Port_eeprom = 0xABCD;
Sour_Port_eeprom = 0xEFAB;

они ложатся точно со смещения в 64 байта, но хочется использовать структуру.

Подскажите, что неправильно
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 11:36
Рейтинг@Mail.ru


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