خانه / میکروکنترلرها / میکروکنترلر های ARM / مطالب آموزشی میکروکنترلرهای ARM / آموزش میکروکنترلرهای LPC1768 جلسه چهارم: معرفی CMSIS

 

آموزش میکروکنترلرهای LPC1768 جلسه چهارم: معرفی CMSIS

CMSIS یک رابط نرم افزاری استاندارد شده برای برنامه نویسی میکروکنترلرهای ARM با هسته Cortex میباشد.این توابع (رابط نرم افزاری استاندارد برای میکروکنترلرهای  Cortex ) در سال 2008 توسط شرکت ARM معرفی شدن تا برنامه نویسی این سری از میکروکنترلرها را استاندارد کنن و قابلیت استفاده از نرم افزار را بهبود بخشن یعنی بشه براحتی روی میکروکنترلر شرکت دیگری که با این هسته ساخته شده برنامه را اجرا کرد.

 

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

خب CMSIS دارای یکسری فایل های هست که سازنده میکروکنترلر در اختیار برنامه نویسان قرار میده و در پروژه کافیه اونا را فراخوانی کنید.

بطور خلاصه CMSIS برنامه نویسی را خیلی آسانتر و هزینه نرم افزار نویسی را پایین میاره.

معرفی لایه های مختلف CMSIS

معرفی توابع CMSIS

به عکس بالا دقت کنید به رنگ ها بیشتر دقت کنید هر رنگ نمایانگر یک لایه میباشد در لایه پایین میکروکنترلر یا سخت افزار قرار دارد و در لایه های بالایی نرم افزار باز هم در لایه نرم افزار یکسری لایه ها به سخت افزار نزدیکتر هستند و یکسری به کاربر نزدیک هستن! در زیر به برسی موارد مهم می پردازیم:

حتما در ادامه این مطلب را هم بخوانید:  واحد کنترل اینتراپت بخش دوم(NVIC)
لایه CMSIS-CORE

این لایه واسط بین پردازنده های سری Cortex-M و امکانات جانبی میکروکنترلر میباشد.

بطور مثال Core_cm3.h و System_lpc17xx.h از این دسته بندی میباشد.

لایه CMSIS-DRIVER

در این لایه درایور و راه اندازهای امکانات جانبی میکروکنترلر وجود دارند.

بطور مثال در این لایه lpc17xx_gpio.h و کتابخونه های دیگر وجود دارند که باهاشون بیشتر کار داریم.

لایه های CORE-DSP ,CMSIS-RTOS,CMSIS-PACK-CMSIS-SVD,CMSIS-DAP نیز وجود دارند که میتوانید در سایت ARM در مورد اینا بخونید 🙂 در این مرحله بدردمون نمیخورن.

اضافه کردن CMSIS به پروژه ها

برای اضافه کردن توابع CMSIS  به محیط برنامه نویسی کافیه فایل های آن را از شرکت سازنده  دانلود کنید و طبق راهنمای آن استفاده کنید در این آموزش ها ما از کامپایلر Keil استفاده میکنیم و درایور را از لینک زیر دانلود کنید.

دانلود

افزودن فایل های Core به پروژه

در Keil وقتی پروژه باز میکنید ( در جلسه قبل نحوه ایجاد پروژه در Keil را یاد گرفتیم ) فایل startup_LPC17xx.s و دوتا فایل Core_cm3.h و System_lpc17xx.h به پروژه خود به خود اضافه میشن و خود به خود به پوشه پروژه کپی میشن و اگر نشدن و یا خودتان میخواهید دستی این کار را انجام دهید در بین فایل های CMSIS که دانلود کردید یک پوشه به اسم Core هست که داخل آن این فایل ها هست کپی کنید و ببرید داخل پوشه پروژه و از قسمت پروژه Keil به پروژه معرفی کنید.

حتما در ادامه این مطلب را هم بخوانید:  آموزش میکروکنترلرهای LPC1768 جلسه ششم: مبدل آنالوگ به دیجیتال lpc17xx_adc.h
افزودن فایل های Driver به پروژه

