Доброго времени суток уважаемым.
Поясните плз. на какие грабли я наступил в ситуации.
проект на меге644па переехал с IAR5.5 на IAR 6.11.1 (месный).
до переезда вроде работало все.. ну да это к делу не относится.
в общем есть тривиальная функция печати на дисплей
CODE
.......................
#include <stdio.h>
#include <dlib/c/pgmspace.h>
#include <string.h>
..................................
void _put(char c,void* p)
{
............................
printer_t* sc = (printer_t*)p;
............................
char_t symbol;
symbol.data = c;
uc1601_char(sc->drv,&sc->pts,&symbol);
}
void uc1601_print(printer_t* sc,const char __flash *pcFmt,...)
{
................................
//! print formatted
va_list ap;
va_start(ap,pcFmt);
_formatted_write_P(pcFmt,_put,(void*)sc,&ap);
va_end(ap);
}
ну и xcl как то так
Код
-e_PrintfSmall=_Printf
-e_small_write=_formatted_write
-e_small_write_P=_formatted_write_P
-e_ScanfSmall=_Scanf
-e_medium_read=_formatted_read
-e_medium_read_P=_formatted_read_P
линкуется это все с либой dlAVR-3s-ec_mul-sf-n.r90
в результате - получаю сообщение линкера
Код
Warning[w6]: Type conflict for external/entry "_small_write_P", in module printer against external/entry in module ?_small_write_P; function types differ in parameter 4; different composite type kinds
а на LCD печатаются строки формата....
подскажите плз. в чем грабли.
Заранее спасибо.
Сообщение отредактировал IgorKossak - Mar 15 2012, 08:13
Причина редактирования: [code] для короткого кода
однако..