اطلاعیه

Collapse
No announcement yet.

پر شدن حافظه RAM

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

    پر شدن حافظه RAM

    سلام بچه ها
    من یه پروژه دارم با یه atmega128 انجام میدم.تمام کاراشو که انجام دادم داشت تموم می شد، کامپایل که کردم یه error داد که تعداد متغیرات خیلی زیاد شده و حافظه RAM پر شده
    حالا چکار باید بکنم؟؟
    تعداد متغیرام زیاده راست میگه ولی نه اونقدر که نوشته بود!!! چهار هزار و خورده ای نوشته بود انگار!!!
    من نزدیک 100 تا هدر اضافه کردم که 96تاش BMP هست چون از lcd استفاده کردم.شایدم با متغیرای هدرهای lcd اینقدر زیاد شده!
    عاقا من نمیدونم جریان این حافظه های میکرو دقیقا چیه!
    اون bmpها از نو flash تعریف شدن
    موقع کامپایل مینوشت حافظه فلش 87% پره
    ولی یه دفه اون error مربوط به ram داد! فکر کنم 4-5 تا متغیر اضافه کردم اون خطا رو داد ولی چیزی که نوشته بود یه 20-30 تا بیشتر از مقدار مجاز بود
    حالا میخوام بدونم چیکار باید بکنم؟؟ متغیرام رو کم کنم؟؟ تعداد استفاده ازشون تو برنامه رو کم کنم؟؟!!!!!! (این مسخرس واقعا :biggrin
    مرسی از اینکه وقت گذاشتید دوستان خیلی کارم گیر کرده :cry2:

    #2
    پاسخ : پر شدن حافظه RAM

    با کدویژن برنامه رو نوشتی؟
    ... و (بدانید) گرفتن تصمیمهاى محکم (براى رسیدن به اهداف بزرگ) با خوش گذرانى و سفرهآ‌هاى رنگین سازگار نیست و چه بسیار که خواب شبانه تصمیمهاى محکم روز را از میان برده و تاریکیآ‌ها، خاطره همتآ‌هاى بلند را از یادها محو کرده است. (نهجآ‌البلاغه، خطبه211)

    امام علی (ع):کسی که به وقت یاری رهبرش در خواب باشد، با لگد دشمنش بیدار می شود (غررالحکم،ص 422)

    دیدگاه


      #3
      پاسخ : پر شدن حافظه RAM

      نوشته اصلی توسط AliRezaDAVE
      با کدویژن برنامه رو نوشتی؟
      آره تو کدویژن هست

      دیدگاه


        #4
        پاسخ : پر شدن حافظه RAM

        کد ویژن همینطوریه. اصلا کامپایلری خوبی برای کارهای حجیم و پیچیده نیست. پیشنهاد میدم بری سراغ winavr بااون برنامه ات رو بنویسی چون کد تولید شده انش بهینه تره.
        یا اینکه باید اینقدر برنامه ات رو تغییر بدی تا کدویژن بهت گیر نده
        ... و (بدانید) گرفتن تصمیمهاى محکم (براى رسیدن به اهداف بزرگ) با خوش گذرانى و سفرهآ‌هاى رنگین سازگار نیست و چه بسیار که خواب شبانه تصمیمهاى محکم روز را از میان برده و تاریکیآ‌ها، خاطره همتآ‌هاى بلند را از یادها محو کرده است. (نهجآ‌البلاغه، خطبه211)

        امام علی (ع):کسی که به وقت یاری رهبرش در خواب باشد، با لگد دشمنش بیدار می شود (غررالحکم،ص 422)

        دیدگاه


          #5
          پاسخ : پر شدن حافظه RAM

          نوشته اصلی توسط AliRezaDAVE
          کد ویژن همینطوریه. اصلا کامپایلری خوبی برای کارهای حجیم و پیچیده نیست. پیشنهاد میدم بری سراغ winavr بااون برنامه ات رو بنویسی چون کد تولید شده انش بهینه تره.
          یا اینکه باید اینقدر برنامه ات رو تغییر بدی تا کدویژن بهت گیر نده
          مرسی بابت جوابت ولی الان واقعا فرصت مهاجرت! ندارم :biggrin:
          گفتم شاید راهی باشه توی configuration که بشه حلش کرد

          دیدگاه


            #6
            پاسخ : پر شدن حافظه RAM

            سلام دوستان
            نوشته اصلی توسط ameen.kh
            سلام بچه ها
            من یه پروژه دارم با یه atmega128 انجام میدم.تمام کاراشو که انجام دادم داشت تموم می شد، کامپایل که کردم یه error داد که تعداد متغیرات خیلی زیاد شده و حافظه RAM پر شده
            حالا چکار باید بکنم؟؟
            تعداد متغیرام زیاده راست میگه ولی نه اونقدر که نوشته بود!!! چهار هزار و خورده ای نوشته بود انگار!!!
            من نزدیک 100 تا هدر اضافه کردم که 96تاش BMP هست چون از lcd استفاده کردم.شایدم با متغیرای هدرهای lcd اینقدر زیاد شده!
            عاقا من نمیدونم جریان این حافظه های میکرو دقیقا چیه!
            اون bmpها از نو flash تعریف شدن
            موقع کامپایل مینوشت حافظه فلش 87% پره
            ولی یه دفه اون error مربوط به ram داد! فکر کنم 4-5 تا متغیر اضافه کردم اون خطا رو داد ولی چیزی که نوشته بود یه 20-30 تا بیشتر از مقدار مجاز بود
            حالا میخوام بدونم چیکار باید بکنم؟؟ متغیرام رو کم کنم؟؟ تعداد استفاده ازشون تو برنامه رو کم کنم؟؟!!!!!! (این مسخرس واقعا :biggrin
            مرسی از اینکه وقت گذاشتید دوستان خیلی کارم گیر کرده :cry2:
            امین جان خوبی؟
            حافظه استک رو از این قسمتهایی که تعیین کردم رو تغییر بده
            ببین کارتون راه میوفته ؟؟؟

            قبلا این مشکلات رو داشتم و این کار رو کردم مشکلم حل شد ...

            نوشته اصلی توسط AliRezaDAVE
            کد ویژن همینطوریه. اصلا کامپایلری خوبی برای کارهای حجیم و پیچیده نیست. پیشنهاد میدم بری سراغ winavr بااون برنامه ات رو بنویسی چون کد تولید شده انش بهینه تره.
            یا اینکه باید اینقدر برنامه ات رو تغییر بدی تا کدویژن بهت گیر نده
            کی گفته اینو ؟؟؟؟
            من تا 2500 خط هم با کدویژن نوشتم ....
            اتفاقا" برای کارای حجیم عالیه ...
            اون آکولات تو آکولات که میشه باز و بسته کنی خیلی کار رو راحت کرده ...
            [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
            معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
            معرفی نرم افزار Codewizard PWM
            با من بیشتر آشنا شوید

            دیدگاه


              #7
              پاسخ : پر شدن حافظه RAM

              مخلصم سامان جان خوبی؟
              آقا دمت گرم ولی بازم نشد :cry2:
              اصلا خیلی مسخرس تو خطا عدد 3881 میده
              کد:
              Linker error: global RAM variables size: 3881 bytes is too large
              من اون عدد رو گذاشتم 4000 ولی باز همینو میگه
              حتی internal ram size رو 4096 هست ولی بازم error داره :cry2: :angry: :angry: :angry: :angry: :angry: :angry: :angry: :angry: :angry:

              دیدگاه


                #8
                پاسخ : پر شدن حافظه RAM

                نوشته اصلی توسط Nourbakhsh Rad
                با سلام،

                فکر کنم یه جایی اشتباه کرده باشی، مثلا به جای اینکه تصاویر رو روی Flash بریزی، روی RAM ریخته باشی، وگرنه 4 کیلو مموری چیز کمی نیست که یه همین سادگی و با تعریف متغیر و استک و اینطور چیزا استفاده بشه!
                بازم ممنون از لطفت
                من یه جا خوندم که باید تعداد strهای برنامه کم شه
                یه چیزی در حد 40-30 تا str داشتم کردم که هر کدوم یه متغیر رو میریخت رو lcd
                من همه متغیر ها رو با یه str ریختم. یعنی اون همه str رو حذف کردم شد 1 دونه فقط
                باز همون error رو داد ولی به جای 4100و خورده ای، مینویسه 3881
                تو کانفیگ پروژه internal ram size روی 4096 هست
                به پیشنهاد سامان جان هم data stack size رو حتی روی 4000 گذاشتم
                ولی بازم فایده نداشت
                حتی 4.5kb هم external ram تعریف کردم بازم همون error رو میده دیگه واقعا نمیدونم چیکار باید بکنم :cry2: :cry2: :angry: :angry: :angry:

                کد:
                Linker error: global RAM variables size: 3881 bytes is too large

                دیدگاه


                  #9
                  پاسخ : پر شدن حافظه RAM

                  میشه لطف کنید کل برنامه رو بگذارید ؟؟
                  اگر خیلی برنامه سری هست ... اینا .... پیام خصوصی کن :biggrin:
                  اگر از 1000 خط بیشتر باشه فکر نکنم که اینجا بتونی بگذاری ... باید بریزیش تو یه فایل TXT بعدا پلودش کنید ...
                  [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                  معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                  معرفی نرم افزار Codewizard PWM
                  با من بیشتر آشنا شوید

                  دیدگاه


                    #10
                    پاسخ : پر شدن حافظه RAM

                    نوشته اصلی توسط Saman.Asadi
                    میشه لطف کنید کل برنامه رو بگذارید ؟؟
                    اگر خیلی برنامه سری هست ... اینا .... پیام خصوصی کن :biggrin:
                    اگر از 1000 خط بیشتر باشه فکر نکنم که اینجا بتونی بگذاری ... باید بریزیش تو یه فایل TXT بعدا پلودش کنید ...
                    اینجا پ لودش کردم
                    <a href="http://speedy.sh/5peyc/GLCD.rar">Download at SpeedyShare</a>
                    برنامش یه مقدار حجمش بالاس ولی فکر نکنم پیچیده نوشته باشم
                    تمام فایل های مربوط به برنامه توش هست
                    حتی پروتئوسش (با ورژن 8.1)
                    tens , faradic , fes , idc , 4khz , 2-5ms اسم یه سری شکل موجه که پارامتراشون توسط کاربر تنظیم میشه و توسط تابع send به میکرو بعدی فرستاده میشه
                    توابعی که اول برنامه تعریف شدن صفحه های مختلف glcd هستن، همه کارا با یه روتاری انجام میشه و یه کلید enter که به وقفه خارجی وصلن
                    توی فولدر bmp تمام صفحه هایی که glcd نشون میده رو save کردم
                    من واقعا شرمندم که اینقدر وقتتون رو میگیرم
                    ایشالا که همیشه تو کاراتون موفق باشین ولی اگه هر موقع پیش اومد امیدوارم بتونم این همه لطف رو جبران کنم :cry2:

                    ویرایش ----------------------------------------

                    با تنظیم external ram size روی 12kb کامپایل میشه
                    ولی خب چه فایده حالا دقیقا چیکار باید کرد؟؟

                    دیدگاه


                      #11
                      پاسخ : پر شدن حافظه RAM

                      درود دوست گرامی ،
                      رشته های ثابت رو در متغیر های ثابت روی فلش ذخیره کن به طور مثال اینجوری تعریفشون کن :

                      کد:
                      flash unsigned char test[10] = "Hellooooooooooo";

                      دیدگاه


                        #12
                        پاسخ : پر شدن حافظه RAM

                        اون قسمتی که گفتم رو به 100 تبدیل کن درست میشه
                        البته فعلا

                        [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                        معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                        معرفی نرم افزار Codewizard PWM
                        با من بیشتر آشنا شوید

                        دیدگاه


                          #13
                          پاسخ : پر شدن حافظه RAM

                          نوشته اصلی توسط tofan8
                          درود دوست گرامی ،
                          رشته های ثابت رو در متغیر های ثابت روی فلش ذخیره کن به طور مثال اینجوری تعریفشون کن :

                          کد:
                          flash unsigned char test[10] = "Hellooooooooooo";
                          عجب کاری کردم من!!!! آقا دمت گرم با این کار اون عدده مال error رسید به 1974تا
                          ولی باز خطا رو میده :angry: :angry: :angry: :angry: :cry2:
                          نوشته اصلی توسط Saman.Asadi
                          اون قسمتی که گفتم رو به 100 تبدیل کن درست میشه
                          البته فعلا
                          سامان جان دمت گرم درست شد :wow: :applause: ولی الان دقیقا چه اتفاقی افتاد؟؟ data stack که کم شد کلی!!!

                          دیدگاه


                            #14
                            پاسخ : پر شدن حافظه RAM

                            این کارها رو حتما بکن



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

                            موفق باشید

                            ========================================== اضاف شده
                            نوشته اصلی توسط ameen.kh
                            ولی الان دقیقا چه اتفاقی افتاد؟؟ data stack که کم شد کلی!!!
                            والا نوشته 82 بایت بیشتر استفاده نشده ....
                            به خاطر همین کردمش 100 بایت ...


                            موفق باشیید
                            [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                            معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                            معرفی نرم افزار Codewizard PWM
                            با من بیشتر آشنا شوید

                            دیدگاه


                              #15
                              پاسخ : پر شدن حافظه RAM

                              دستت درد نکنه سامان جان خیلی لطف کردی دمت گرم ایشالا جبران کنم :icon_razz: :rolleyes:

                              دیدگاه

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