همراه فایل های CMSIS یک پوشه هست به اسم Drivers که داخل آن کل کتابخونه های درایور برای کار با امکانات میکروکنترلر هستن مثل GPIO ,SPI,USB خب داخل این پوشه بازم دوتا پوشه هست به اسم های  که include, source داخل include فایل های h و داخل source فایل های C وجود دارند. شما میتونید. هر دو پوشه را داخل پروژه کپی کنید تا راحت بشید ولی چون حجم پروژه زیاد میشه میتونید به هر کدام از فایل ها که نیاز داشتیم از هر دو پوشه کپی کنید داخل پوشه پروژه.

مثلا : میخواهیم با پورت های ورودی و خروجی LPC1768 کار کنیم

روش اول از داخل هر دو پوشه فایل های زیر را کپی میکنیم به پوشه پروژه lpc17xx_gpio.c , lpc17xx_gpio.h  و  البته شاید به فایل های زیر هم نیاز داشته باشیم lpc17xx_libcfg_default.H وlpc_types.h  که این اینطوری حجم پروژه کم میشه و البته در خروجی هگز تاثیر نداره فقط حجم پوشه پروژه زیاد میشه.

روش دوم کل پوشه های include, source  را بصورت پوشه ای کپی میکنیم داخل فایل پروژه و هر فایلی را نیاز داشتیم فراخوانی میکنیم.

فراخوانی کتابخانه های CMSIS در پروژه

خب تا این مرحله یا توابع CMSIS آشنا شدیم و متوجه شدیم چطوری این فایل ها را به پروژه اضافه کنیم حالا باید این فایل ها را در پروژه فراخوانی کنیم.

حتما در ادامه این مطلب را هم بخوانید:  آموزش میکروکنترلرهای LPC1768 جلسه یازدهم: تایمر های LPC1768

از قسمت پروژه فایل های هدر را به پروژه اضافه کنید مثل شکل زیر که در جلسه قبل توضیح دادیم. فایل های کتابخونه ها را که با پسوند C هستن را به به پروژه اضافه کنید.

اضافه کردن فایل سی به فایل های پروژه keil : ایجاد پروژه در keil

روش اول فایل ها در پوشه پروژه هستن نه در زیر پوشه ، اون موقع بصورت زیر فراخوانی میکنیم.

 #include “lpc17xx_gpio.h”

روش دوم وقتی که فایل های هدر داخل پوشه هستن مثلا پوشه inc داخل پوشه پروژه باشن:

#include “inc/lpc17xx_gpio.h”

 

در جلسه بعدی کار با پورت های ورودی و خروجی (lpc17xx_gpio.h) های میکروکنترلر را شروع میکنیم.

همه جلسات این آموزش ها را اینجا ببینید.

اگر سوالی داشتین در قسمت نظرات و یا اینجا مطرح کنید.

درباره ی جهاندیده

با سلام درود به شما که مطالب سایت خودتان را مطالعه می کنید امیدوارم مطالب سایت برایتان مفید باشد و باعث پیشرفت روز افزون شما شود. دوران راهنمایی در کار منتاژ کیت های الکترونیکی بودم تا رفتم هنرستان ^_^ دو سال هنرستان الکترونیک خیلی چیزها یاد گرفتم ! دو سال کاردانی الکترونیک و کارشناسی ICT گرایش بهره برداری از سیستم های مخابراتی پر از تجربه بود و مدتی است در الکترونیک دنیای مشغولم . الکترونیک – تکنولوژی – ICT ، برنامه نویسی …

3 دیدگاه

  1. با سلام
    برای رفع این error چکاری لازمه انجام بدم؟
    lpc17xx_gpio.h(38): error: #5: cannot open source input file “lpc_types.h”: No such file or directory
    lpc17xx_gpio.h: #include “lpc_types.h”

  2. خیلی خیلی خیلی ممنون بابت مطالب فوق العادتون

پاسخ دهید

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