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

 
 
 
Closed TopicStart new topic
> formatted print
lutik
сообщение Mar 15 2012, 07:59
Сообщение #1


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

Группа: Свой
Сообщений: 128
Регистрация: 30-06-04
Из: Odessa
Пользователь №: 216



Доброго времени суток уважаемым.

Поясните плз. на какие грабли я наступил в ситуации.

проект на меге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] для короткого кода


--------------------
однако..
Go to the top of the page
 
+Quote Post
Палыч
сообщение Mar 15 2012, 08:44
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(lutik @ Mar 15 2012, 11:59) *
в результате - получаю сообщение линкера

В строке
Код
    _formatted_write_P(pcFmt,_put,(void*)sc,&ap);
Амперсанд при последнем параметре - лишний
Go to the top of the page
 
+Quote Post
lutik
сообщение Mar 15 2012, 15:18
Сообщение #3


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

Группа: Свой
Сообщений: 128
Регистрация: 30-06-04
Из: Odessa
Пользователь №: 216



Цитата(Палыч @ Mar 15 2012, 11:44) *
Амперсанд при последнем параметре - лишний


как ето лишний...?????

без него и компилиться не будет, и более того, не компилится. и в прототипе - последний параметр - указатель на va_list


--------------------
однако..
Go to the top of the page
 
+Quote Post
lutik
сообщение Mar 16 2012, 11:37
Сообщение #4


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

Группа: Свой
Сообщений: 128
Регистрация: 30-06-04
Из: Odessa
Пользователь №: 216



закрываем тему - нефига линковать и clib и dlib одновременно..

когда-то давно провтыкал в мейке и вписал линковку обеих либ..
и забыл закоментить. как ни странно - с более старыми версиями
линкера иаровского - канало. но вот пришло, видимо, время и
пришлось перелопатить мейк файл.


--------------------
однако..
Go to the top of the page
 
+Quote Post

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

 


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


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