اطلاعیه

Collapse
No announcement yet.

کامپایلر IAR

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

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

    من در حال حاضر با نرم افزار Proteus هیچ فعالیتی انجام نمی دهم. اما تا جایی که به خاطر دارم، فایل با پسوند d90 در مسیر debug در این نرم افزار قابل شناسایی است. تفاوت مدهای Debug و Release هم در نوع فایل های تولید شده توسط پروژه است. چنانکه فایل های تولید شده در مد Debug مناسب استفاده برای شبیه ساز است. در همین رابطه اگر به غیر از اطلاعات موجود در flash، در eeprom هم اطلاعات اولیه ای وجود داشته باشد، در مد Debug در صورت فعال سازی خروجی Hex خطایی ایجاد می شود که در پست های قبل در مورد آن توضیح داده شده است. در این شرایط باید یا از شبیه ساز برای پروگرام کردن این دو نوع حافظه استفاده شود و یا مد Release انتخاب شود که برای هر نوع حافظه فایل Hex مجزایی را تولید می کند.
    اوژن: به معنای افکننده و شکست دهنده است
    دانایی، توانایی است-Knowledge is POWER
    برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
    وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
    قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
    اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
    ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

    دیدگاه


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

      در ورژن 6.3(جدید) iar با atxmega64a3 (ویندوز XP)پس از کامپایل خطای زیر صادر می شود:
      Error[e183]: Static overlay map generation (-xo) is not supported for the A90 processor.

      پس از برداشتن تیک Static overlay map generation خطا صادر نمی شود ولی مقدار stack مصرف شده از map حذف میشود.
      این مشکل در ورژن 6.1 وجود نداشت. پروژه ای که قبلا با ورژن 6.1 مشکل نداشت در ورژن 6.3 بدون تغییر فقط کامپایل شد اما باز خطا صادر میشود.

      همین ورژن(6.3) برروی کامپیوتر دیگری با ویندوز XP تست شد هیچ خطایی صادر نگردید. دوستان راهکاری برای برطرف نمودن مشکل فوق دارند؟
      با سپاس

      دیدگاه


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

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

        دیدگاه


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

          نوشته اصلی توسط طراح
          یکبار پروژه را از ابتدا در نسخه بالاتر تشکیل دهید و از import کردن پروژه های نسخه پائین تر خودداری کنید.
          ویندوز 7 را نصب کردم بلافاصله IAR6.3 رانصب کردم و پروژه را دوباره تشکیل دادم باز مشکل برقرار بود.

          دیدگاه


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

            سلام خدمت همگی
            توی کدویژن وقتی می خواستیم عدد 3 رو به صورت 0003 درون یک char بریزیم توی sprintf به جای d% باید می نوشتیم 04d% اما توی IAR همچین چیزی رو قبول نمی کنه.
            آیا راه جایگزینی هست؟

            دیدگاه


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

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

              دیدگاه


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

                سلام
                من وقتی توی sprintf می نویسم:
                کد:
                sprintf(Utemp,"adc=%04d",sevenseg);
                متغیر sevenseg مثلا برابر با 100 هستش
                به جای اینکه بیاد adc=0100 رو توی Utemp بریزه میاد adc=04d رو توش میریزه
                راه حل چیست؟ می خوام sevenseg هرچی که باشه به صورت 4 رقمی نشون داده بشه

                دیدگاه


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

                  بر اساس سوال شما حاصل عملکرد چند دستور زیر را در برنامه در سیمولاتور IAR بررسی کردم که بعد از اجرای دستور sprintf در آرایه Utemp کارکترهای اسکی معادل adc=0100 قرار می گیرد و عملکرد آن صحیح است:

                  کد:
                  char Utemp[9];
                  unsigned char sevenseg=100;
                  sprintf(Utemp,"adc=%04d",sevenseg);
                  اوژن: به معنای افکننده و شکست دهنده است
                  دانایی، توانایی است-Knowledge is POWER
                  برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                  وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                  قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                  اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                  ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                  دیدگاه


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

                    نوشته اصلی توسط طراح
                    بر اساس سوال شما حاصل عملکرد چند دستور زیر را در برنامه در سیمولاتور IAR بررسی کردم که بعد از اجرای دستور sprintf در آرایه Utemp کارکترهای اسکی معادل adc=0100 قرار می گیرد و عملکرد آن صحیح است:

                    کد:
                    char Utemp[9];
                    unsigned char sevenseg=100;
                    sprintf(Utemp,"adc=%04d",sevenseg);
                    عجیبه
                    یعنی اشکال از کجامیتونه باشه؟
                    من آرایه ی Utemp رو در ادامه با تابع puts میفرستم به کامپیوتر(از طریق USARTC0) و اونجا مشاهده می کنم
                    توی فایل stdio.h در مورد sprintf اینجور اومده:
                    کد:
                    __PRINTFPR __ATTRIBUTES int sprintf(char *, const char *, ...);

                    دیدگاه


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

                      در مورد تابع sprintf ،آیا long را پشتیبانی می کند؟ اگر آره، کاراکتر فرمتش چی هستش؟

                      دیدگاه


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

                        نوشته اصلی توسط DesignerEng
                        در مورد تابع sprintf ،آیا long را پشتیبانی می کند ، اگر آره، کاراکتر فرمتش چی هستش.
                        متغیر Utemp به صورت زیر تعریف شده:
                        کد:
                        char  Utemp[48];
                        متغیر sevenseg هم به صورت زیر:
                        کد:
                        unsigned int sevenseg=0;
                        چه نیازی به فرمت long است؟
                        من فکر کنم این نسخه ای از IAR که استفاده می کنم اشکال داره. نسخه اینه:
                        کد:
                        IAR Assembler for AVR
                        5.50.0 (5.50.0.50277)

                        دیدگاه


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

                          نوشته اصلی توسط cyber68
                          متغیر Utemp به صورت زیر تعریف شده:
                          کد:
                          char  Utemp[48];
                          متغیر sevenseg هم به صورت زیر:
                          کد:
                          unsigned int sevenseg=0;
                          چه نیازی به فرمت long است؟
                          من فکر کنم این نسخه ای از IAR که استفاده می کنم اشکال داره. نسخه اینه:
                          کد:
                          IAR Assembler for AVR
                          5.50.0 (5.50.0.50277)
                          سلام دوست عزیز
                          سوالی که مطرح کردم،در رابطه با مشکل خودم بود.
                          مشکل شما هم بررسی کردم با نسخه 6.3.3.1990 مشکلی نبود. احتمالا نسخه شما ایراد داره.

                          دیدگاه


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

                            نوشته اصلی توسط DesignerEng
                            در مورد تابع sprintf ،آیا long را پشتیبانی می کند؟ اگر آره، کاراکتر فرمتش چی هستش؟
                            پاسخ مثبت است و بسته به signed یا unsigned بودن عدد می توانید از ld% و li% برای علامت دار و lu% برای بدون علامت استفاده کنید.
                            اوژن: به معنای افکننده و شکست دهنده است
                            دانایی، توانایی است-Knowledge is POWER
                            برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                            وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                            قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                            اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                            ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                            دیدگاه


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

                              نوشته اصلی توسط شهریار رجب زاده
                              بالاخره مشکلش حل شد و من تونستم یه چراغ چشمک زن بسازم :wow: :mrgreen:
                              یه سوال جناب طراح
                              بعد از هر بار مقدار دهی به رجیستر Toggle سیکل بعدی مقدار آن صفر میشود؟
                              سوال بعد اینکه IAR چه کتابخانه هایی دارد؟برای LCD؟اگر ندارد چطور میتوان کتابخانه نوشت؟
                              با تشکر از آموزش های خوبتون انشاالله بعد از اینکه تونستم به طور کامل با IAR کار کنم یک PDF خوب راجع به همین موضوع و آموزش قدم به قدم میگذارم
                              سلام . چطوری حل شد منم همین مشکلو دارم !! :cry2:

                              دیدگاه


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

                                سلام
                                چرا وقتی میخواهم SIMULATION انجام بدم با این ارور مواجه میشم ؟


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

                                دیدگاه

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