اطلاعیه

Collapse
No announcement yet.

کامپایلر IAR

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

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

    نوشته اصلی توسط طراح
    احتمالا مشکل ناشی از نسخه iar مورد استفاده است و می توانید از نسخه ای که لینک آن در یکی از تاپیک های همین انجمن وجود دارد استفاده کنید.
    ممنون از اینکه جواب دادین . لینک های داخل انجمن همه خراب هستند اگه شما سراغ دارید لطفا بدید
    اگه لطف کنین و یک بار تنظیمات مورد نیاز برای دیباگ کردن را بگید ممنون می شم

    دیدگاه


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

      نوشته اصلی توسط glassybox
      لینک های داخل انجمن همه خراب هستند اگه شما سراغ دارید لطفا بدید
      http://www.eca.ir/forum2/index.php?t...7064#msg407064

      نوشته اصلی توسط glassybox
      اگه لطف کنین و یک بار تنظیمات مورد نیاز برای دیباگ کردن را بگید ممنون می شم
      در مسیر Poject/Options/Linker/Output باید گزینه debug information for C-SPY را فعال کنید و بعد با زدن Ctrl+D وارد محیط Deugger می شوید.
      اوژن: به معنای افکننده و شکست دهنده است
      دانایی، توانایی است-Knowledge is POWER
      برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
      وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
      قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
      اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
      ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

      دیدگاه


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

        ممنون حل شد

        دیدگاه


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

          نوشته اصلی توسط طراح
          اگر تمام تیک ها در تولید فایل map فعال کرده باشید، در محتوای فایل مصرف CSTACK را در کلیه مراحل نشان می دهد و از این طریق می توان مقدار آن را در وضعیتی قرار داد که از حداکثر مقدار مصرف شده کمتر باشد.
          با سلام خدمت استاد کی نژاد
          بنده فایل map رو بررسی کردم در واقع آخرش همون مقدار stack ای که تو تنظیمات پروژه تعریف کردم رو آورده میخوام بدونم از کجا باید متوجه بشم این مقدار کافیه و یا احیانا کم نیست اگه لطف کنید با ذکر مثال توضیح بدید ممنون میشم
          با تشکر
          مشخصات من در لینک زیر
          http://www.eca.ir/forum2/index.php?topic=1721.msg698645#msg698645

          www.********

          دیدگاه


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

            دوست عزیز به این نمونه نگاه کنید :
            کد:
               | Stack used (prev) : 00000078 00000244
               | + function block : 00000003 0000004F
             <-Sub-tree of type: Function tree
              | Stack used     : 0000007B 00000293
            
            
            
            
                    ****************************************
                    *                   *
                    *   SEGMENTS IN ADDRESS ORDER    *
                    *                   *
                    ****************************************
            
            
            SEGMENT       SPACE  START ADDRESS  END ADDRESS   SIZE TYPE ALIGN
            =======       =====  =============  ===========   ==== ==== =====
            INTVEC        CODE     00000000 - 000001B3     1B4  com  1
            ?FILL1        CODE     000001B4 - 000001F3     40  rel  0
            CODE         CODE     000001F4 - 00000531     33E  rel  1
            FARCODE       CODE     00000532 - 0000B56D    B03C  rel  1
            <FAR_F> 1      CODE     0000B56E - 0000B5D8     6B  rel  0
            INITTAB       CODE     0000B5D9 - 0000B5F6     1E  rel  0
            HUGE_ID       CODE     0000B5F7 - 0000C5D0     FDA  rel  0
            ABSOLUTE       DATA        00000020           rel  0
                       DATA        00000034          
                       DATA        000001C0          
            RSTACK        DATA     00002000 - 00002257     258  dse  0
            NEAR_I        DATA        00002258           dse  0
            NEAR_Z        DATA     00002258 - 00004967    2710  rel  0
            CSTACK        DATA     00004968 - 00004D67     400  dse  0
            HUGE_I        DATA     00004D68 - 00005D41     FDA  rel  0
            HUGE_Z        DATA     00005D42 - 000079ED    1CAC  rel  0
            HUGE_N        DATA     000079EE - 00052155    4A768  rel  0
            EEPROM_I       XDATA     00000000 - 00000000      1  rel  0
            
                    ****************************************
                    *                   *
                    *    END OF CROSS REFERENCE    *
                    *                   *
                    ****************************************
            
             50 577 bytes of CODE memory (+ 64 range fill )
             328 022 bytes of DATA memory
                1 byte of XDATA memory
            
            Errors: none
            Warnings: none
            همونطور که میبینید این آخر یه نمونه فایل map هست. تو خط چهارم میبینید که مقدار 0x293 برای Cstack اومده.

            دیدگاه


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

              در تکمیل پست جناب امیر م، تو تنظیمات باید مقدار CSTACK رو برحسب هگزه قرار بدید یعنی همون عددی که اینجا نوشته اما مقدار RSTACK بر حسب LEVEL تعین میشه طوری که هر LEVEL معادل 2 بایت در نظر گرفته میشه یعنی اول معادل دسیمال رو بدست بیارید و بعد اون رو تقسیم بر 2 کنید.

              جناب امیر م ببخشید این 293 ، با توجه به ستونی که قرار گرفته RSTACK نیست؟

              دیدگاه


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

                دوستان می بخشید پا برهنه وسط بحث پریدم کسی لینک دانلود آخرین ورژن این کامپایلر رو داره ؟ اگه فایل آموزشی یا کتابی هم در این رابطه می شناسید معرفی کنید .
                با تشکر
                خداوند بی نهایت است اما به قدر نیاز تو فرود می آید ، به قدر آرزوی تو گسترده می شود و به قدر ایمان تو کارگشاست.
                [hr]

                دیدگاه


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

                  شما میتونید به این تاپیک مراجعه کنید. درمورد مرجع و راهنما هم قبلا صحبت شده ، که ماحصل اون راهنمای خود نرم افزار که به صورت PDF کامل و جامع هست و در خود IAR میتونید پیداش کنید.
                  http://www.eca.ir/forum2/index.php?topic=52164

                  دیدگاه


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

                    دوستان با اجازه از آقای کی نژاد من آموزش تصویری مراحل ایجاد یک پروژه در این کامپایلر رو می زارم و در ادامه هم یکسری سوال دارم که امیدوارم برای سایر دوستان نیز مفید باشه ( توضیحات همون توضیحات آقای کی نژاد است )

                    روش ایجاد پروژه در IAR برای کار با XMEGA یا AVR:

                    1 - بعد از نصب برنامه رو اجرا می کنیم .





                    2-بعد از اجرای نرم افزار از طریق منوی Project/Create new project یک پنجره باز می شود.







                    3-. در گزینه C یا ++C عبارت AVR Studio 4 compatible output را انتخاب کنید.



                    4-سپس پنجره ای باز می شود که محل ذخیره سازی فایل با پسوند ewp را می خواهد. برای یک پروژه جدید بهتر است فولدری متناسب با نام آن ایجاد و انتخاب شود و برای فایل مذکور هم نام مناسبی انتخاب شود.



                    5- در مرحله بعدی فایل main برنامه توسط کامپایلر ایجاد می شود.



                    6-سپس در Project/Options/General Options/Target/Processor configuration نوع میکروکنترلر مورد استفاده را انتخاب کنید.





                    7-. بعد از نوشتن نرم افزار مورد نظر در محیط کامپایلر، با زدن F7 پنجره ای باز می شود و محل ذخیره فایل با پسوند eww را سوال می کند. با انتخاب نام مناسب و محل فولدر تشکیل شده برای این پروژه، برنامه کامپایل می شود.
                    نکته :
                    (با مراجعه به نمونه کدهایی که در تاپیک دیگر این انجمن برای IAR نوشته شده می توان مشاهده کرد که در IAR نوع میکروکنترلر در متن برنامه ذکر نمی شود و بلکه در انتخاب های پروژه تعیین می شود. یک حسن بزرگ این مسئله این است که کدهای نوشته شده را می توان بدون هیچ تغییری برای شماره های مختلف بکار برد و تغییر نوع میکروکنترلر در متن برنامه منعکس نمی شود.
                    برای شناخت رجیسترهای داخلی شماره مورد نظر توسط برنامه، باید فایل header زیر در ابتدای برنامه include شود:

                    کد:
                    #include <ioavr.h>
                    اما با مراجعه به نمونه کدهای نوشته شده توسط atmel مشاهده می شود که بجای فایل ioavr.h فایلی با نام avr_compiler.h در ابتدای برنامه include شده است. دلیل این امر این است که این کدها بصورت مشترک برای هر دو کامپایلر IAR و GCC نوشته شده و در فایل اخیر header های لازم برای هر دو کامپایلر بسته به نوع آن include شده و برخی define های لازم هم انجام شده است.)







                    فایل خروجی با پسوند d90 توسط IAR برای نرم افزار AVR Studio قابل شناسایی خواهد بود.این فایل در فولدر Exe ذخیره می شود.

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

                    با تشکر از آقای کی نژاد جواب این سوال رو پیدا کردم :
                    (علاوه بر نسخه Release در همان نسخه Debug می توانید از مسیر Project/Options/Linker/Extra output گزینه Generate extra output file را فعال کنید و در گزینه output file نام فایل با پسوند hex و در output format گزینه intel standard یا ترجیحا intel extended را انتخاب کنید تا فایل Hex ایجاد شود.)

                    خداوند بی نهایت است اما به قدر نیاز تو فرود می آید ، به قدر آرزوی تو گسترده می شود و به قدر ایمان تو کارگشاست.
                    [hr]

                    دیدگاه


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

                      در مورد نحوه ایجاد فایل Hex در مد Debug در پست زیر توضیح داده شده است:

                      http://www.eca.ir/forum2/index.php?t...6265#msg276265

                      در مورد وجود خطا در مد Release هم جمله آخر در پست زیر را ببینید:

                      http://www.eca.ir/forum2/index.php?t...4278#msg474278

                      برای سایر سوالات مشابه هم توضیحات کافی در پست های ابتدایی تاپیک جاری و دو تاپیک بالا وجود دارد.

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

                      دیدگاه


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

                        یه سوال دیگه که جوابش رو نتونستم در این تاپیک و تاپیک های دیگه پیدا کنم :rolleyes:
                        در کدویژن برای سنسور هایی مثل ds18b20 لایبری وجود داره آیا در IAR هم یک چنین لایبری هایی موجود هست ؟
                        به عنوان مثال اگه ما بخواییم برای این سنسور لایبری رو فراخوانی کنیم باید چه کاری انجام دهیم ؟
                        خداوند بی نهایت است اما به قدر نیاز تو فرود می آید ، به قدر آرزوی تو گسترده می شود و به قدر ایمان تو کارگشاست.
                        [hr]

                        دیدگاه


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

                          نه به اون شکل، اما سمپل هایی اتمل برای IAR نوشته، میتونید از همون ها استفاده کنید اتفاقا برای DS18B20 یه APPNOTE به همراه نمونه کد داره اتمل: AVR318. برای استفاده از کتابخونه هم،اولا باید تمامی فایل ها اعم از و سورس و هدر رو تو پوشه برنامه تون قرار بدید، اگه سورس باز باشه کتابخونه، تمامی فایلهای سورس رو باید ADD کنید و هدر هم اول برنامه باید اینکلود بشه، اگه هم بسته باشه بازم باید اون فایلی که احتمالا با پسوند .r90 یا .lib هست رو add کنید و هدر رو هم مثل قبل اول برنامه اینکلود کنید.

                          دیدگاه


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

                            نوشته اصلی توسط mojtaba_led
                            نه به اون شکل، اما سمپل هایی اتمل برای IAR نوشته، میتونید از همون ها استفاده کنید اتفاقا برای DS18B20 یه APPNOTE به همراه نمونه کد داره اتمل: AVR318. برای استفاده از کتابخونه هم،اولا باید تمامی فایل ها اعم از و سورس و هدر رو تو پوشه برنامه تون قرار بدید، اگه سورس باز باشه کتابخونه، تمامی فایلهای سورس رو باید ADD کنید و هدر هم اول برنامه باید اینکلود بشه، اگه هم بسته باشه بازم باید اون فایلی که احتمالا با پسوند .r90 یا .lib هست رو add کنید و هدر رو هم مثل قبل اول برنامه اینکلود کنید.
                            خیلی ممنون از راهنماییتون
                            میشه همراه با یه مثال توضیح بدین ( مثلا برای همین ds18b20 ) با تشکر :rolleyes:
                            خداوند بی نهایت است اما به قدر نیاز تو فرود می آید ، به قدر آرزوی تو گسترده می شود و به قدر ایمان تو کارگشاست.
                            [hr]

                            دیدگاه


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

                              برای ارتباط با ds18b20 و کدنویسی در کامپایلر IAR قبلا کتابخانه ای را قرار داده ام که می توانید نحوه add کردن آن را در پروژه ملاحظه کنید:

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

                              دیدگاه


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

                                با تشکر از دوستان و عرض معذرت برای سوالات پی در پی :redface:
                                یه سوال دیگه داشتم تو تاپیک های دیگه جستجو کردم و چیزی پیدا نکردم ، نمی دونم شاید هست و من به دلیل پراکندگی مطالب نتونستم پیدا کنم :rolleyes:
                                در کامپایلر های bascom و CodeVision فایل هایی تولید میشه که در بسکام پسوند obj داره و در کدویژن پسوند COFF و با استفاده از این فایل ها در پروتئوس زمانی که مدار رو سیموله می کنیم می تونیم برنامه رو خط به خط اجرا کنیم و مقدار متغییر ها و وضعیت سایر قسمت ها رو ببینیم .
                                آیا در IAR هم چنین فایلی رو میشه تولید کرد ؟
                                در مورد تفاوت مد Release و Debug هم میشه لطف کنین یه توضیحی بدین . با تشکر فراوان :smile:
                                خداوند بی نهایت است اما به قدر نیاز تو فرود می آید ، به قدر آرزوی تو گسترده می شود و به قدر ایمان تو کارگشاست.
                                [hr]

                                دیدگاه

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