|
Инициализация EEPROM в IAR EWAVR |
|
|
|
 |
Ответов
|
Mar 3 2011, 10:10
|
Участник

Группа: Участник
Сообщений: 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
|
|
|
|
|
Mar 3 2011, 10:35
|
Участник

Группа: Участник
Сообщений: 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
|
|
|
|
|
Mar 3 2011, 12:03
|
Участник

Группа: Участник
Сообщений: 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
|
|
|
|
|
Mar 3 2011, 12:29
|

Гуру
     
Группа: Свой
Сообщений: 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};
--------------------
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|