اطلاعیه

Collapse
No announcement yet.

سوال :کمبود حافظه فلش avr

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

    سوال :کمبود حافظه فلش avr

    با سلام . یک سوال از اساتید داشتم من یک برنامه با کدویژن نوشتم برای میکرو mega32 ولی حجم برنامه از حافظه ی فلش خیلی بیشتر است .
    سوال من این است که ایا میتوان از حافظه ها ی سریال atmel at24c برای کمبود استفاده کرد اگر این امکان وجود دارد به چه صورتی میتوان at24c را پروگرم کرد تا حافظه ان قابل دسترس باشد؟
    (با نوشتن و خواندن در at24c آشنایی دارم گیج شدنم در اینجا ست که ما زمانی که برنامه در حال runبودن است میتوان دستورات رابرای نوشتن وخواندن از حافظه بکار ببریم یعنی با توجه به دستوراتی که ما مینویسیم حافظه پر میشود )
    اگر مشکل با at24c حل میشود چگونه باید عمل کنم ؟
    در غیر اینصورت چه راههای دیگری وجود دارد؟
    خواهشن راهنمایی کنید .
    در ضمن هیچ موضوعی در این رابطه موجود نیست .
    :read: :read: :eek: :nerd: :read: :read:

    #2
    پاسخ : سوال :کمبود حافظه فلش avr

    با سلام

    دوست عزیز قبل از هر کاری مطمئن شید که تو برنامه codvision میکرو مورد نظرتون رو درست انتخاب کردین (یعنی mega32 ).

    آیا بصورت Error هست ؟ دقیقا چه پیغامی میده ؟
    از سختی نترس! این سختی هاست که جایگاه و مقام انسان را بالا میبرد...

    دیدگاه


      #3
      پاسخ : سوال :کمبود حافظه فلش avr

      ممنون از توجه تون دوست عزیز
      ولی این مواردی که گفتید درست است وهیچ خطایی زمان کامپایل برنامه کدویژن نمیگیره در زمان پروگرم کردن برنامه وقتی فیوز بیت ها از طرف پروگرم خوانده میشود مشکلی نیست در مرحله لود کردن فایل بر روی میکرو با خطایی تحت عنوان کمبود فضا مواجه میشوم .

      سوال : آیا حافظه ی به صورت سریال یا موازی وجود دارد تا بتوان آن را به میکرو متصل نمود تا در زمان پروگرم نمودن قابل شناسایی باشد .(یعنی قسمتی از فایل روی آن لود شود وقابل دست رس باشد)

      از اساتید درخواست همفکری دارم .

      :read: :read: :eek: :read: :read:

      دیدگاه


        #4
        پاسخ : سوال :کمبود حافظه فلش avr

        چرا یه میکرو با حافظه بیشتر نمیخری؟
        حافظه خارجی دردسر داره
        من رقص دختران هندي را بيش از نماز پدر و مادرم دوست دارم چون آنها از روي عشق و علاقه ميرقصند و پدر و مادرم از روي عادت نماز ميخوانند.
        دكتر شريعتي

        دیدگاه


          #5
          پاسخ : سوال :کمبود حافظه فلش avr

          ممنون از توجه شما.
          ولی متاسفانه این سفارش شرکتی است که پروژه را خواسته .


          سوال :آیا امکان دارد توسط Bootloader فایل هگز کل برنامه را روی mmc یا eeprom خارجی ریخت و از روی ان دستورات را لود نمود.
          :read:

          اگر این امکان موجود است کسی مثالی دارد خواهشن ارائه دهد .
          :read:

          دیدگاه


            #6
            پاسخ : سوال :کمبود حافظه فلش avr

            نوشته اصلی توسط M_0125_n
            ممنون از توجه شما.
            ولی متاسفانه این سفارش شرکتی است که پروژه را خواسته .


            سوال :آیا امکان دارد توسط Bootloader فایل هگز کل برنامه را روی mmc یا eeprom خارجی ریخت و از روی ان دستورات را لود نمود.
            :read:

            اگر این امکان موجود است کسی مثالی دارد خواهشن ارائه دهد .
            :read:
            ببینم کامپایلرتون چیه؟
            حجم برنامتون چقدره؟

            دیدگاه


              #7
              پاسخ : سوال :کمبود حافظه فلش avr

              سلام. باتشکر .
              اگه دقت کرده باشید در بالا توضیح داده ام (کدوژن)

              ححم برنامه چندین برابر حافظه میکرو

              :read: :read: :read:

              دیدگاه


                #8
                پاسخ : سوال :کمبود حافظه فلش avr

                یعنی چی چندین برابر؟
                بعد هم اینکه بهینه سازی انجام دادید؟

                دیدگاه


                  #9
                  پاسخ : سوال :کمبود حافظه فلش avr

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

                  فقط 313 نفر...

                  دیدگاه


                    #10
                    پاسخ : سوال :کمبود حافظه فلش avr

                    نوشته اصلی توسط امیر حسام الفتی
                    خوب دوست عزیز ما که نمیتونیم معجزه کنیم نه برنامه رو دادی نه میگی چی کار میکنه و میخوای مشکلت هم حل بشه؟ oo:
                    چرا چرا امیر جون من الان معجزه میکنم!!!!! :mrgreen: وایسا وردهامو بخونم!!!!
                    اجـــــــــــــــــی مجــــــــــــــــــــــــــــــــی لا ترجــــــــــــــــــــــــی ... !!!
                    برو ..
                    حله داداش ... تموم!!!!
                    الان فایل هگزت خودبخود رفت روی میکرو و کار هم میکنه.
                    تازه سلام هم رسوند!!!

                    خب از شوخی بگذریم
                    دوست عزیز اگه میخوای مشکلت حل بشه باید اطلاعات دقیق تری بدی. مثلا حجم فعلی برنامه با واحد کیلو.
                    زمان دانشجویی یه استاد داشتیم (اون موقع ها ما با اسمبلی برای 8051 و ... مینوشتیم) که میگفت میشه به میکرو حافظه جانبی وصل کرد که در صورت اینکه حافظه کم بیاره برنامه رو روی اون بریزی . مثلا اگه 8051 2 کیلو حافظه داشت میگفت میشه حافظه جانبی بهش وصل کرد و مثلا کردش 18 کیلو!!!!
                    حالا نمیدونم عملا بشه یا نه؟؟؟
                    خودش که میگفت اینکارو کرده و برای تابلو روان هاش هم همینکارو میکنه.
                    یه سری شماتیکهاش هم کشید اما ما چون جوون بودیم و جاهل ... شعر پنداشتیمش و بیخیالش شدیم و ولش کردیم.
                    یه بار هم تو همین سایت من دیدم که هارد 40 رو به AVR وصل کرده بودن. نمیدونم الان تاپیکش باشه یا نه
                    ولی احتمالا شدنیه.
                    بهتره از اساتیدی مثل جناب سپاسیار و یا جناب طراح و یا جناب SOLSAL و خیلی های دیگه سوال کنی .
                    یه پیغام خصوصی بهشون بده تا بیان.
                    ولی از من میشنوی خودتو دردسر ننداز و یه مگا 64 بزار و تموم(اگه حجم اونم اجازه بده)

                    درد من تنهایی نیست؛ بلكه مرگ ملتی است كه گدایی را قناعت، بی‏عرضگی را صبر، و با تبسمی بر لب این حماقت را حكمت خداوند می‏ نامند! "گاندی"

                    به دلیل وجود برخی مشکلات و بی احترامی ها این اکانت رو غیر فعال کردم. همیشه سر بلند باشید.
                    بدرود . . .

                    دیدگاه


                      #11
                      پاسخ : سوال :کمبود حافظه فلش avr

                      با سلام

                      1- اگر کدهای اجرایی بیشتر از 32 کبلو بایت شده و نیز حداکثر اپتیمایز را رعایت نموده اید ، ناچار به تغییر و ارتقا میکرو هستید.(ضمنا :کمپایلر IAR کدهای فشرده ای ایجاد می کند)
                      2- اگر بخشی از برنامه ها ، جزو داده های ثابت هستند، می توانید از AT24CXXX , AT45DB161 , SD/MMC برای ذخیره آنها کمک بگیرید تا برنامه کاهش حجم بیابد.
                      3- برای حجم کد تا 1 مگابایت ، باید سعی کنیم تا از حافظه برنامه خارجی مثل ایپرام استفاده نکنیم. بلکه با تغییر میکرو در یک خانواده ، حتی تغییر خانواده میکرو ، مسئله را حل کنیم.
                      XMEGA از خانواده AVR تا 384 کیلوبایت کد را پشتیبانی می کند.(البته تا 256 کیلوبایت کد ، در محصولات تولیدی وجود دارد. با تشکر از شهریار عزیز)
                      4- بنا به توصیه جناب طراح ، باید بخشی از منابع میکرو ، برای قابلیت تغییر و توسعه ، آزاد باشد ( مثلا تا 80% حافظه برنامه را استفاده کنیم )
                      لذا برنامه شما در وضعیت اضافه ظرفیت قرار دارد.

                      با سپاس

                      پ.ن1: بوت لودر!
                      بوت لودر در این شرایط کمکی نمی کند. چون هدف اصلی بوت لودر دریافت کدهای برنامه از یکی از ورودی های ارتباطی و نوشتن آن در فلش میکرو می باشد.
                      که در هر بار پاک کردن فلش و نوشتن آن، تا چند ثانیه طول می کشد و نیز تعداد دفعات نوشتن در فلش میکرو محدودیتی مثل 10000 یا 100000 دارد،
                      لذا استفاده از بوت لودر برای لود برنامه (نوشتن بخشی از کدهای مثلا 100 کیلوبایتی شما ، در32کیوبایت فلش میکرو) سپس اجرای آن ( احتمالا ریست هم نیاز دارد )
                      منطقی نشان نمی دهد.

                      پ.ن2:
                      صفحات نمایشی ال سی دی شما اکثرا می توانند جزو داده های ثابت باشند.
                      لذا از , AT45DB161 , SD/MMC با ارتباط 4 پایه ای استفاده کنید و صفحات را به صورت آرایه ، در آدرسهای از پیش تعریف شده ذخیره کنید.
                      مثلا در حالت ساده و بدون ترفند ، به صورت ترکیبی 100 حالت برای منوهای شما رخ می دهد. لذا 100 آرایه مختلف را با Paint ویندوز و bmp2array می سازید
                      و در آدرسهای معین از حافظه های فوق ذخیره می کنید.) سپس در برنامه ،انها را فراخوانی و نمایش می دهید.
                      گشتی در لاله زار
                      http://www.eca.ir/forum2/index.php?topic=76138.0

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

                      دیدگاه


                        #12
                        پاسخ : سوال :کمبود حافظه فلش avr

                        با سلام خسته نباشید خدمت دوستان ممنون از راهنمایی دوستان مخصوصا Solsal عزیر

                        من شرمنده هستم که نمی توانم پروژه را قرار دهم البته یک توضیح دراین رابطه میدهم .()

                        پروژه : lcd گرافیکی وتاچ با تعداد صفحات زیاد و دارای تعداد زیادی منو که این صفحات مستلزم تعداد زیادی تصاویر و متغییر میباشد .

                        این پروژه در ابتدای کار با کمبود فضا روبرو شده به همین دلیل حجم پایانی کار را نمیتوانم بصورت دقیق اعلام نمایم (فکر میکنم تاثیری در حل مشل نیز ندارد چون چه 1 بیت یا 100k بایت باشد فرقی به حال من نمی کند راه حل فقط حافظه جانبی میباشد )

                        محدودیت در کار من این است که فقط باید از ATMEGA32 استفاده نمایم !!!

                        :question:سوال من این است که Bootloader علاوه بر اپدیت برنامه سمت کاربر میتوان در کمبود فضا فلش نیز ما را یاری نماید ؟
                        همانند پردازنده کامپیوتر( فقط مشکل ram مطرح میشود که میتوان حجم لود نمودن برنامه را مرحله مرحله نمود)

                        اگر کسی نمونه ای دارد قرار دهد .باتشکر...

                        :read: :read: :read:




                        دیدگاه


                          #13
                          پاسخ : سوال :کمبود حافظه فلش avr

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

                          دیدگاه


                            #14
                            پاسخ : سوال :کمبود حافظه فلش avr

                            اینطور که گفتی عکس دارید
                            و متمئنا از ارایه استفاده کردید برای جایگذاری عکسها
                            خوب می تونی همر ببری تو mmc
                            و از اونجا بخونی
                            هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
                            بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
                            میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

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

                            دیدگاه


                              #15
                              پاسخ : سوال :کمبود حافظه فلش avr

                              باز هم از تمامی اساتید تشکر را دارم .

                              منتها متاسفانه من تابحال بدین صورت با حافظه جانبی کار نکردم یک مقدار درک این مسئله برام سخته است

                              چگونه من قسمتی از فایل hex خروجی را درون حافظه جانبی بنویسم ؟

                              اگر قسمتی از این ثابت ها را از برنامه خارج کنم با مشکل روبرو میشوم مثلا فونت ها ؟

                              اگر توضیحی در این رابطه بدهید که من باید به چه صورت عمل نمایم که قسمتی از برنامه رو از آن جدا نمایم فایل جدا شده از برنامه اصلی را به چه صورت مثلا روی mmc بنویسم بعد از روی mmc لود نمایم ؟

                              :angry: :read: :angry: :read: :angry:

                              دیدگاه

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