اطلاعیه

Collapse
No announcement yet.

کامپایلر IAR

Collapse
این موضوع برجسته شده است.
X
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    پاسخ : کامپایلر IAR

    روش وارد شدن به سیمولاتور c-spy در پست زیر توضیح داده شده است:

    http://www.eca.ir/forum2/index.php?t...8692#msg548692
    اوژن: به معنای افکننده و شکست دهنده است
    دانایی، توانایی است-Knowledge is POWER
    برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
    وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
    قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
    اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
    ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

    دیدگاه


      پاسخ : پاسخ : کامپایلر IAR

      نوشته اصلی توسط طراح
      روش وارد شدن به سیمولاتور c-spy در پست زیر توضیح داده شده است:

      http://www.eca.ir/forum2/index.php?t...8692#msg548692
      تشکر از پاسخ شما
      چرا وقتی از Debug without downloading استفاده میکنم به این مشکل مواجه میشم ؟!

      سوال دیگه اینکه، دوستان کسی از plug in های iAR استفاده کرده ؟
      آیا پاور پک هایی که اینجا http://www.eca.ir/forum2/index.php?topic=52164.msg273770#msg273770
      قرار دادند با ورژن 6 مطابقت داره ؟
      این C-RUN – Runtime Analysis و IAR visualSTATE چه کاربردی دارند ؟
      نسخه کرک این 2 موجود هست ؟

      تشکر
      از جمله ی رفتگان این راه دراز
      باز آمده ای کو که به ما گوید راز
      هان بر سر این دو راهه از روی نیاز
      چیزی نگذاری که نمی آیی باز

      دیدگاه


        پاسخ : کامپایلر IAR

        برای وارد شدن به محیط سیمولاتور بر مبنای کدهای جاری باید از گزینه Download and Debug استفاده کنید. در مورد لینک هایی که قرار داده اید، علاوه بر اینکه لینک ها عمل نمی کنند، ظاهرا مربوط به نسخه IAR برای ARM هستند که با نسخه مورد بحث این تاپیک متفاوت است.
        اوژن: به معنای افکننده و شکست دهنده است
        دانایی، توانایی است-Knowledge is POWER
        برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
        وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
        قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
        اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
        ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

        دیدگاه


          میزان ram و flash مصرفی توسط IAR

          سلام

          چطور میشه فهمید چند درصد از Ram یا flash در برنامه IAR استفاده شده است .


          تشکر
          از جمله ی رفتگان این راه دراز
          باز آمده ای کو که به ما گوید راز
          هان بر سر این دو راهه از روی نیاز
          چیزی نگذاری که نمی آیی باز

          دیدگاه


            پاسخ : میزان ram و flash مصرفی توسط IAR

            در option\linker تب list گزینه Generate linker listing را فعال نمایید . پس از کامپایل دوباره در منوی راست از فولدر output اصلی فایل با پسوند map را باز نمایید.

            دیدگاه


              پاسخ : کامپایلر IAR

              وقت بخیر

              ممنون میشم برای این هشدار کمپایلر IAR منو راهنمایی کنید !

              کد:
              Warning[Pa089]: enumerated type mixed with another enumerated type D:\mypro\iar55\lcdfm\main.c 30
              به این خط از برنامه

              کد:
               PORTC_PIN2CTRL=PORT_OPC_PULLDOWN_gc|PORT_ISC_RISING_gc;
              بنظر خودم دو نوع تعریف در ساختارها در هم ترکیب شده و استفاده شده ولی نمیتونم تشخیص بدم کدام هستند و چطور میشه اصلاحش کرد ؟؟!!

              دیدگاه


                پاسخ : کامپایلر IAR

                برای نمونه کدی که قرار داده داده اید و موارد نظیر آن که از دو مقدار مختلف برای مقدار دهی استفاده شده که قبلا typedef شده اند، یک warning از طرف کامپایلر ایجاد می شود که مشکل خاصی را در عمل ایجاد نمی کند.
                اوژن: به معنای افکننده و شکست دهنده است
                دانایی، توانایی است-Knowledge is POWER
                برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                دیدگاه


                  پاسخ : کامپایلر IAR

                  نوشته اصلی توسط taktrashe
                  وقت بخیر

                  راه اندازی "TFT7 با درایور SSD1963 توسط ATXMEGA32A4 با دیتا 8 بیتی !!

                  برای دوستان و علاقمندان این تاپیک این برنامه رو که اخیرا نوشتم و تست کردم و جواب گرفتم قرار میدم .!
                  در حالت 2Mhz رفرش طولانی است و حدود 10 ثانیه ولی در فرکانس 32Mhz نسبتا خوب و زیر 1 ثانیه است .
                  البته در این نمونه برنامه که با IAR6.4 تهیه شده فقط رفرش رنگ قرار داده شده .

                  کد:
                  //in date 93.07.20 in my office time 13:45
                  //start project TFT 7 inch in 8 pin data port !
                  
                  #include"avr_compiler.h"
                  
                  #define DATAPORT PORTC.OUT //PORTC pin0~7 =D0-7 ssd1963 driver tft 7 inch
                  #define CONPORT PORTB
                  
                  #define RS    PIN0_bm    //PORTB pin0 = RS ssd1963 driver tft 7 inch
                  #define CS    PIN1_bm    //PORTB pin1 = CS ssd1963 driver tft 7 inch
                  #define RD    PIN2_bm    //PORTB pin2 = RD ssd1963 driver tft 7 inch
                  #define WR    PIN3_bm    //PORTB pin3 = WR ssd1963 driver tft 7 inch
                  
                  #define RT    PIN3_bm    //PORTD pin3 rest ssd1963 driver tft 7 inch 
                  #define RT2   PIN4_bm    //PORTD pin4 (for test one refresh time )
                  
                  
                  #define sbi2(pin) PORTD.OUTSET = pin
                  #define cbi2(pin) PORTD.OUTCLR = pin
                  
                  #define sbi(pin) CONPORT.OUTSET = pin
                  #define cbi(pin) CONPORT.OUTCLR = pin
                  #define pulse_high(pin) sbi(pin); cbi(pin);
                  #define pulse_low(pin) cbi(pin); sbi(pin);
                  
                  void TFT_WRITE_COM(char VL)
                  {// cbi(CS);
                    cbi(RS);
                    DATAPORT = VL;
                    pulse_low(WR);
                  //  sbi(CS);
                  }
                  
                  void TFT_WRITE_DATA(char VL)
                  { // cbi(CS);
                    sbi(RS);
                    DATAPORT = VL;
                    pulse_low(WR);
                  //  sbi(CS); 
                  }
                  
                  
                  int fcolorr = 0;
                  int fcolorg = 0;
                  int fcolorb = 0;
                  int bcolorr = 0;
                  int bcolorg = 0;
                  int bcolorb = 0;
                  
                  
                  void SetColor(int r, int g, int b)
                  {
                    fcolorr = r;
                    fcolorg = g;
                    fcolorb = b;
                  }
                  
                  void SetBackground(int r, int g, int b)
                  {
                    bcolorr = r;
                    bcolorg = g;
                    bcolorb = b;
                  }
                  
                  
                  void clrxy(void)
                  {
                  //  Setxy(0, 0, 800, 480);
                    TFT_WRITE_COM(0x2A);
                   
                    TFT_WRITE_DATA(0x00);
                    TFT_WRITE_DATA(0x00);
                    TFT_WRITE_DATA(0x03); //799 dec = 0x031f
                    TFT_WRITE_DATA(0x1f);
                  
                    TFT_WRITE_COM(0x2B);
                    TFT_WRITE_DATA(0x00);
                    TFT_WRITE_DATA(0x00);
                    TFT_WRITE_DATA(0x01); //479 dec = 0x01df
                    TFT_WRITE_DATA(0xdf);
                  
                  }
                  
                  void clrScr(void)
                  {
                    int i;
                    int j;
                    cbi(CS);
                    clrxy();   //define all screen 0,0,800,480
                  
                    TFT_WRITE_COM(0x2C);//write Memory Start
                  
                    for (j=0; j<480; j++)
                    {
                     for(i=0; i<800; i++)
                     {
                       TFT_WRITE_DATA(bcolorr);
                       TFT_WRITE_DATA(bcolorg);
                       TFT_WRITE_DATA(bcolorb);
                     }
                    }
                    sbi(CS);
                   }
                  
                  //2MHz T=0.5us
                  #define usec 2
                  
                  void TFTinit(void)
                  {
                    sbi2(RT);
                    sbi(CS);
                    sbi(RD);
                    sbi(WR);
                    sbi(RS);
                  __delay_cycles(5*usec);    //10 usec delay
                    cbi2(RT);
                  __delay_cycles(15*usec);    //10 usec delay
                    sbi2(RT);
                  __delay_cycles(15*usec);    //10 usec delay
                    cbi(CS);
                  __delay_cycles(10*usec);    //10 usec delay
                  
                    TFT_WRITE_COM(0xE2);  //Set PLL
                    TFT_WRITE_DATA(0x23);  //m=35
                    TFT_WRITE_DATA(0x01);  //n=2
                    TFT_WRITE_DATA(0x04);  //Use MN values
                  __delay_cycles(100*usec);    //10 usec delay
                    
                    TFT_WRITE_COM(0xE0);  //Start PLL at 103Mhz
                    TFT_WRITE_DATA(0x01);
                  
                  __delay_cycles(100*usec);    //10 usec delay
                    TFT_WRITE_COM(0xE0);  //Enable PLL
                    TFT_WRITE_DATA(0x03);
                  __delay_cycles(100*usec);    //10 usec delay
                    TFT_WRITE_COM(0x01);  //software reset
                  __delay_cycles(100*usec);    //10 usec delay
                    TFT_WRITE_COM(0xE6);  //PCLK speed based off PLL Freq 33Mhz
                    TFT_WRITE_DATA(0x04); //set new to 34.33 MHZ
                    TFT_WRITE_DATA(0x93);
                    TFT_WRITE_DATA(0xe0);
                    
                  __delay_cycles(100*usec);    //10 usec delay
                    TFT_WRITE_COM(0xB0);  //LCD Spcifications
                    TFT_WRITE_DATA(0x00);
                    TFT_WRITE_DATA(0x00);
                    TFT_WRITE_DATA(0x03);  //Set HDP 799
                    TFT_WRITE_DATA(0x1F);
                    TFT_WRITE_DATA(0x01);  //Set VDP 479
                    TFT_WRITE_DATA(0xDF);
                    TFT_WRITE_DATA(0x00);
                  
                  __delay_cycles(100*usec);    //10 usec delay
                    TFT_WRITE_COM(0xB4);  //HSYNC
                    TFT_WRITE_DATA(0x03);  //Set HT 1000
                    TFT_WRITE_DATA(0xE8);
                    TFT_WRITE_DATA(0x00);  //Set HPS 51
                    TFT_WRITE_DATA(0x33);
                    TFT_WRITE_DATA(0x08);  //Set HPW 8
                    TFT_WRITE_DATA(0x00);  //Set LPS 3
                    TFT_WRITE_DATA(0x03);
                    TFT_WRITE_DATA(0x00);
                  
                  __delay_cycles(100*usec);    //10 usec delay
                    TFT_WRITE_COM(0xB6);  //VSYNC
                    TFT_WRITE_DATA(0x02);  //Set VT 530
                    TFT_WRITE_DATA(0x12);
                    TFT_WRITE_DATA(0x00);  //Set VPS 24
                    TFT_WRITE_DATA(0x18);
                    TFT_WRITE_DATA(0x03);  //Set VPW 03
                    TFT_WRITE_DATA(0x00);  //Set FPS 23
                    TFT_WRITE_DATA(0x17);
                  
                  __delay_cycles(100*usec);    //10 usec delay
                    TFT_WRITE_COM(0xBA);
                    TFT_WRITE_DATA(0x05);  //GPIO[3:0] out 1
                  
                  __delay_cycles(100*usec);    //10 usec delay
                    TFT_WRITE_COM(0xB8);
                    TFT_WRITE_DATA(0x07);  //GPIO=Input, GPIO[2:0]=output
                    TFT_WRITE_DATA(0x01);  //GPIO0 Normal
                  
                  __delay_cycles(100*usec);    //10 usec delay
                    TFT_WRITE_COM(0x36);  //Rotation
                    TFT_WRITE_DATA(0x08);
                  
                  __delay_cycles(100*usec);    //10 usec delay
                    TFT_WRITE_COM(0xF0);  //Set pixle interface
                    TFT_WRITE_DATA(0x00);    //no chande 8 bit mode
                  //  _delay_us(1);
                  __delay_cycles(10*usec);    //10 usec delay
                    TFT_WRITE_COM(0x29);  //Turn LCD On
                  
                  __delay_cycles(10*usec);    //10 usec delay
                    TFT_WRITE_COM(0xBE);  //Set BL
                    TFT_WRITE_DATA(0x06);
                    TFT_WRITE_DATA(0x80);
                  __delay_cycles(10*usec);    //10 usec delay
                    TFT_WRITE_DATA(0x01);
                    TFT_WRITE_DATA(0xF0);
                    TFT_WRITE_DATA(0x00);
                    TFT_WRITE_DATA(0x00);
                  
                  __delay_cycles(10*usec);    //10 usec delay
                    TFT_WRITE_COM(0xD0);
                    TFT_WRITE_DATA(0x0D);
                  
                  __delay_cycles(10*usec);    //10 usec delay
                    sbi(CS);
                    SetColor(255,255,255);
                    SetBackground(200,255,0);
                  
                    clrScr();
                  }
                  
                  
                  
                  
                  int main( void )
                  {
                   
                  __delay_cycles(1000*usec);    //10 usec delay
                  
                   // Set RC32M as clock source
                   OSC_CTRL|=OSC_RC32MEN_bm;
                   while(!(OSC_STATUS & OSC_RC32MRDY_bm));
                   CCP=CCP_IOREG_gc;
                   CLK_CTRL=CLK_SCLKSEL_RC32M_gc;
                  
                   PORTC.DIR=0xff;    //all port pin are output
                   PORTB.DIR=0xff;    //all port pin are output
                   
                   PORTD.DIRSET=PIN3_bm; //port D pin 3 is for RT
                   PORTD.DIRSET=PIN4_bm; //port D pin 3 is for RT
                  
                   TFTinit();
                   
                   while(1)
                   {
                    sbi2(RT2);
                  
                    SetBackground(0,0,0);
                    clrScr();
                  
                    cbi2(RT2);
                  
                    SetBackground(40,55,0);
                    clrScr();
                  
                    SetBackground(255,255,255);
                    clrScr();
                   }
                  }
                  دوست گرامی امکان دارد لینک دانلود کرک iar6.4 را جهت دانلود در تالار قرار دهید؟

                  دیدگاه


                    پاسخ : کامپایلر IAR

                    وقت بخیر

                    این پک رو از فروشگاه خرید کردم دوست عزیز ! (ECA)

                    دیدگاه


                      پاسخ : کامپایلر IAR

                      شما میتونید از لینک زیر دانلود کنید :
                      http://77.72.21.42/IAR/
                      با اطلاعات زیر :
                      username : budka
                      password : anka

                      بعد برید تو این لینک : EWAVR-640.3-license/

                      نرم افزار های دیگه از کمپانی IAR رو هم میتونید دانلود کنید.

                      دیدگاه


                        پاسخ : کامپایلر IAR

                        با سلام دوستان من برا AVR از IAR استفاده کردم بدون هیچ مشکلی اما برا ARM مشکل زیادی دارم کد که
                        مینویسم کامپایل میکنه کد هگز هم میده ولی وقتی میخوام پروگرام کنم J-linkمیگه کد مشکل داره فیکسش کنم؟
                        اگه ok کنم پروگرام کنم مدار ج نمیده لازم به ذکره من همون کد و با کمی تغییر جهت سازگاری داخل Keil uVision4 مینویسم خیلی عالی جواب میده مشکل کارم کجاس؟
                        جهان پیر است و بی بنیاد ازاین فرهاد کش فریاد
                        که کرد افسون و نیرنگش ملول از جان شیرینم

                        دیدگاه


                          پاسخ : کامپایلر IAR

                          چک کن توی option>linker>output قسمت output file پسوندش hex. باشه و قسمت output format روی intel-standard باشه.

                          دیدگاه


                            پاسخ : کامپایلر IAR

                            نوشته اصلی توسط "میلاد"
                            چک کن توی option>linker>output قسمت output file پسوندش hex. باشه و قسمت output format روی intel-standard باشه.
                            چک کردم درسته اینم برنامم
                            [tt]#include <Atmel/ioat91sam7s256.h>
                            void delay (void);
                            void main ()
                            {
                            //--------------------start up--------------------------
                            AT91C_BASE_WDTC->WDTC_WDMR = AT91C_WDTC_WDDIS; // AT91C_WDTC_WDDIS=(1<<15)
                            AT91C_BASE_RSTC->RSTC_RMR=0xA5000001;
                            //--------------------speed up--------------------------
                            AT91C_BASE_CKGR->CKGR_MOR = 0xF01;
                            AT91C_BASE_CKGR->CKGR_PLLR = 0x2903FFC;
                            AT91C_BASE_PMC->PMC_MCKR = 0x3;
                            AT91C_BASE_PMC->PMC_SCER = 0x1;
                            //-----------------------------------------------------
                            AT91C_BASE_PMC->PMC_PCER = ( 1<<AT91C_ID_PIOA ); // AT91C_ID_PIOA=2
                            //------------------------------------------------------
                            AT91C_BASE_PIOA->PIO_PER=(1<<0|1<<1|1<<2|1&lt ;<3);
                            AT91C_BASE_PIOA->PIO_OER=(1<<0|1<<1|1<<2|1&lt ;<3);
                            AT91C_BASE_PIOA->PIO_SODR=(1<<0|1<<1|1<<2|1&l t;<3);
                            while(1)
                            {
                            delay();
                            AT91C_BASE_PIOA->PIO_SODR=(1<<3);
                            AT91C_BASE_PIOA->PIO_CODR=(1<<0);
                            delay();
                            AT91C_BASE_PIOA->PIO_SODR=(1<<0);
                            AT91C_BASE_PIOA->PIO_CODR=(1<<1);
                            delay();
                            AT91C_BASE_PIOA->PIO_SODR=(1<<1);
                            AT91C_BASE_PIOA->PIO_CODR=(1<<2);
                            delay();
                            AT91C_BASE_PIOA->PIO_SODR=(1<<2);
                            AT91C_BASE_PIOA->PIO_CODR=(1<<3);
                            }
                            }
                            void delay (void)
                            {
                            unsigned int i,j;
                            for (i=0;i<1000000;i++)
                            for(j=0;j<1000000;j++);
                            }[/tt]
                            خروجی هگز دارم اما صحیح نیست
                            جهان پیر است و بی بنیاد ازاین فرهاد کش فریاد
                            که کرد افسون و نیرنگش ملول از جان شیرینم

                            دیدگاه


                              پاسخ : کامپایلر IAR

                              لینکر iar برای هر قطعه نیاز به یک فایل با پسوند xcl داره . باید این فایلو برای قطعت از داخل یکی از مثال های خود iar (نمی دونم برای قطعت مثال داره یا نه) یا از داخل یه پروژه آماده توی اینترنت پیدا کنی و توی مسیر پروژت کپی کنی. بعد میری option>linker>config تیک override default رو می زنی و اینجوری محل فایلتو بهش اعلام می کنی:
                              کد:
                              $PROJ_DIR$\filename.xcl
                              که منظور از filename اسم فایل xcl که گرفتی.

                              دیدگاه


                                پاسخ : کامپایلر IAR

                                نوشته اصلی توسط "میلاد"
                                لینکر iar برای هر قطعه نیاز به یک فایل با پسوند xcl داره . باید این فایلو برای قطعت از داخل یکی از مثال های خود iar (نمی دونم برای قطعت مثال داره یا نه) یا از داخل یه پروژه آماده توی اینترنت پیدا کنی و توی مسیر پروژت کپی کنی. بعد میری option>linker>config تیک override default رو می زنی و اینجوری محل فایلتو بهش اعلام می کنی:
                                کد:
                                $PROJ_DIR$\filename.xcl
                                که منظور از filename اسم فایل xcl که گرفتی.
                                فایل *.icf رو قبول میکنه که دادم بهش حل نشد
                                جهان پیر است و بی بنیاد ازاین فرهاد کش فریاد
                                که کرد افسون و نیرنگش ملول از جان شیرینم

                                دیدگاه

                                لطفا صبر کنید...
                                X