اطلاعیه

Collapse
No announcement yet.

معرفی CMSIS

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    معرفی CMSIS

    CMSIS مخفف Cortex Microcontroller Software Interface Standard و یک استاندارد برای معماری Cortex هست که توسط ARM ایجاد شده و توسط شرکت های سازنده چیپست های مبتنی بر ARM پشتیبانی میشود. هدف این استاندارد کمک به برنامه نویسها برای ایجاد نرم افزارهای قابل استفاده مجدد برای سیستم های مبتنی بر ARM Cortex-M می باشد. بطوریکه بتوانند برنامه نوشته شده را بر روی چیپستهای تولید کننده های مختلف استفاده نمایند.
    سری پردازنده های Cortex-M3 اولین هسته ARM هست که به طور اختصاصی برای میکروکنترلرها طراحی شده و دارای ویژگی های مشترکی مانند (NVIC, Timer, Debug-hardware) هستند که برای میکروکنترلرها لازم بوده و برای برنامه نویسها این امکان رو ایجاد میکند تا برنامه ها را با کمترین تلاش روی میکروکنترلرهای مختلف پورت کنند.
    آخرین بررسی ها روی هزینه های پیاده سازی سیستم های نهفته (Embed) نشان میدهد که پیچیدگی نرم افزاری این سیستمها و هزینه های طراحیشان با گذشت زمان بیشتر و بیشتر شده و استفاده از یک استاندارد میتواند باعث کاهش پیچیدگی سیستمها و در نتیجه کاهش هزینه طرح ها شود. هدف CMSIS هم دقیقا همین منظور است.

    CMSIS را میتوان به 3 لایه کاربردی تقسیم نمود :

    • Core Peripheral Access Layer (CPAL)
    • Middleware Access Layer (MWAL)
    • Device Peripheral Access Layer (DPAL)


    لایه اول که پایین ترین لایه هست مربوط به آدرس ها و روش های دسترسی به بخش هایی ابتدایی مثل رجیسترهای CPU ، واحد NVIC و دیباگ هست که در هر سیستم مبنی بر هسته Cortex-M وجود دارد.این لایه توسط ARM ایجاد میشد. core_cm3.h

    لایه دوم هم توسط ARM ایجاد میشود ولی تولید کننده ها میتوانند برای سازگاری با محصولاتشان تغییراتی اعمال نمایند. این لایه شامل یک سری توابع API برای دسترسی به تجهیزات جانبی هست. system_device.h

    لایه سوم مستقیما توسط تولید کننده ها ایجاد شده و شامل آدرس سخت افزاری رجیستر ها و توابع دسترسی به قابلیتهای خاص هست. device.h

    مثلا برای STM32 :

    برنامه های نوشته شده با CMSIS در سه بعد کارخانه سازنده چیپ، میکروکنترلر و کامپایلر ممکن است با هم تفاوت داشته باشند. برای حذف مشکل متفاوت بودن کامپایلرها در فایلهای مشترک core_cm3.c و core_cm3.h طوری نوشته شده اند که نوع کامپایلر شناسایی شده و تعریف های مخصوص هر کدام اعمال میشند. به طور مثال برای اینکه تابع ماکرو ASM و INLINE بدون مشکل توسط هر سه کامپایلر تشخیص داده شود کدهای زیر در فایل core_cm3.h نوشته شده اند :

    /* define compiler specific symbols */
    #if defined ( __CC_ARM )
    #define __ASM __asm
    #define __INLINE __inline
    #elif defined ( __ICCARM__ )
    #define __ASM __asm
    #define __INLINE
    #define __nop __no_operation
    #elif defined ( __GNUC__ )
    #define __ASM asm
    #define __INLINE inline
    #endif

    در حال حاضر CMSIS از سه کامپایلر مشهور زبان C ، ARM RealView (armcc) ، IAR EWARM (iccarm) وGNU Compiler Collection (gcc) پشتیبانی میکند.
    علاوه بر اینکه توابع نوشته شده برای هسته Cortex-M شامل سطرهای راهنما برای چگونگی پشتیبانی تجهیزات مختلف میباشند CMSIS با استاندارد MISRA-C 2004 نیز سازگار شده است.این استاندارد شامل مجموعه ای از قوائد ایمنی سازی برای زبان برنامه نویسی C می باشد که توسط Motor Industry Software Reliability Association ایجاد شده است.

    نویسنده : رامین جعفرپور

    #2
    پاسخ : معرفی CMSIS

    طی چند روز آینده آموزش هایی برای بکار گیری CMSIS داده خواهد شد و سپس برنامه های نمونه متنوعی بر مبنای برد آموزشی NXP LPC 1768 در انجمن مربوطه ارائه خواهد شد.http://www.eca.ir/forum2/index.php?board=304.0
    امیدواریم تا این آموزش های منسجم بتوانند نیازهای کاربران رو تامین کنند.

    دیدگاه


      #3
      پاسخ : معرفی CMSIS

      کامپایلر استفاده شده برای پروژه ها Keil MDK 4.22a هست.این ورژن که آخرین ورژن هست رو میتونین از لینک زیر دانلود کنین . قبل دانلود فرم رو پر کنین و اگه سریال خواست با Keygen ورژنهای قبلی یه سریال درست کنین .
      https://www.keil.com/demo/eval/arm.htm
      همونطور که در پست اول اشاره شد CMSIS از سه لایه تشکیل شده است. فایلهای این سه لایه تو پوشه های مختلف Keil قرار دارن و برای اینکه پیدا کردن و اضافه کردن اونها به پروژه وقت زیادی نگیره تو پروژه ها یه پوشه به اسم CMSIS درست میکنیم و فایلها رو انونجا قرار میدیم. اینطوری علاوه بر راحت شدن کار، پروژه ها با جا به جایی به این ور اون ور مشکلی براشون پیش نمیاد و تو نسخه های مختلف keil هم کامپایل میشن.
      شرکت NXP برای راه اندازی اکثر بخش های میکرو مثل GPIO ، UART و .. فایلهای درایور ارائه کرده که مبنای کار ما هم بر اساس این فایل ها خواهد بود.
      فایلهای درایور ضمیمه پست شدن و باید پس از دانلود در مسیر زیر قرار گیرن :
      Keil drive:\Keil\ARM\INC\NXP\LPC17xx
      فایل های پیوست شده

      دیدگاه


        #4
        پاسخ : معرفی CMSIS

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

        خوبه این صفحات هم به این قسمت اضافه بشه :

        http://www.eca.ir/forum2/index.php?topic=56729.0

        http://www.eca.ir/forum2/index.php?topic=52485.0

        دیدگاه


          #5
          پاسخ : معرفی CMSIS

          با سلام
          در صورت امکان بیشتر در مورد کتابخانه ها و نحوه استفاده بفر مایید . و از ابتدای راه اندازی ، اصولا بچه ها اول کار را مشکل دارند یکم که راهنمایی کنید تا جایی که لازم داریم پیش میریم .
          یک سوال : ازکجا میتونم اطلاعات این کتابخانه در کیل را گیر بیارم و باهاش کار کنم .
          stm32f10xr.lib
          من توی st تازه کارم بابت سوال ابتدایی معذرت میخوام .

          با تشکر .

          دیدگاه


            #6
            پاسخ : معرفی CMSIS

            نوشته اصلی توسط امیرعلی بلورچیان
            طی چند روز آینده آموزش هایی برای بکار گیری CMSIS داده خواهد شد و سپس برنامه های نمونه متنوعی بر مبنای برد آموزشی NXP LPC 1768 در انجمن مربوطه ارائه خواهد شد.http://www.eca.ir/forum2/index.php?board=304.0
            امیدواریم تا این آموزش های منسجم بتوانند نیازهای کاربران رو تامین کنند.
            سلام
            خسته نباشید خدمت دوستان
            اینم تاپیک پروژه هایی تحت cmsis برای LPC1768 و قراره که کامل بشه
            http://www.eca.ir/forum2/index.php?topic=76623.0

            لطف کنید و مدیران سایت این تاپیک را مهم و سنجاق دار کنند تا استقبال بهتری صورت گیرد :wow:
            امید وارم شما هم همکاری لازم را بفرمایید :applause:
            [glow=red,2,300]برنامه هاي آموزشي تست شده براي NXP LPC1768 با توابع CMSIS[/glow]
            http://www.eca.ir/forum2/index.php?topic=76623.0

            دیدگاه

            لطفا صبر کنید...
            X