|
|
  |
Structures & __flash в IAR, не займёт много времени :) |
|
|
|
Aug 3 2006, 19:49
|

Участник

Группа: Новичок
Сообщений: 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
|
|
|
|
|
Aug 3 2006, 20:37
|

Участник

Группа: Новичок
Сообщений: 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
|
|
|
|
|
Aug 3 2006, 21:58
|
.
     
Группа: Участник
Сообщений: 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
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Aug 4 2006, 04:46
|

Участник

Группа: Новичок
Сообщений: 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..." Апсолютно согласен, но давайте сперва покончим с этим ! Заметил в Watch такую вещь : Код _________________________________ | Expression | Value | Location | Type | _________________________________ | test | 774 | R25:R24 | int | _________________________________ Причем тут R25:R24
Сообщение отредактировал dio - Aug 4 2006, 05:16
|
|
|
|
|
Aug 4 2006, 05:06
|
Местный
  
Группа: Свой
Сообщений: 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-е на ура.
--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
|
|
|
|
|
Aug 4 2006, 05:20
|

Участник

Группа: Новичок
Сообщений: 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-е на ура.  Попробуйте проверить данные !
|
|
|
|
|
Aug 4 2006, 05:33
|
Местный
  
Группа: Свой
Сообщений: 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. И компилятор ее просто отбросил при оптимизации.
--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
|
|
|
|
|
Aug 4 2006, 05:43
|

Участник

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

|
Заработоло !!! Цитата ... компилятор ее просто отбросил при оптимизации Была мысль, но как то не придал значения. Премного благодарен !
Сообщение отредактировал dio - Aug 4 2006, 05:45
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|