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

 
 
> IAR C v5.11 переопределение I/O
Д_М
сообщение Jun 13 2014, 18:20
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 121
Регистрация: 15-04-05
Из: Краснодар
Пользователь №: 4 185



Здравствуйте!
Старичёк IAR v2.28 позволял многократно преопредилять порты микроконтроллера например:

Код
__no_init volatile __io union
{
unsigned char Uni_Hi;// Control signals
struct
    {
    unsigned char P_B0:1;
    unsigned char P_B1:1;
    unsigned char P_B2:1;
    unsigned char P_B3:1;
    unsigned char P_B4:1;
    unsigned char White_LED:1;
    unsigned char RxGreen_LED:1;
    unsigned char RxRed_LED:1;
    };
} @ 0x18;// PortB

Он даже не ругался, если два одинаковых переопределения были в одном файле.

v5.11 же ругался до тех пор, пока не отключил из программы файл IOAVR.h. Пришлось руками набить все нужные ресурсы.
Вроде бы и не сложно, но как-то не красиво. Высока вероятность ошибки, которую ух как долго придётся искать.
Как исключить конфликты между стандартными определениями портов и своими собственными?
Заранее спасибо!

Сообщение отредактировал IgorKossak - Jun 15 2014, 19:46
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
x893
сообщение Jun 13 2014, 19:45
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 333
Регистрация: 27-10-08
Из: Планета Земля
Пользователь №: 41 226



То что раньше не ругался - это не означает, что это правильно.
armcc говорит о куче ошибок после gcc - это не значит что это ошибки - но это нарушение стандарта.
Старые компиляторы конечно проверяют меньше, но если написано правильно (или исправлено), то новые нормально компилируют. Я стараюсь так писать код, что бы даже предупреждений не было. Но 90% писателей строчат так, что только на том, на чем они строчили - на том и компилируется, а на другом компиляторе тысячи ошибок.
Дело личное каждого, как делать.
Двойные определения конечно упрощают жизнь (кто последний тот и прав), но если нарушится порядок - всё слетит.
Поэтому разработчики компиляторов и стараются как-то упростить жизнь писателям кодов.

Сообщение отредактировал x893 - Jun 13 2014, 19:45
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 11:46
Рейтинг@Mail.ru


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