CMSIS چیست ؟
CMSISیک واسط نرم افزاری بین برنامه
نویس ، هسته آرم ، سیستم عامل و امکانات جانبی میکرو می باشد که کار با امکانات جانبی
را ساده میکند و در ضمن زمان سازگاری کد در هنگام تعویض قطعه را کاهش میدهد.
هر شرکت برای میکروهای خود فایل های درایور cmsis
را تولید کرده و شما کافی است آن ها را از سایت شرکت دانلود
کرده و به پروژه خود اضافه کنید. نحوه کارکرد آن ها نیز در سایت می باشد.(به فایل ایجاد
اولین پروژه مراجعه کنید)
فایل های cmsis مربوط به startup نیز در پوشه نصب نرم افزار کیل می باشد. به راهنما قسمت
Folder structure و همچنین فایل ایجاد اولین پروژه مراجعه
کنید.
نحوه استفاده از CMSIS ؟
تنظیمات و راه اندازی تمام درایور ها به صورت ساختارها تعریف
شده اند.
کافی است این ساختارها را با گزینه های موجود پر کنید و دستور
تنظیم در اساس آن ساختار را بدهید.
تمام این ساختارها و دستورات در هدر های هر درایور موجود است.
برای مثال میخواهیم
GPIOB.0 را به عنوان خروجی و با مقاومت بالا کش با قابلیت
کار تا فرکانس 50 مگا هرتز تنظیم کنیم.
اولا این که از کجا متوجه می شویم که میشود یک پایه را با این حالت تنظیم کرد
و برای مثال آیا مقاومت پایین کش دارد یا نه؟ آیا یک پایه میتواند در حالت ورودی باشد
یا نه؟ و یا مثلا یک تایمر چه مکاناتی دارد که ما بخاهیم توسط این ساختارها آن امکانات
را انتخاب و برخی را فعال و برخی را غیر فعال کنیم؟ و از این قبیل سوالات، جواب این
سوالات در دیتاشیت Reference Manual قطعه موجود است.
ابتدا یک متغییر بر اساس ساختار تعریف میکنیم.
GPIO_InitTypeDef
GPIO_Init_Structure;
GPIO_InitTypeDef
یک ساختار
است که در هدر stm32f10x_gpio.h تعریف
شده است.
سپس ساختار را مطابق با تنظیم دلخواه پر میکنیم.
GPIO_Init(GPIOB,
&GPIO_Init_Structure);
دستور GPIO_Init در هدر stm32f10x_gpio.h تعریف شده است.
حرف آخر :
به طور کلی برای استفاده از درایور های بالا شما نیاز به مطالعه منابع زیر دارید:
- دیتا شیت Reference Manual قطعه (RM0008)
-
توضیحات درایور که در یک فایل راهنما در کنار درایور ها موجود است و همچنین در حال حاظر در لینک نیز موجود است. برای مطالعه درایور ها در لینک فوق به قسمت Modules رفته و سپس گزینه STM32F10X_Stdperiph_Driver را باز کنید.
- مطالعه هدر فایل های هر درایور.
- مثال هایی که در دسترس است.
روند کار برای همه سخت افزارها چیزی مشابه با مثال بالا است.