اطلاعیه

Collapse
No announcement yet.

ارور جدید در کدویژن

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

    ارور جدید در کدویژن

    من یه برنامه چند هزار خطی نوشتم و تا حالا مشکلی نداشتم ولی یه تابع جدید که اضافه کردم این ارور رو دیدم:

    Linker error: global RAM variables size: 2094 bytes is too large

    وقتی کم کم هر چی اضافه کردم پاک کردم تا ببینم مشکل کجاست دیدم با این چندتا خط مشکل داره:

    کد:
     for(i=0; i<3; i++)
                  {
                  for(j=0; j<31; j++)
                      { 
                       if (HP==1) interface[i][j]=masrafW[i][j];
                       if (HP==2) interface[i][j]=masrafE[i][j];
                       if (HP==3) interface[i][j]=masrafG[i][j];
                      }
                  }

    در واقع یه ماتریس واسطه به اسم interface که بر اساس مقدار HP باید یکی از سه تا ماتریس WWW، EEE و GGG رو بریزه تو interface که بعد بره تو یه تابع دیگه برای یه سری محاسبات.
    در حالتی که شرط HP رو نذارم ، دو تا for که گذاشتم مشکلی نداره ولی وقتی دوتاش رو میذارم این ارور رو میده:

    Linker error: global RAM variables size: 1722 bytes is too large

    یعنی همون بالایی فق عدده فرق میکنه، کسی تا حالا به ارور برخورد کرده؟

    #2
    پاسخ : ارور جدید در کدویژن

    به نام خدا سلام دلیلش اینه که شما از ram میکرو بیشتر از اندازه اش متغیر تعریف کردی و وقتی شرط hp را برمیدار چون در برنامه از متغیرها استفاده نکردی کامپایلر خودبخود متغیر ها را حذف میکند و دیگه احتیاجی به فضای رم برای اون نیست چون عملا متغیر حذف نمیشه
    آیا کسى که وعده نیکو به او داده‏ایم و او به آن خواهد رسید، مانند کسى است که از کالاى زندگى دنیا بهره‏مندش گردانیده‏ایم [ولى‏] او روز قیامت از [جمله‏] احضارشدگان [در آتش‏] است؟ (61)(سوره قصص)

    دیدگاه

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