CMSIS چیست؟

به نام خدا،

در مقاله ای که پیش رو دارین قصد داریم با توضیحاتی اندک با واژه CMSIS بیشتر آشنا شویم و یا به طور مختصر توضیح دهیم CMSIS چیست؟.

با معرفی نسل اول Cortex های سری “M” واژه CMSIS  که مخفف Cortex Microcontroller Software Interface Standard است نیز به گوش می رسید. این تکنیک به منظور نزدیک تر کردن برنامه نویسی میکرو کنترلرها به یکدیگر به کار گرفته شد.

یکی از مشکلاتی که در میکروکنترلر های با هسته ARM به چشم می خورد تغییرات زیاد بین سری های مختلف بود. این تغییرات کاربران قدیمی میکروکنترلر ها نظیر کسانی که با PIC و AVR ها کار می کردند و کاربران جدید که به عنوان اولین میکروکنترلر با ARM ها آشنا شده بودند را آزار می داد؛ چرا که در هر میکرومنترلر رجیسترها تغییر می کرد و کار با امکانات قبلی که کاربران آموخته بودند دشوار می شد و نیازمند مطالعه مجدد می گشت. این مشکل در نگاه اول دو راه حل داشت یکی یکسان سازی رجیسترهای میکروکنترلرهای جدید و راه دیگر ارائه یک لایه نرم افزاری برای یکسان سازی برنامه نویسی. بدلیل این که تغییرات سخت افزاری به مراتب کاری سخت تر نسبت به تغییرات نرم افزاری است شرکت ARM تصمیم به ارائه راه حل لایه نرم افزاری گرفت. در طراحی نسل های جدید پردازنده های ARM یعنی سری Cortex ها سازندگان میکروکنترلرها همراه برگه های اطلاعاتی درایور هایی نیز ارائه می کنند که لایه سطح بالای آن ها یعنی توابع و دستوراتی که کاربران به آن ها نیاز دارند یکسان است و تفاوت در لایه های سطح پایین یعنی در دسترسی های رجیستری است که معمولا کاربران به آن ها یا نیاز ندارند و یا در موارد خاصی به آن ها نیاز پیدا می کنند.

به این درایورها و سایرفایل هایی که از سوی شرکت های سازنده میکروکنترلر ارائه می گردد CMSIS می گویند.

یکی از بزرگترین مزیت هایی که CMSIS ها به کاربران می دهند ،مستقل فکر کردن به برنامه است. به این معنی که یک برنامه نویس برای پیاده سازی الگوریتم خود نیازی نیست به جزییات رجیستری هم فکر کند،تنها کافی است با آشنایی به توابع مورد نیاز خود ،الگوریتم مورد نیاز را پیاده سازی کند.

دیگر مزیت استفاده از توابع CMSIS کاهش تغییرات نرم افزاری در زمان تغییرات سخت افزاری می باشد. به این معنی که کاربران میکروکنترلر های ARM می توانند چیپ های خود را تغییر دهند و تغییرات کمی از نظر نرم افزاری داشته باشند ،البته بدیهی است که این عمل به شرطی امکان پذیر است که چیپ تغییر یافته امکانات چیپ قبلی را پوشش دهد.

CMSIS ها به طور کلی به هفت دسته تقسیم می شوند که هر کدام را به طور مختصر شرح می دهیم.

CMSIS چیست؟

  1. CMSIS-CORE : این دسته واسط بین پردازنده سری Cortex-M و امکانات جانبی میکروکنترلر می باشد.
  2. CMSIS-DRIVER : این دسته از CMSIS ها دریوار و راه اندازهای امکانات جانبی را شامل می شوند. این گروه امکان برقراری ارتباط با لایه میانی(میان افزار) را ممکن و استفاده از آن ها را ساده تر می کنند.Driver
  3. CMSIS-DSP : این کتابخانه بیش از 60 تابع که برای عملیات روی دیتا های مختلف (اعداد ثابت و اعداد اعشاری با یک رقم اعشار) را جمع آوری کرده است.
  4. CMSIS-RTOS API : واسط رایج برای سیستم هایی با عملیات های Real-Time می باشد. این دسته واسط نرم افزاری استانداردی را ارائه می کند که بسیاری از سیستم های RTOS را قادر به پرتابل شدن می کند ،در نتیجه سیستم را قادر می سازد از  قالب های نرم افزاری، لایه میانی(میان افزار)،کتابخانه ها و سایر قطعات که سیستم عامل RTOS پشتیبانی می کند استفاده کند.RTOS
  5. CMSIS-PACK : این دسته توضیحاتی را به کاربر درمورد اجزای مرتبط به قطعه می دهد، این پک شامل سورس،هدر، کتابخانه ها، مقاله های مورد نیاز،الگوریتم های پروگرام کردن حافظه فلش،نمونه کدها و پروژه های نمونه می باشد. ابزارات توسعه و وب سایت ها از این فایل که با نام PDSC شناخته می شوند، برای استخراج پارامتر های قطعات،اجزای نرم افزاری و ساختار برد های آموزشی استفاده می کنند.
  6. CMSIS-SVD : سیستم توضیح و توصیف امکانات جانبی می باشد. امکانات جانبی یک قطعه را توصیف می کند و می تواند برای دریافت اطلاعات از یک بخش قطعه(یکی از امکانات قطعه) در دیباگر ها و هدر فایل ها مورد استفاده قرار گیرد.
  7. CMSIS-DAP : دسترسی به پورت دیباگ (Debug Access Port). یک FirmWare استاندارد برای اتصال به بخش دیباگ و اشکال زدایی می باشد و به پورت دسترسی به واحد اشکال زدایی هسته (CoreSight) متصل می شود.
0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *