اطلاعیه

Collapse
No announcement yet.

مشکل در حافظه FLASH میکرو کنترلر ATXMEGA32A4

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل در حافظه FLASH میکرو کنترلر ATXMEGA32A4

    سلام خدمت دوستان عزیز
    من دارم با میکرو کنترلر ATXMEGA32A4 با نرم افزار کدویژن ورإ¾ژن2.05 برنامه می نویسم ، اما یک مشکل بزرگ به وجود آمده است .
    PROGRAM SIZE 98.2% شده است و در نتیجه دیگه نمی تونم کد بنویسیم

    یعنی میکرو کنترلر من حافظه WORD کم آورده است .

    لطفا کمک کنید . چون برد سخت افزاری که طراحی شده رو نمی توانم تغییر بدم که از میکرو کنترلر دیگری استفاده کنم !!!!!!!!!!!!!!!!!! :sad:

    حافظه EEPROM هم نیاز دارم برای موارد دیگر ...
    درپیوست هم یک عکس هست اگر ببینید متوجه موضوع به وجود آمده
    می شوید .





    مرسی
    خداوندا
    از بچگی به من آموختندهمه را دوست بدار حال که بزرگ شده ام و کسی را دوست می*دارم می گویند:
    فراموشش کن
    دکتر علی شریعتی

    #2
    پاسخ : مشکل در حافظه FLASH میکرو کنترلر ATXMEGA32A4

    با سلام

    1- اگر می توانید ، از دستورات مربوط به رشته استفاده نکنید(printf , sprintf , .... ) .
    2- اگر می توانید از محاسبات float استفاده نکنید.
    3- با حداکثر بهینه سازی کامپایل کنید.
    4- ثوابت را به eeprom منتقل کنید.
    5-........
    6- از کامپایلر IAR استفاده کنید تا 30% جا باز شود.

    با سپاس
    گشتی در لاله زار
    http://www.eca.ir/forum2/index.php?topic=76138.0

    http://www.eca.ir/forum2/index.php?topic=76141

    دیدگاه


      #3
      پاسخ : مشکل در حافظه FLASH میکرو کنترلر ATXMEGA32A4

      تو هلپ کدویژن یه سری راهنمایی قرار داده برای کاهش حجم کد

      دیدگاه


        #4
        پاسخ : مشکل در حافظه FLASH میکرو کنترلر ATXMEGA32A4

        مگه برنامه چی نوشتی اینقد جاگرفته
        من با iar یک 16 رو بزور پر کردم
        البته توابع cv وقتی اینکلاد میکنی
        خیلی چیزای بی مصرفی رو میاره که اصلا نیاز نیست
        بیا سمت iar
        هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
        بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
        میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

        تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

        دیدگاه


          #5
          پاسخ : مشکل در حافظه FLASH میکرو کنترلر ATXMEGA32A4

          میزان فضای اشغال شده در Flash به

          1- نوع کاربرد و وظایف مورد نظر
          2- کامپایلر مورد استفاده
          3- سطح optimization کامپایلر
          4- روش برنامه نویسی و میزان اصولی بودن آن

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

          دیدگاه


            #6
            پاسخ : مشکل در حافظه FLASH میکرو کنترلر ATXMEGA32A4

            سلام
            دوستان من کار های رو که آقای Solsal گفتن انجام دادم ولی نشد :cry: :cry:

            این یک پروژه را ه اندازی پنل ضبط ماشین ، که بیشتر حافظه flash رو کارکترهای lcd ضبط گرفته و یک سری دیتا دیگه تو حافظه eeprom

            سلام آقای mojalan میشه توضیح بدین تو هلپ کدویژن به چه صورت میشه دنبال این موضوع گشت

            با تشکر از دوستان
            خداوندا
            از بچگی به من آموختندهمه را دوست بدار حال که بزرگ شده ام و کسی را دوست می*دارم می گویند:
            فراموشش کن
            دکتر علی شریعتی

            دیدگاه


              #7
              پاسخ : مشکل در حافظه FLASH میکرو کنترلر ATXMEGA32A4

              سلام
              به نظر شما اگر با کامپایلر IAR شروع کنم برنامه رو بنویسم ، مشکل حل می شود ؟؟؟؟
              خداوندا
              از بچگی به من آموختندهمه را دوست بدار حال که بزرگ شده ام و کسی را دوست می*دارم می گویند:
              فراموشش کن
              دکتر علی شریعتی

              دیدگاه


                #8
                پاسخ : مشکل در حافظه FLASH میکرو کنترلر ATXMEGA32A4

                سلام

                تعویض کامپایلر می تونه مفید باشه ولی بیشتر از اون بر میگرده به نحوه برنامه نویسی شما.ولی اینم یادتون باشه که همیشه پر کردن تمام حافظه میکرو یا مثلا بیشتر از 85% نمی تونه مفید باشه چون احتمالا شما در اینده در نظر داشته باشید تغییراتی در برنامه ایجاد کنید که در نتیجه برنامه کد بیشتری تولید کنه و دیگه میکروتون جواب نده.اگه واقعا تمام حافظه میکروتون اشغال میشه.شاید بهتر باشه میکرو تون را عوض کنید
                دکتر شريعتي:

                زنده بودن را به بيداري بگذرانيم که سالها به اجبار خواهيم خفت.

                دیدگاه


                  #9
                  پاسخ : مشکل در حافظه FLASH میکرو کنترلر ATXMEGA32A4

                  سلام. من خودم هلپ کدویژن رو نگاه کردم متاسفانه پیداش نکردم. یه سری توصیه ها بود مثل توصیه های جناب solsal البته بجر توصیه آخری یعنی تعویض کامپایلر.
                  اما یه روش دیگه هم من موقع ور رفتن با کدویژن پیدا کردم و میتونه تا چند بایت ؛ اگر که خیلی دیگه فضا کم آوردی و پروژه رو میخوای با همین سخت افزار تموم کنی اینه که :
                  1- بعد از کامپایل برنامه یه سری فایل خروجی تولید میشه مثل فایلهای hex. coef. rom بین اینها فایل asm برنامتون هم هست. تو اون فایل برنامه شما تبدیل شده به اسمبلی، اگه اونو باز کنی میبینی که کامپایلر یه سری کد اضافه به برنامه چسبونده مثلا پاک کردن رم در ابتدای برنامه. شما با احتیاط و حساب شده کدهای اضافی رو پاک کن و همین فایل رو با اسمبلر موجود در کدویژن که با نام avrasm2.exe تو پوشه محل نصب میتونی پیداش کنی دوباره اسمبل کن با دستور avrasm2.exe -fI filename.asm
                  در ضمن این کار آخرین راهه و اگه بنا به پیشنهاد دوستان بتونی روش برنامه نویسیتو عوض کنی یا از الگوریتم های کوتاهتر استفاده کنی شرایط بهتری خواهی داشت

                  دیدگاه


                    #10
                    پاسخ : مشکل در حافظه FLASH میکرو کنترلر ATXMEGA32A4

                    سلام خدمت دوستان عزیز
                    من تصمیمم گرفتم که یک سری از محتویات حافظه flash رو انتقال بدم به آیسی 24C08A که توسط پروگرامر TNM هم پشتیبانی می شود.
                    اما مشکل اساسی اینجاست که یک تیکه از برنامه رو که مانند زیر است :

                    flash unsigned int CODE_CITY[128][164]

                    به چه صورت با فایل HEX تبدیل کنم و در آیسی flash 24C08A پروگرام کنم ؟؟؟؟

                    یعنی من این تیکه از برنامه رو با چه نرم افزاری باید تبدیل کنم.....

                    با تشکر
                    خداوندا
                    از بچگی به من آموختندهمه را دوست بدار حال که بزرگ شده ام و کسی را دوست می*دارم می گویند:
                    فراموشش کن
                    دکتر علی شریعتی

                    دیدگاه


                      #11
                      پاسخ : مشکل در حافظه FLASH میکرو کنترلر ATXMEGA32A4

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

                      دیدگاه


                        #12
                        پاسخ : مشکل در حافظه FLASH میکرو کنترلر ATXMEGA32A4

                        خب از اونجاییکه این تراشه با پروتکل I2C کا رمیکنه و باتبع شما سیستم ارتباطی این تراشه رو با میکروتون برقرار کردن پیشنهاد من اینه که یه برنامه کوچیک بنویسید که توش همین آرایه CODE_CITY باشه و در تابع main یه روتین رو اجرا کنید که این آرایه رو داخل ایپرام بریزه. یکبار که این برنامه رو اجرا کنید محتویات مورد نظرتون داخل ایپرام نوشته میشه و شما میتونید سراغ کد خودتون برید و او آرایه رو هم از برنامه اصلی پاک کنید

                        دیدگاه


                          #13
                          پاسخ : مشکل در حافظه FLASH میکرو کنترلر ATXMEGA32A4

                          سلام دوستان
                          دارم تست می کنم روش های که دوستان گفتن جواب رو میگم خدمت شما حتما
                          خداوندا
                          از بچگی به من آموختندهمه را دوست بدار حال که بزرگ شده ام و کسی را دوست می*دارم می گویند:
                          فراموشش کن
                          دکتر علی شریعتی

                          دیدگاه


                            #14
                            پاسخ : مشکل در حافظه FLASH میکرو کنترلر ATXMEGA32A4

                            سلام

                            یک مشکل عجیب !!!!!

                            من یک برنامه نوشتم با میکرو کنترلر ATMEGA32 که می تواند ، آرایه رو می تواند داخل آیسی AT24C08A پروگرام کند البته تمامی این ارتباط ها توسط I2C می باشد.

                            بعد از این کار آیسی ایپرام رو وصل کردم به پورت C میکرو ATXMEGA32A4 و با استفاده از ارتباط I2C خواستم داده های ذخیره شده را با دستور (( tLen=FindCityStr(eeprom_read(gTmp
                            بخوانم ، ولی تا به دستور فوق میرسد میکرو ریست می شود

                            نکته که هست در HELP کد ویژن جمله وجود دارد که بیان گر آنست ؛ که میکرو ATXMEGA ارتباط I2C را پشتیبانی نمی کند
                            The I2C Functions functions do not yet support the ATxmega chips


                            لطفا راهنمایی کنید که آیا میکرو ATXMEGA32A4 ارتباط I2C ندارد ؟؟؟؟؟ اگر دارد به صورت زیر می توان را ه اندازی کرد .

                            asm
                            .equ __i2c_port=0x15 ;PORTC
                            .equ __sda_bit=1
                            .equ __scl_bit=2
                            endasm

                            include <i2c.h
                            خداوندا
                            از بچگی به من آموختندهمه را دوست بدار حال که بزرگ شده ام و کسی را دوست می*دارم می گویند:
                            فراموشش کن
                            دکتر علی شریعتی

                            دیدگاه


                              #15
                              پاسخ : مشکل در حافظه FLASH میکرو کنترلر ATXMEGA32A4

                              ارتباط I2C در کدویژن در واقع فرم نرم افزاری TWI هست و همونطور که در توضیحات کامپایلر اومده هنوز این توابع برای سری xmega ساپورت نمیشه در نتیجه شما سه کار میتونی انجام بدی
                              1- از همون TWI سخت افزاری استفاده کنی و خودت با رجیسترها کار کنی
                              2- از یه ورژن بالاتر کامپایلر کدویژن استفاده کنی که امیدوارم این توابع رو پشتیبانی کرده باشه (از سری 2.5 به بعد کدویزارد بخش جداگانه ای برای xmega داره) دردسرش هم دانلود از همین سایت و نصب کردنشه
                              3- خودت روال I2C نرم افزاری رو پیاده سازی کنی که فکر میکنم راه اول و دوم بهتر باشه

                              دیدگاه

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