CMSIS — początek drogi …

CMSIS — początek drogi …
Razem głosów: 12 co stanowi: 98.33% całości.

imgres

CMSIS <Cortex Microcontroller Software Interface Standard>  To zestaw bibliotek mających za zadanie wspierać developerów i dostawców komponentów pomagających w tworzeniu  systemów wielokrotnego użytku  opartych o mikrokontrolery  ARM z rdzeniem Cortex-M3.  No brzmi ciekawie więc się przyglądniemy temu fenomenowi dokładniej ….

arm_cortex

Rdzeń Cortex -M3 był pierwszym zaprojektowanym przez firmę ARM rdzeniem przeznaczonym dla mikrokontrolerów. Rdzeń ten  zawiera wiele cech wspólnych z innymi konkurentami na rynku miedzy innymi:  NVIC, Timery czy też Sprzętowy Debug, poniekąd ma to za zadanie ułatwić programistom tworzenie oprogramowania np .  systemy RTOS, poświęcając mniej czasu  i energii  umożliwiając łatwe przenoszenie kodu między mikrokontrolerami różnych firm opartymi o rdzeń Cortex-M3. Oczywiście dzięki temu, że znaczna ilość komponentów sprzętowych jest identyczna  w  sporej ilości sprzętu :)

17988_ARM-logo-portada

Warstwa abstrakcji HAL może być wręcz identyczna, ale mimo że wielu producentów zdecydowało się na produkcję mikrokontrolerów  z rdzeniem ARM Cortex-M3 , brakowało wspólnego standardu . W zasadzie można było znaleźć wiele rozwiązań i bibliotek HAL czy też „sterowników” urządzeń, które u różnych producentów mikrokontrolerów CORTEX-M3  dotyczyły tego samego – ale zrobione były inaczej …

Nie ma takie podejście dobrego wpływu na rynek , a tworzenie oprogramowania robiło się zbyt złożone i kosztowne.  Tymczasem wypracowanie standardu umożliwi ponowne wykorzystanie oprogramowania gdyż będzie ono wspólnym standardem , tak więc jeśli jest to Cortex-M3 to nie ważne czy STM, Freescale, NXP  czy inni …  bo przecież sposób pisania programu się nie zmieni , podobnie jak debugowanie,  a może to podejście spowodować uproszczenie i obniżenie kosztów przyszłego rozwoju.

Gdy mikrokontrolery oparte o rdzeń Cortex-M3 pojawiały się niczym grzyby po deszczu z różnych firm  , ARM uznał, że mimo rozwiązania problemu różnorodności na stronie sprzętowej jest potrzeba stworzenia standardu dostępu do elementów sprzętowych. I właśnie rezultatem tych starań jest CMSIS. Dzięki CMSIS  możemy korzystać ze wspólnego API dla określonych podstawowych elementów, w ramach oczywiście „ram”, które określają w jaki sposób części konkretnego urządzenia które mogą być wdrożone przez producentów , a programiści mogą ponownie wykorzystać kod lub opracować nowy dla dowolnego urządzenia opartego na rdzeniu ARM Cortex-M.


 

Struktura

 

CMSIS dzieli się w zasadzie na 3 podstawowe warstwy funkcyjne :

  • warstwa bazowa  CPAL (Core Peripheral Access Layer)
  • warstwa dostępu  MWAL (Middleware Access Layer)
  • warstwa peryferii  DPAL (Device Peripheral Access Layer)

PrzechwytywanieCMSIS

 

Jak widać struktura funkcjonalna CMSIS nie jest specjalnie skomplikowana jednak należałoby się wyjaśnić strategiczne znaczenie warstw funkcyjnych … zatem … <będzie chyba trochę nudnawo>

CPAL :

Stanowi najniższy poziom dostępu i określa adresy oraz metody dostępu do wspólnych elementów i funkcji, które istnieją w każdym mikrokontrolerze opartym o Cortex-M. Umożliwia dostęp do rejestrów podstawowych , NVIC i podsystemu debugera oraz umożliwia specyficzny dostęp do specjalnych tzw. purposeregisters (np. Control, xPSR) narzędzia te są dostarczane w w postaci funkcji wbudowanych lub jako dodatek kompilatora.

MWAL:

Ta warstwa też jest zdefiniowana przez ARM, ale jest dobierana przez producentów krzemu do odpowiednich urządzeń. Ta warstwa definiuje wspólny interfejs API umożliwiający dostęp do peryferii Middleware. Niemniej jeszcze jest ona w fazie testów i rozwoju wiec przyjdzie nam nieco poczekać …

DPAL:

Określa adresy sprzętowe rejestrów oraz definiuje dostęp do określonych funkcji urządzenia określonego w tej warstwie. AccessLayer jest bardzo podobny do CorePheriperial i jest dostarczany przez dostawcę krzemu. Metody dostępu moga się odwoływać do tabel wektorów używanych przez CPAL  i są dostosowane do konkretnego urządzenia . np adresy obsługi wyjątków.  Co ciekawe choć DPAL jest implementowany przez producenta krzemu, nie możemy zapomnieć o implementacjach rdzenia Cortex-M w oparciu o FPGA, dzięki czemu developer może być na poziomie producenta krzemu.

Korzyści ze stosowania standardu takiego jak CMSIS są bardzo duże , istniejące wytyczne w jaki sposób uzyskiwać dostęp do urządzeń pozwalają na łatwe i jasne sposoby wdrażania i integrować krytyczne części oprogramowania.

To by było na tyle słowem wprowadzenia. Teraz sami siebie spytajcie czy sens ma to podejście czy nie … , a następnym razem poznamy więcej szczegółów i strukturę CMSIS oraz się nauczymy z dobrodziejstwa korzystać :)

Podziel się na:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogplay

Jedna myśl nt. „CMSIS — początek drogi …

Możliwość komentowania jest wyłączona.