avr-gcc

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Russian to

Threaded View
Пpивет All !

Hачал разбираться с сабжем и накатал вот такую простенькую программку:

*#────────────────── begin of Windows Clipboard ──────────────────#*
#include "stdio.h"

int main(void)
{
    volatile unsigned char a;
    a = 3;
    printf("is test now %d", a);
}
*#─────────────────── end of Windows Clipboard ───────────────────#*

Все нормально,  она компилируется,  но есть пару вопросов:
1. Что ознчает варнинг и как от него избавиться.
*#────────────────── begin of Windows Clipboard ──────────────────#*
main.c:7: warning: concatenation of string literals with __FUNCTION__ is
deprecated
*#─────────────────── end of Windows Clipboard ───────────────────#*
2. Я использую флаги для минимизациии printf. При этом размер кода составляет
2006
*#────────────────── begin of Windows Clipboard ──────────────────#*
-Wl,-u,vfprintf -lprintf_min
*#─────────────────── end of Windows Clipboard ───────────────────#*
Тот же код в IAR имеет размер около 800 байт. Есть ли возможность еще уменьшить
размер в avr-gcc (стоит оптимизация  -Os)?

С наилучшими пожеданиями,
    Сергей.
                            [ЭПУ,  ЛЭТИ]

avr-gcc
Hello Sergey.

10 Sep 03 12:58, you wrote to all:

 SN> Hачал разбираться с сабжем и накатал вот такую простенькую программку:

 SN> *#────────────────── begin of Windows Clipboard ──────────────────#*
 SN> #include "stdio.h"

 SN> int main(void)
 SN> {
 SN>     volatile unsigned char a;
 SN>     a = 3;
 SN>     printf("is test now %d", a);
 SN> }
 SN> *#─────────────────── end of Windows Clipboard ───────────────────#*

 SN> Все нормально,  она компилируется,  но есть пару вопросов:
 SN> 1. Что ознчает варнинг и как от него избавиться.

 SN> main.c:7: warning: concatenation of string literals with __FUNCTION__
 SN> is deprecated

Чего-то про то, что слияние строк с __FUNCTION__ устарело, и может быть убрано
в последующих версиях компиятора.


 SN> 2. Я использую флаги для минимизациии printf.
 SN> При этом размер кода составляет 2006 *#────────────────── begin of
 SN> Windows Clipboard ──────────────────#* -Wl,-u,vfprintf
 SN> -lprintf_min *#─────────────────── end of Windows Clipboard
 SN> ───────────────────#* Тот же код в IAR имеет размер около 800 байт.
 SN> Есть ли возможность еще уменьшить размер в avr-gcc (стоит оптимизация
 SN> -Os)?

Да. Hаписать свой lprintf_supermini и линковать c ним. Hо меньше чем 1100
байт не получится.

Вообще, все библиотечные функции берутся из avr-libc. Если не нравится их
размер или как они работают не используй их или исправляй avr-libc

Собственно, минимальная программа на avr-gcc получается 98 байт. Дальше она
растет или за счет твоего кода, или библиотечного.

Alexey


Site Timeline