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

 
 
> Проблема c IAR
cyb
сообщение Sep 15 2011, 17:09
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 29-08-11
Из: Киев
Пользователь №: 66 910



Здравствуйте. В общем сразу к делу. Перехожу на IAR под AVR и задача доработать программу, которая написана на IDE IAR 4.20. Открываю проект в IAR 5.51 пробую компилировать, но линковщик выдает ошибку [e46]. Причём проект компилируется в старом IAR 4.20 без ошибок. Так вот, как нужно изменить код чтобы он линковался без ошибок в новом IARe?
Код:

...
static __io struct
{
..
} _PORTA @ 0x21;

Ругается так:
Error [e46]: Undefined external reference _PORTA (../../../xxx.d90)

Ума не приложу что это за собака в коде и что она значит? cranky.gif

П.С. Если что представлю код подробнее, когда буду на работе.

Сообщение отредактировал cyb - Sep 15 2011, 17:10
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
cyb
сообщение Sep 16 2011, 07:42
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 29-08-11
Из: Киев
Пользователь №: 66 910



Цитата
1. есть препроцессор
2. посмотрите как в родных ioXXX файлах описаны регистры.

Ну да посмотрел, но не пойму как заменить такую запись

static volatile __io struct
{
BYTE _P0:1, _P1:1, _P2:1, _P3:1, _P4:1, _P5:1, _P6:1, _P7:1;
} _PING @ 0x63;

такой как в ioxxx.h

SFR_B_N(0x63, PING, Dummy7, Dummy6, Dummy5, PING4, PING3, PING2, PING1, PING0)
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Sep 16 2011, 08:41
Сообщение #3


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(cyb @ Sep 16 2011, 11:42) *
Ну да посмотрел, но не пойму как заменить такую запись...
Вам нужно определить имя порта с подчёркиванием?

Тогда так наверное:
Код
SFR_B_N(0x63, _PING, Dummy7, Dummy6, Dummy5, PING4, PING3, PING2, PING1, PING0)
или так
Код
#define _PING PING

Да, там ещё в настройках есть галочка типа "Enable SFR defs", так её нужно поставить...


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
cyb
сообщение Sep 16 2011, 09:12
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 29-08-11
Из: Киев
Пользователь №: 66 910



Цитата(demiurg_spb @ Sep 16 2011, 11:41) *
Вам нужно определить имя порта с подчёркиванием?

Тогда так наверное:
Код
SFR_B_N(0x63, _PING, Dummy7, Dummy6, Dummy5, PING4, PING3, PING2, PING1, PING0)
или так
Код
#define _PING PING

Да, там ещё в настройках есть галочка типа "Enable SFR defs", так её нужно поставить...


Нет, не помогло. Вообще всё это нужно для красоты как я понял, далее по программе есть такие определения например:

#define SYNC_O _PORTA._P6
#define SYNC_I _PINA._P6
#define SYNC_C _DDRA._P6
#define SYNC_M (1 << P6)

Галочка на Enable SFR defs естественно стоит.

Сообщение отредактировал cyb - Sep 16 2011, 09:13
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Sep 16 2011, 09:35
Сообщение #5


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Тогда проще по тексту программы убрать все эти убогие подчёркивания. ИМХО.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- cyb   Проблема c IAR   Sep 15 2011, 17:09
- - KRS   А зачем _PORTA определять? в ioXXX.h для вашего ко...   Sep 15 2011, 20:09
|- - cyb   Цитата(KRS @ Sep 15 2011, 23:09) А зачем ...   Sep 16 2011, 06:45
- - KRS   1. есть препроцессор 2. посмотрите как в родных i...   Sep 16 2011, 07:05
|- - KRS   Цитата(cyb @ Sep 16 2011, 11:42) Ну да по...   Sep 16 2011, 08:40
- - demiurg_spb   Цитата(cyb @ Sep 15 2011, 21:09) Ума не п...   Sep 16 2011, 08:39
- - cyb   В общем идёт так: В заголовке определяется: stat...   Sep 16 2011, 09:37
- - KRS   Цитата(cyb @ Sep 15 2011, 21:09) static _...   Sep 16 2011, 09:47
|- - cyb   Код__io union { struct { .. } _PORTA; } @ 0x21...   Sep 16 2011, 10:50
|- - KRS   Цитата(cyb @ Sep 16 2011, 14:50) Это тоес...   Sep 16 2011, 11:33
|- - cyb   Цитата(KRS @ Sep 16 2011, 14:33) Нет, я и...   Sep 16 2011, 12:08
- - cyb   Хм, в общем переопределил все имена в новом иаре, ...   Sep 23 2011, 11:15
- - KRS   Цитата(cyb @ Sep 23 2011, 15:15) _A_PORTE...   Sep 23 2011, 13:50


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

 


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


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