سازمان دهی حافظه در AVR ؟ [7]
در مباحث پیشین گفتیم که معماری میکروکنترلر AVR از نوع هاروارد میباشد.
در این بخش در مورد فضاهای حافظه مورد استفاده در این نوع از معماری بحث خواهیم کرد.
با ما در ادامه مطلب همراه باشید ...
فضای حافظه به 2 بخش اصلی تقسیم بندی میشود :
1.فضای حافظه برنامه
2.فضای حافظه داده
1.حافظه برنامه (Program Memory) :
این فضا همان فضایی است که برنامه نوشته شده توسط برنامه نویس را در خود جای میدهد.
میکروکنترلر AVR دارای حافظه داخلی از نوع FLASH میباشد.به دلیل مسائل امنیتی این فضا به دو بخش کلی تقسیم بندی میگردد :
1.فضای برنامه کاربردی
2.فضای BOOT
به دیاگرام روبرو دقت کنید :
این دیاگرام فضای داخلی حافظه FLASH را نمایش میدهد.
همانگونه که در شکل میبینید بیشتر فضای حافظه FLASH به بخش "فضای برنامه کاربردی" اختصاص داده شده است.
میزان فضای بخش "BOOT" نیز قابلیت تنظیم دارد.
با توجه به کاربردهای خاص بخش BOOT و مباحث BOOT Loader فعلا از توضیح این قسمت چشم پوشی می کنیم.
این فضا همان فضایی است CPU که جهت انجام عملیات پردازشی از آنها استفاده میکند.
این فضا به 4 بخش تقسیم میشود :
1.رجیستر های عمومی (32 عدد)
2.رجیسترهای I/O (ب64 عدد)
3.حافظه داده داخلی (SRAM)
4.رجیسترهای I/O توسعه یافته (Extended Register) ==> * تنها در برخی از میکروکنترلرها
5.حافظه داده خارجی ==> * تنها در برخی از میکروکنترلرها
توضیحات :
1.رجیسترهای عمومی : با نام های R0-R31 شناخته میشوند.نام دیگر آنها فایل رجیستر میباشد.
2.رجیسترهای I/O : اصلی ترین و مهمترین رجیسترهای پردازنده است و هرکدام استفاده خاص خود را دارد که در قسمت بعدی بصورت مفصل در مورد آنها توضیح خواهیم داد.
3.حافظه داده داخلی (SRAM) : پس از تکمیل ظرفیت فضای رجیسترهای عمومی،پردازنده جهت انجام عملیات پردازشی از فضای بزرگتری به نام SRAM استفاده میکند که پیشتر توضیحاتی در اینباره داده شد.
4.رجیسترهای I/O توسعه یافته (Extended Register) : در بعضی از میکروکنترلرها بدلیل امکانات اضافه تری که دارند تعداد 64 عدد رجیستر I/O کافی نبوده و به فضای بیشتری نیاز دارند.
5.حافظه داده خارجی : در بعضی از میکروکنترلرهای AVR این امکان وجود دارد تا در صورت کمبود فضای حافظه داده،بصورت جانبی از 64 کیلوبایت حافظه خارجی نیز استفاده گردد.
*حافظه داده EEPROM :
در مورد این حافظه قبلا توضیحاتی ارائه شده و در اینجا از توضیح بیشتر خودداری میکنیم.تنها برای کامل بودن مبحث،این حافظه را مطرح نمودیم.
تمامی مطالب عنوان شده در این بخش بصورت کاملا مختصر،جهت آشنایی بیشتر شما با اصول و سخت افزار میکرو میباشد.
گفتنی است که در طول بخش های آموزشی بنا به ضرورت،نسبت به توضیح تفصیلی هریک از بخش اقدام خواهیم کرد.
در پایان هم معذرت خواهی میکنم از اینکه شاید از نگارش رسمی تری استفاده کردم و مثل مطالب گذشته،از شیوه بیان بصورت عامیانه استفاده نکردم.دلیل اون هم جدی بودن مبحث و نیاز به خلاصه کردن مطالب بود.
با ما همرا باشید !