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

 
 
> Странность при компиляции
Sirko
сообщение Feb 15 2011, 23:12
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 245
Регистрация: 15-08-07
Пользователь №: 29 795



Вернее сказать странность некомпиляции.

Код
for(;;){
    evenFlag.Wait();
    u08 *data;
    u08 length = UART1_IsReceptionCompleate(data);

    UART1_TransmitData(data, length);

    u08 dataWeight[] = {0x03, 0x04, 0x76, 0xC1, 0x00, 0x02};
    UART0_TransmitData(dataWeight, 6);
    OS::Sleep(10);
    length = UART0_IsReceptionCompleate(data);
//    data[0] = 0;    
}

Вероятно я чего-то недопонимаю, но логики не вижу.
Суть проблемы в следующем:
если разкоментарить последнюю строчку, то все замечательно собирается. Но если переменная data не используется, то получается вот такая вот ерунда:
c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o: In function `__vector_default':
(.vectors+0x80): relocation truncated to fit: R_AVR_13_PCREL against symbol `__vector_32' defined in .text.__vector_32 section in obj/Signal_UART.o
make: *** [exe/event_flag.elf] Error 1
Build failed with 1 errors and 6 warnings...
Причем не имеет значения, какие действия над переменной будут производиться, важен сам факт использования переменной data после строки "length = UART0_IsReceptionCompleate(data);".
Makefile взят из примера scmRTOS прот GCC

Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 20th June 2025 - 08:11
Рейтинг@Mail.ru


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