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

 
 
 
Reply to this topicStart new topic
> Structures & __flash в IAR, не займёт много времени :)
dio
сообщение Aug 3 2006, 19:49
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 40
Регистрация: 4-06-06
Пользователь №: 17 766



Приветствую !

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

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


Потом :

Код
__flash struct TProfile profiles[10];


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

Благодарю зарание !!!

Сообщение отредактировал dio - Aug 3 2006, 19:50
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 3 2006, 20:11
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



http://linux.yaroslavl.ru/docs/prog/c/ch06.html#6.1

http://linux.yaroslavl.ru/docs/prog/c/ch06.html#6.3


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
dio
сообщение Aug 3 2006, 20:37
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 40
Регистрация: 4-06-06
Пользователь №: 17 766



Попробовал так:

Код
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
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Aug 3 2006, 21:58
Сообщение #4


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



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

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

Сообщение отредактировал GetSmart - Aug 3 2006, 22:03


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
dio
сообщение Aug 4 2006, 04:46
Сообщение #5


Участник
*

Группа: Новичок
Сообщений: 40
Регистрация: 4-06-06
Пользователь №: 17 766



Цитата(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

Сообщение отредактировал dio - Aug 4 2006, 05:16
Go to the top of the page
 
+Quote Post
otrog
сообщение Aug 4 2006, 05:06
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589



Цитата(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


--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
Go to the top of the page
 
+Quote Post
dio
сообщение Aug 4 2006, 05:20
Сообщение #7


Участник
*

Группа: Новичок
Сообщений: 40
Регистрация: 4-06-06
Пользователь №: 17 766



Цитата(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



Попробуйте проверить данные !
Go to the top of the page
 
+Quote Post
otrog
сообщение Aug 4 2006, 05:33
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589



Цитата(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. И компилятор ее просто отбросил при оптимизации.


--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
Go to the top of the page
 
+Quote Post
dio
сообщение Aug 4 2006, 05:43
Сообщение #9


Участник
*

Группа: Новичок
Сообщений: 40
Регистрация: 4-06-06
Пользователь №: 17 766



Заработоло !!! smile.gif


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


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

Премного благодарен !
smile.gif

Сообщение отредактировал dio - Aug 4 2006, 05:45
Go to the top of the page
 
+Quote Post

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

 


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


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