ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 8 از 8

موضوع: memory map

  1. #1
    2006/11/19
    تهران
    114
    133

    memory map

    سلام
    من دارم از برد آموزشی lpc1768 فروشگاه استفاده می کنم
    توی برنامه داده های رو از یک کانال ADC می خونم و توی یک آرایه می ریزم و با پورت سریال به کامپیوتر ارسال می کنم
    آرایه از نوع INT هست.
    وقتی اندازه آرایه 100 باشه برنامه خیلی خوب کار می کنه
    اما وقتی اندازه رو 200 می کنم کامپایل و پروگرام می شه اما کار نمی کنه
    با دیباگ keil و با سیمولاتور برنامه رو تست کردم و متوجه شدم وقتی اندازه آرایه 200 هست خطای زیر رو میده
    error 65: access violation at 0x0FFFFF18 : no 'read' permission
    به نظرتون چه کاری می تونم انجام بدم که این مشکل رفع بشه؟

    نوعش رو هم به short تغییر دادم اندازه 200 رو قبول می کنه اما اندازه 1000 رو بازم قبول نمی کنه
    ویرایش توسط habibnia : 2016/09/07 در ساعت 14:25
  2. #2
    2012/12/30
    بوشهر
    3,211
    1,133

    پاسخ : memory map

    آرایه بزرگی هستش. چطوری تعریفش میکنی؟ میشه کدتون رو ببینیم؟ و پیغام خطایی که میگیرید الان؟
  3. #3
    2006/11/19
    تهران
    114
    133

    پاسخ : memory map

    آرایه 200 تایی بزرگ نیست. من قبلا این کار رو با at91sam7s64 انجام دادم. سه تا آرایه 1000 تایی تعریف کرده بودم مشکلی هم نبود.



    int main(void)
    {
    short i,j;

    int adcbuffer[8];
    int value[100];
    LPC_GPIO2->FIODIR=1 ; //P2.0


    SystemInit();
    UART0_Init();

    ADC_Init();
    Delay(1000);
    LPC_GPIO2->FIOSET=1;
    Delay(1000);
    LPC_GPIO2->FIOCLR=1;
    for (j=0;j<100;j++)
    {
    for (i=1;i<8;i++)
    {
    adcbuffer[i]=read_adc();
    Delay(2);
    value[j]+=adcbuffer[i];
    }
    }

    for (j=0;j<100;j++)
    {
    LPC_GPIO2->FIOSET=1;
    Delay(50);
    LPC_GPIO2->FIOCLR=1;
    Delay(50);
    }
    }

    الان این یه قسمت از کد هست و کل برنامه کار می کنه.
    اما طول آرایه که 200 می شه کار نمی کنه. البته بدون خطا کامپایل مشه و میکرو هم پروگرام می شه. اما میکرو اصلا کار نمی کنه. وقتی که با شبیه ساز keil دیباگش می کنم پیغام زیر رو می ده:

    *** error 65: access violation at 0x0FFFFF1C : no 'read' permission
    و روی خط زبر گیر می کنه:
    value[j]+=adcbuffer[i];
    ویرایش توسط habibnia : 2016/09/18 در ساعت 15:39
  4. #4
    2012/12/30
    بوشهر
    3,211
    1,133

    پاسخ : memory map

    سلام
    ببخشید طول کشید جواب بدم. حسابی سرم شلوغه. سریم میرم سر اصل مطلب. اینا رو دیدی؟
    این خیلی خوب توضیح داده:


    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    اینا هم هست:

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



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

  5. #5
    2016/06/21
    298
    86

    پاسخ : memory map

    سلام.
    متغییر رو به خارج برنامه منتقل کنید(بصورت عمومی تعریف کنید) ان شا الله مشکل حله
    ویرایش توسط MM320 : 2016/09/20 در ساعت 13:25
  6. #6
    2006/11/19
    تهران
    114
    133

    پاسخ : memory map

    آقای روح الامین عزیز. ممنون از توجه شما.
    قبل از این که این سوال رو مطرح کنم خیلی سرچ کردم و این پیجها رو هم دیدم. اما واقعا برام یه مقدار گنگ بود ( و هنوزم هست ) . مثلا نمی دونم اون فایل INI رو چجوری میشه تعریف کرد.
    از طرفی نمی خواستم با دستکاری نقشه حافظه کاری کنم که رفتارای غیر قابل پیش بینی بروز بده. چون توضیحاتی که توی صفحات پیشنهادی شما ذکر شده بود زیاد برام قابل درک نبود.

    دلیل: ادغام دو پست برای جلوگیری از اسپم

    نقل قول نوشته اصلی توسط MM320

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    سلام.
    متغییر رو به خارج برنامه منتقل کنید(بصورت عمومی تعریف کنید) ان شا الله مشکل حله
    خیلی از جوابتون سپاسگزارم. طبق پیشنهاد شما آرایه رو بردم قبل از تابع main و قبل از همه توابع تعریفش کردم و فعلا توی دیباگر که مشکلش رفع شده.
    حالا میکروکنترلر رو هم پروگرام می کنم و نتیجه رو همینجا اطلاع می دم.
  7. #7
    2012/12/30
    بوشهر
    3,211
    1,133

    پاسخ : memory map

    من فکر کردم شما نمی خوایید متغییر رو گلوبال تعریف کنید.
  8. #8
    2006/11/19
    تهران
    114
    133

    پاسخ : memory map

    نقل قول نوشته اصلی توسط روح الامین

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    من فکر کردم شما نمی خوایید متغییر رو گلوبال تعریف کنید.
    بابت توضیحات ناقص عذر می خوام واقعا.
    الان برنامه رو پروگرام کردم و مشکلش رفع شد.
    تا 8000 می شه طول آرایه رو افزایش داد
    8100 تا که می ذارم کامپایل نمی شه و خطا می ده.
    دستتون درد نکنه
نمایش نتایج: از 1 به 8 از 8

موضوعات مشابه

  1. Out of memory
    توسط reza_rouhi در انجمن Matlab
    پاسخ: 6
    آخرين نوشته: 2015/04/15, 21:11
  2. Memory Map چیه؟
    توسط vahidsport در انجمن پروسسورهای ARM
    پاسخ: 2
    آخرين نوشته: 2013/05/03, 19:59
  3. Out of memory..
    توسط علی سعیدی در انجمن Matlab
    پاسخ: 12
    آخرين نوشته: 2011/11/20, 13:45
  4. memory controler
    توسط anea2801 در انجمن PLD , SPLD , GAL , CPLD , FPGA
    پاسخ: 1
    آخرين نوشته: 2011/07/23, 09:36
  5. SD memory
    توسط sanam در انجمن PLD , SPLD , GAL , CPLD , FPGA
    پاسخ: 7
    آخرين نوشته: 2008/06/25, 09:34

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •