در این نوشته قصد دارم در مورد کتابخانه های CMSIS صحبت کنم که اولین قدم در برنامه نویسی میکرو های ARM هستند.
مقدمه
همانند برنامه نویسی در سیستم عامل , برنامه نویسی سیستم های نهفته هم رو به پیچیدگی است . در حال حاضر بیشتر از هر زمانی توسعه دهندگان سیستم های نهفته از کد های شخص ثالث استفاده می کنند . کمپانی ARM کتابخانه CMSIS را که مخفف Cortex Microcontroller Software Interface Standard هست را معرفی کرده است که اجازه برنامه نویسی با سرعت بیشتر را در صنعت میدهد .
مشخصات CMSIS
هدف اصلی CMSIS توسعه قابلیت انتقال و قابلیت دوباره استفاده کردن از کد نوشته شده میان میکروکنترلر های مختلف و ابزار های مختلف است .در نگاه ساده CMSIS باعث افزایش سرعت از طریق استفاده از توابع استاندارد است
خوبCMSIS دقیقا چی هست؟
CMSIS شامل ۵ مشخصه به هم پیوسته است که توسعه کد در میکروکنترلر های Cortex_M را پشتیبانی می کند .۴ تا از این مشخصه ها بدین صورت هستند : CMSIS core – CMSIS RTOS – CMSIS DSP – CMSIS SVD و CMSIS DAP
خوب CMSIS چی نیست ؟!!
CMSIS یک لایه پیچیده نیست که شما را مجبور به استفاده از یک کتابخانه بزرگ کند .CMSIS تلاشی برای ساده کردن پریفرال ها با ارائه روش استاندارد نمی کند تا از یک روش برای راه اندازی پریفرال های شرکت های مختلف استفاده کنید بلکه هسته CMSIS حجم خیلی کمی از منابع ( ۱ کیلوبایت از قسمت کد و ۴ بایت از RAM) را استفاده می کند و فقط روش دسترسی شما به CPU و رجیستر های آن را استاندارد می کند !
CMSIS را میتوانید از سایت خود ARM دانلود کنید البته CMSIS در نرم افزار keil وجود دارد
خوب الان سعی می کنم در مورد CMSIS core و CMSIS DSP توضیح مختصری بدم و از توضیحات قسمت های دیگه صرف نظر کنم .
CMSIS core
قسمت core حداقل توابع و ماکرو ها رو برای دسترسی به رجیستر ها کلیدی CPU فراهم می کند . همچنین این قسمت یک تابع برای پیکربندی ساختار کلاک و اسیلاتور معرفی می کند پس زمانی که شما به تابع main() رسیدید میکرو آماده به کار است . در نهایت این قسمت اسم های رجیستر های هر پریفرال را استاندارد می کند .
بد نیست اگر یه سری به داخل این فایل ها بزنید و نحوه دسترسی به رجیستر ها و پریفرال ها رو ببینید 😉
CMSIS DSP
قسمت(DSP(digital signal controller در میکرو های سری Cortex_M4 برای پشتیبانی از الگوریتم های پردازش سیگنال قرار داده شده است . برای کمک به استفاده از الگوریتم های پردازش سیگنال , CMSIS شامل کتابخانه ای می شود که بیش از ۶۰ تا از متداول ترین توابع ریاضی پردازش سیگنال را شامل می شود . در مورد این بخش سعی می کنم بعدا آموزشی رو بذارم.
اینم از توضیح مقدماتی در مورد این کتابخونه در قسمت بعدی سعی می کنم در مورد قوانین به کار رفته در نحوه تعریف توابع و ماکرو ها و در بخش آخر در مورد ساختار این کتابخانه و نحوه استفاده از ماکرو های آن صحبت می کنم.
امیدوارم مطلب بتونه درک کمی در مورد نحوه برنامه نویسی این میکرو ها بهتون بده.
این مطالب را هم بخونید::
آموزش میکروکنترلرهای LPC1768 جلسه چهارم: معرفی CMSIS
اگر این نوشته برایتان مفید بود لطفا کامنت بنویسید.
ممنون بابت وقتی که برای انتشار مطالب صرف می کنید./.