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

 
 
> Инициализация EEPROM в IAR EWAVR
garlands
сообщение Jun 1 2008, 22:00
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 364
Регистрация: 15-04-08
Из: UA
Пользователь №: 36 798



собственно, в названии вопрос и отражен: как в EWAVR на этапе проекта инициализировать содержимое eeprom. Например, для mega16.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Roger
сообщение Mar 3 2011, 10:10
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 69
Регистрация: 27-06-06
Пользователь №: 18 383



чтобы не создавать схожу тему, спрошу тут.
Задача построить список(дерево), поэтому требуется указатель на такой же объект.
есть класс(структура)
Код
Class MyClass
{
pulbic:
int a,b;
MyClass *prt;
}


как правильно написать чтобы
указатель
Код
MyClass *prt;
располагался во Flash
Такая конструкция не работает.
Код
__flash MyClass *prt;


Сообщение отредактировал Roger - Mar 3 2011, 10:10
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Mar 3 2011, 10:24
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Ответ на ваш вопрос - "никак". Объект не может находиться частично в ОЗУ а частично во флеш.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Roger
сообщение Mar 3 2011, 10:35
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 69
Регистрация: 27-06-06
Пользователь №: 18 383



Цитата(Сергей Борщ @ Mar 3 2011, 13:24) *
Ответ на ваш вопрос - "никак". Объект не может находиться частично в ОЗУ а
частично во флеш.

А как его полность разместить во флешь?
Код
__flash Сlass MyClass
{
pulbic:
int a,b;
MyClass *prt;
}

так описать класс?


тогда как правильно реализовать такую конструкцию:
Код
Class MyClass
{
pulbic:
int a,b;
MyClass *prt;
}
...

__flash MyClass m={0,1};
__flash MyClass t={2,3,&m};


Компилятор тоже ругается.

Сообщение отредактировал Roger - Mar 3 2011, 10:46
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Mar 3 2011, 11:23
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Полагаю, что так:
CODE
Class MyClass
{
pulbic:
int a,b;
__flash MyClass *prt;
}
...

__flash MyClass m={0,1};
__flash MyClass t={2,3,&m};



--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Roger
сообщение Mar 3 2011, 12:03
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 69
Регистрация: 27-06-06
Пользователь №: 18 383



Цитата(Сергей Борщ @ Mar 3 2011, 14:23) *
Полагаю, что так:
Код
Class MyClass
{
pulbic:
int a,b;
__flash MyClass *prt;
}
...

__flash MyClass m={0,1};
__flash MyClass t={2,3,&m};

Подобную конструкцию побывал, но компилятор ругался...

Код
__flash MyClass *prt;

Error[Pa004]: illegal declaration


Сообщение отредактировал Roger - Mar 3 2011, 12:22
Go to the top of the page
 
+Quote Post
prottoss
сообщение Mar 3 2011, 12:29
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(Roger @ Mar 3 2011, 20:03) *
Подобную конструкцию побывал, но компилятор ругался...

Для __flash
Код
typedef class __MyClass
{    
    public:
      int a, b, c;
    __MyClass __flash *prt;
    
} MyClass, *p_MyClass;

__flash MyClass foo_a = { 1, 2, 3, 0 };
__flash MyClass foo_b = { 1, 2, 3, &foo_a};

int main()
{    
      int i, x = 0;
    
    for(i = 0; i < 10; i++)
    {
          x += foo_a.a;
        x -= foo_b.b;
        x ^= foo_a.c;
    }
      
      return x;
}

Для __eeprom парктически тоже
Код
typedef class __MyClass
{    
    public:
      int a, b, c;
    __MyClass __eeprom *prt;
    
} MyClass, *p_MyClass;

__eeprom MyClass foo_a = { 1, 2, 3, 0 };
__flash MyClass foo_b = { 1, 2, 3, &foo_a};


--------------------
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- garlands   Инициализация EEPROM в IAR EWAVR   Jun 1 2008, 22:00
- - Сергей Борщ   Точно так же, как и любую другую переменную.Кодtyp...   Jun 2 2008, 00:12
|- - VladimirYU   Цитата(Сергей Борщ @ Jun 2 2008, 04:12) Т...   Jun 3 2008, 05:50
- - garlands   Благодарю.   Jun 3 2008, 21:02
|- - alux   Можно и так Код-y(CODE) -Ointel-extended,...   Jun 5 2008, 12:22
|- - _Rookie_   Добавил в Linker->Extra options -y(CODE) -Ointe...   Feb 21 2011, 20:38
|- - VladimirYU   Цитата(_Rookie_ @ Feb 21 2011, 23:38) Доб...   Feb 22 2011, 10:54
|- - Roger   Если в класс добавить метод и к нему обращаться то...   Mar 11 2011, 12:45
|- - Сергей Борщ   Думаю, __flash подразумевает const. Вы пытаетесь в...   Mar 11 2011, 13:08
|- - Roger   попробую через 2 минуты тот же результат   Mar 11 2011, 13:11
|- - Alex_1811   Вопрос чуток не по теме. Как объявить переменную e...   Mar 16 2011, 11:39
- - desh   В одном .С файле объявляете без extern, а во всех ...   Mar 20 2011, 15:15


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

 


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


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