چه کامپایلری برای میکروکنترلر AVR انتخاب کنم ؟ ( زبان برنامه نویسی C )

مقایسه کامپایلر های  C برای  AVR

 

آنالیز و مقایسه انواع کامپایلر از نظر حجم خروجی برای این نمونه کد :

 

voidDelay(void)

{

    unsigned char a, b;

    for (a =1;a;a++)

        for (b =1;b;b++)

            ;

}

 

voidLED_On(int i)
{
    PORTB=~(1<<i);
    Delay();

}

 

voidmain(void)

{

    int i;

    MCUCR=0x00;

    DDRB =0xFF;

    PORTB =0xFF;

    while (1)

    {

        for (i =0;i <8;i++)

            LED_On(i);

        for (i =8;i >0;i--)

            LED_On(i);

        for (i =0;i <8;i +=2)

            LED_On(i);

        for (i =7;i >0;i -=2)

            LED_On(i);

     }

}

حجم کد خروجی :

 

 

Compiler

Code Size(byte)

IAR

413

ICCAVR

311

CodeVisionAVR

327

AtmanAvr(GCC)

211

KEIL51

136

 

Note: For KEIL51 Change 'PORTB' for 'P1'. For AtmanAvr Change 'void main' for 'int main'.

 

مقایسه حجم و سرعت اجرای کد محاسباتی اعشاری :

 

voidmain(void)

{

    float x,y,z;

    x = 1.0;

    y = 2.0;

    z = sin(x+y);

}

با کریستال8MHz

 

Compiler

Code Size(byte)

Running Time

Efficiency

IAR

1237

747.5us

7.09

ICCAVR

1991

950.75us

5.58

CodeVisionAVR

1267

521us

10.17

AtmanAvr(GCC)

1292

728.25us

7.28

KEIL51

1403

5.301ms

1

Note: For AtmanAvr Change 'void main' for 'int main'.

منبع : http://www.atmanecl.com/EnglishSite/CCCE.htm

field_vote: 
امتیاز شما : هیچ
3
4 votes