Помощь
-
Поиск
-
Пользователи
-
Календарь
Полная версия этой страницы:
Structures & __flash в IAR
Форум разработчиков электроники ELECTRONIX.ru
>
Микроконтроллеры (MCs)
>
Cредства разработки для МК
>
IAR
dio
Aug 3 2006, 19:49
Приветствую !
Примерно так:
Код
struct TProfile
{
int x;
int y;
int z;
};
Потом :
Код
__flash struct TProfile profiles[10];
Как всё это заполнить данными, желательно каким нибудь компактным способом.
Благодарю зарание !!!
zltigo
Aug 3 2006, 20:11
http://linux.yaroslavl.ru/docs/prog/c/ch06.html#6.1
http://linux.yaroslavl.ru/docs/prog/c/ch06.html#6.3
dio
Aug 3 2006, 20:37
Попробовал так:
Код
struct TProfil
{
int ColDiff;
int RowDiff;
int a11;
}Profiles[2]={34,654,45,234,45,56};
принимает, но данные выдаёт неправильно.
Код
int test;
test=Profiles[1].ColDiff;
test почему то равно 774
GetSmart
Aug 3 2006, 21:58
Я тоже в этом деле не спец, но может так:
Код
__flash struct TProfile profiles[10] =
{ {1,2,3},
.........
{1,2,3}};
Это бы перенести в тему "IAR how to..."
dio
Aug 4 2006, 04:46
Цитата(GetSmart @ Aug 4 2006, 00:58)
Я тоже в этом деле не спец, но может так:
Код
__flash struct TProfile profiles[10] =
{ {1,2,3},
.........
{1,2,3}};
И так тоже не хочет.
Цитата
Это бы перенести в тему "IAR how to..."
Апсолютно согласен, но давайте сперва покончим с этим !
Заметил в Watch такую вещь :
Код
_________________________________
| Expression | Value | Location | Type |
_________________________________
| test | 774 | R25:R24 | int |
_________________________________
Причем тут
R25:R24
otrog
Aug 4 2006, 05:06
Цитата(dio @ Aug 4 2006, 08:46)
И так тоже не хочет.
Код
struct TProfile
{
int x;
int y;
int z;
};
__flash struct TProfile profiles[10] =
{ {1,2,3},
{1,2,3},
{1,2,3},
{1,2,3},
{1,2,3},
{1,2,3},
{1,2,3},
{1,2,3},
{1,2,3},
{1,2,3}
};
Компилируется в IAR-е на ура.
dio
Aug 4 2006, 05:20
Цитата(otrog @ Aug 4 2006, 08:06)
Цитата(dio @ Aug 4 2006, 08:46)
И так тоже не хочет.
Код
struct TProfile
{
int x;
int y;
int z;
};
__flash struct TProfile profiles[10] =
{ {1,2,3},
{1,2,3},
{1,2,3},
{1,2,3},
{1,2,3},
{1,2,3},
{1,2,3},
{1,2,3},
{1,2,3},
{1,2,3}
};
Компилируется в IAR-е на ура.
Попробуйте проверить данные !
otrog
Aug 4 2006, 05:33
Цитата(dio @ Aug 4 2006, 09:20)
Попробуйте проверить данные !
Все нормалек.
Код
volatile int test;
for (i=0;i<10;i++)
{
test = profiles[i].x;
test = profiles[i].y;
test = profiles[i].z;
}
В дебагере работает так:
Нажмите для просмотра прикрепленного файла
У вас неправильное значение образовалось скорее всего из-за того, что test объявлен не как volatile. И компилятор ее просто отбросил при оптимизации.
dio
Aug 4 2006, 05:43
Заработоло !!!
Цитата
... компилятор ее просто отбросил при оптимизации
Была мысль, но как то не придал значения.
Премного благодарен !
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке
.
Invision Power Board © 2001-2025
Invision Power Services, Inc.