پاسخ : سوال :کمبود حافظه فلش avr
برای رفع مشکلت شما باید ساختار برنامه رو تحلیل کنی. مثلا:
- در مرحله اول یک سری کد و دیتا داریم. فعلا فرض رو بر این میذاریم که کد ها رو نمیشهو نمیخواییم به حافظه جنبی منتقل کنیم. پس میمونه دیتا.
- دیتا رو میشه بفرم ثابت و متغیر در نظر گرفت. داده ثابت میتونه یک رشته باشه مثل "Hello World" میتونه یک فونت باشه یا عکس. اما یادتون باشه که در مگا 32 شما میتونی اطلاعتت رو مستقیما از فلش بخونی اما موقعی که اطلاعات به حافظه بیرونی انتقال پیدا میکنه باید ابتدا داخل میکرو آورده بشه و بعد استفاده بشه. اینجور مواقع شاید درست نباشه مثلا یک عکس تمام صفحه برای نمایش روی ال سی دی 64 در 128 رو که 1024 بایت حجمش هست رو یکباره داخل حافظه آورد. و مثلا بهتره این 1 کیلو بایت در واحد های مثلا 8 بایتی خونده بشه و برای جلوگیری از کاهش سرعت نمایش مستقیما در بافر lcd نوشته بشه. یا یک فونتی که ممکنه 3 الی 4 کیلو حجمش باشه رو اصلا نمیتونی تو 2 کیلو حافظه رم میکرو جا بدی. پس باید یک مکانیسم caching استفاده کنی و این لازمه اش اینه که روالهای نمایش متن رو عوض کنی......
میبینی. خیلی فاکتورهای متفاوتی وسط میاد. تازه بگذریم که جنابعالی باید حداقل چیزی حدود 700 تا 800 بایت برای استفاده از mmc حروم کنی که این ممکنه با استفاده از at24 به کمتر از 200 بایت برسه. اما به ازای 64 کیلو بایت حافظه باید 3 الی 4 تومن پول بدی.
راحتت کنم! روی مرز محدودیت های سیستم از همه نظر داری راه میری. تا اطلاعات جزئی وسط نباشه یا یه کمی مرز ها رو اونورتر نبری با انتخاب آی سی بزرگتر؛ فقط دنبال دردسر میری.
برای رفع مشکلت شما باید ساختار برنامه رو تحلیل کنی. مثلا:
- در مرحله اول یک سری کد و دیتا داریم. فعلا فرض رو بر این میذاریم که کد ها رو نمیشهو نمیخواییم به حافظه جنبی منتقل کنیم. پس میمونه دیتا.
- دیتا رو میشه بفرم ثابت و متغیر در نظر گرفت. داده ثابت میتونه یک رشته باشه مثل "Hello World" میتونه یک فونت باشه یا عکس. اما یادتون باشه که در مگا 32 شما میتونی اطلاعتت رو مستقیما از فلش بخونی اما موقعی که اطلاعات به حافظه بیرونی انتقال پیدا میکنه باید ابتدا داخل میکرو آورده بشه و بعد استفاده بشه. اینجور مواقع شاید درست نباشه مثلا یک عکس تمام صفحه برای نمایش روی ال سی دی 64 در 128 رو که 1024 بایت حجمش هست رو یکباره داخل حافظه آورد. و مثلا بهتره این 1 کیلو بایت در واحد های مثلا 8 بایتی خونده بشه و برای جلوگیری از کاهش سرعت نمایش مستقیما در بافر lcd نوشته بشه. یا یک فونتی که ممکنه 3 الی 4 کیلو حجمش باشه رو اصلا نمیتونی تو 2 کیلو حافظه رم میکرو جا بدی. پس باید یک مکانیسم caching استفاده کنی و این لازمه اش اینه که روالهای نمایش متن رو عوض کنی......
میبینی. خیلی فاکتورهای متفاوتی وسط میاد. تازه بگذریم که جنابعالی باید حداقل چیزی حدود 700 تا 800 بایت برای استفاده از mmc حروم کنی که این ممکنه با استفاده از at24 به کمتر از 200 بایت برسه. اما به ازای 64 کیلو بایت حافظه باید 3 الی 4 تومن پول بدی.
راحتت کنم! روی مرز محدودیت های سیستم از همه نظر داری راه میری. تا اطلاعات جزئی وسط نباشه یا یه کمی مرز ها رو اونورتر نبری با انتخاب آی سی بزرگتر؛ فقط دنبال دردسر میری.
دیدگاه