Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Structures & __flash в IAR
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
dio
Приветствую !

Примерно так:

Код
struct TProfile
{
int  x;
int  y;
int  z;
};


Потом :

Код
__flash struct TProfile profiles[10];


Как всё это заполнить данными, желательно каким нибудь компактным способом.

Благодарю зарание !!!
dio
Попробовал так:

Код
struct TProfil
{
int  ColDiff;
int  RowDiff;
int  a11;
}Profiles[2]={34,654,45,234,45,56};


принимает, но данные выдаёт неправильно.


Код
int test;
test=Profiles[1].ColDiff;


test почему то равно 774
blink.gif
GetSmart
Я тоже в этом деле не спец, но может так:
Код
__flash struct TProfile profiles[10] =
{ {1,2,3},
.........
  {1,2,3}};

Это бы перенести в тему "IAR how to..."
dio
Цитата(GetSmart @ Aug 4 2006, 00:58) *
Я тоже в этом деле не спец, но может так:
Код
__flash struct TProfile profiles[10] =
{ {1,2,3},
.........
  {1,2,3}};


И так тоже не хочет.

Цитата
Это бы перенести в тему "IAR how to..."


Апсолютно согласен, но давайте сперва покончим с этим ! smile.gif


Заметил в Watch такую вещь :

Код
  _________________________________
| Expression |  Value | Location  |  Type |
_________________________________
| test            |  774     | R25:R24  |  int     |
_________________________________


Причем тут R25:R24 huh.gif
otrog
Цитата(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-е на ура. wink.gif
dio
Цитата(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-е на ура. wink.gif



Попробуйте проверить данные !
otrog
Цитата(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
Заработоло !!! smile.gif


Цитата
... компилятор ее просто отбросил при оптимизации


Была мысль, но как то не придал значения.

Премного благодарен !
smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.