piątek, 10 stycznia 2014

AN2953 Migracja do nowej biblioteki(API) Standard Peripherals Liblary

O CMSIS
   Bibilioteka STM32F10x Standard Peripherals Liblary V3.5.0 wykorzystuje uniwersalny standard CMSIS(Cortex Microcontroler Software Interface Standard), który został stworzony przez firmę ARM
do komunikacji z peryferiami i rdzeniem Cortex za pomocą ustandaryzowanych funkcji i definicji.
CMSIS dostarcza nam narzędzia do obsługi układów peryferyjnych, systemów czasu rzeczywistego
czy Ethernetu i UART'a. Jedo miejsce w stuktyrze możemy zobaczyć poniżej:

   Możnaq zauważyć, że powyższy standard został podzielony na dwie warstwy:
     - Access Layer (definicje nazw, umożliwia dostęp do rejestrów rdzenia i urządzeń peryferyjnych),
     - Middleware Access Layer(zawiera funkcje do komunikacji i interfejsami wejść wyjść).

   Po co taka biblioteka, z jednego prosego względu, kto po roku od napisania programu, pamiętałby
do czego są te wszystkie 0xFFFFFFFF, kto by zrozumiał kod wrzucony przez jakiegoś dobrodzieja
i udostępniony w internecie.

Ponadtto pliki zawierające CMSIS są udostępniane bezpłatnie, przez producentów. Dostępne spakowane w jednym archiwum z producencką biblioteką obsługi peryferii.



   Przenoszenie kodu ze starej wersji bilioteki ST V2.x.x do 
Standaryzowanej z CMSIS V3.x.x

   Firma STmicroelectronics przygotowała prosty program który zamienia stare biblioteki ta nowe zgodne ze standardem CMSIS. program wraz z instrukcją jest dostępny na stronie producenta.
Zmiany samego drzewa prjetu wyglądają następująco:

Niestety o ile program dostosowuje zmienne(wybrane w tabela poniżej), oraz definicje, o tyle nie dzieli już istniejącej biblioteki, na kilka plików wymaganych przez standard co musimy zrobić ręcznie.
Można zaobserwować na rysunku powyżej, bibliotece STM32F10x_vector.c odpowiadają zestandaryzowane:
-startup_stm32F10x_hd.s
-startup_stm32F10x_ld.s
startup_stm32F10x_md.s


Gdzie można o tym poczytać:

Brak komentarzy:

Prześlij komentarz