Bu yazımda ARM tabanlı mikrodenetleyici STM32’de kullanılan temel kütüphane olan SPL, HAL ve özel olarak geliştirilmiş kütüphanelerden bahsedeceğim.
Programlamada kütüphane kavramı
Programlamada kütüphaneler belirli amaçlar için özelleştirilmiş geliştirme süreçlerini kısaltmada önemli rol oynayan hazır kodların bulunduğu koleksiyonlar olarak düşünülebilir.
Kütüphaneler(Library) genellikle profesyonel kişiler tarafından oluşturulur bize sunulur veya kendi kütüphanelerimizi yazmamızda mevcuttur. Ayrıca büyük projeler geliştirilirken projeye özel kütüphaneler yazılmaktadır.
Kısaca açıklamak gerekirse, bir proje geliştirilirken aynı kod sayısızca yazılabilmektedir. Bu sayısızca yazılan kodu tekrar tekrar yazmak yerine bir kütüphane oluşturarak o yazılan kodu 1 seferlik çağırıp kodumuzda kullanabilir ve kodumuzun gereksiz şekilde fazla yazılmasının önüne geçebiliriz.
Bu şekilde kodunuzu daha anlaşılır hale getirerek daha efektif çalışmalar yapabilir kodunuzu daha optimize şekilde kullanabilirsiniz.
Framework ve Library
Framework(Çerçeve) ve Library(Kütüphane) çok karışan iki terim olarak karşımıza çıkmaktadır. Aslında her framework bir library’dir, ancak her library bir framework değildir. Framework’lerin bir yazılım mimarisi vardır ve bir fonksiyon veya metot kullanırken uymanız gereken standartlar vardır.
Standart kütüphanede kodu kendimiz çağırırız, frameworklerde kodu çalışmaya çağıran framework’ün kendisidir.
STM32’de Sıklıkla Kullanılan Kütüphaneler
Mikroişlemcileri veya mikrodenetleyicileri programlarken, işleri kolaylaştırmak ve kodumuzun düzenini artırmak için hazır kütüphaneler kullanılır. İşinizi kolaylaştırmak için sizde kendinize özel kütüphanelere yazabilirsiniz.
STM32’de program geliştirmek söz konusu olduğunda akıllara gelen kütüphanelerden bir kaçı SPL ve HAL kütüphaneleridir. SPL ve HAL kütüphaneleri hakkında bu yazımda sizlere bilgiler vereceğim.
Ayrıca geliştirilmiş uygulamalar için özel olarak yazılmış birkaç popüler kütüphane hakkında da kısa bilgilerden yazımda bahsedeceğim.
SPL Kütüphanesi
SPL(Standard PHP Library),standart çevre birimi kitaplığı anlamına gelmektedir. Bu kitaplık, STM32 mikro denetleyici ailesindeki çevre birimlerini işlemek için bir dizi işlev sağlar. Tüm bitler, bit alanları ve kayıtlar ile tam bir kayıt adresi eşlemesi sağlar ve hatasız bir referans eşleme dosyasının faydalarıyla erken proje aşamasını hızlandırır.
Tüm çevresel işlevleri kapsayan bir dizi rutin ve veri yapısı içerir. Ayrıca, en yaygın geliştirme araçları için şablon projelerle birlikte mevcut tüm çevre birimlerini kapsayan bir dizi örnekle birlikte gelir.
Kütüphane, kullanım kılavuzunda yer alan aşağıdaki kurallar çerçevesinde kullanılabilir:
Tüm kodlar ANSI C standardına uygun olmalı ve en azından ana derleyicisi altında uyarı vermeden derlenmelidir.
Kitaplık, <stdint.h> ANSI C başlık dosyasında tanımlanan ANSI standart veri türlerini kullanır ve bu veri türlerini kullanabilirsiniz.
HAL Kütüphanesi
HAL, donanım soyutlama katmanı anlamına gelir. HAL kitaplığı, ARM-GCC derleyicisi için STM32 mikro denetleyicileri için C dilinde yazılmış, yaygın olarak kullanılan bir donanım soyutlama kitaplığıdır. HAL kitaplığının her Mikrodenetleyici serisine ve ailesine göre farklı sürümleri vardır, işlevleri benzerdir ve aynı şekilde kullanılır. HAL kütüphanesinin donanım ve üst düzey yazılımlar arasında bir aracı görevi gördüğünü söyleyebiliriz.
HAL kütüphaneleri, HAL kütüphanesi üzerinden sağlanan hazır kodları register seviyelerine inmeden hızlı ve kolay bir şekilde yapmamızı sağlamaktadır.
Aşağıda HAL kütüphanesi tarafından bize sağlanan önemli birkaç parametreyi görmektesiniz:
HAL_Init() – Bu işlevi HAL kütüphanesini başlatmak için kullanılır.
HAL_Delay – Milisaniye cinsinden gecikmeyi vermektedir.
HAL_GPIO_ReadPin() – Bu işlev ile GPIO pinini okumamıza olanak sağlar.
HAL_GPIO_WritePin() – Bu işlev ile GPIO pinini yazmamıza olanak sağlar.
STemWIN Grafik Kitaplığı
STemWIN Graphics Library, grafik oluşturma ihtiyacı olduğunda kullanılan bu kitaplık, hali hazırda çeşitli hazır grafik oluşturma programları içeren bir kitaplıktır. ST ve STemWin ile ortak olduğu Segger Microcontroller Systems tarafından geliştirilmiştir
CMSIS DSP Kitaplığı
CMSIS, ortak mikrodenetleyici yazılım arabirim standardı anlamına gelir ve DSP, dijital sinyal işleme anlamına gelir. bu kitaplık, CMSIS için dijital sinyal işleme gerçekleştirir. CMSIS DSP, uygulamalarımızda çeşitli sinyal işleme algoritmalarının fonksiyonlarını karşılamak için geliştirilmiş bir kütüphanedir.
USB Device Kitaplığı
Bu kitaplık paketi, USB tam hızlı ve yüksek hızlı aktarım türlerini, yani kontrol, kesme, toplu iş ve eşzamanlılık işlevlerini kullanarak uygulama geliştirmeye yönelik yazılım tanıtımlarını içeren bir geliştirme paketidir.
· SPL Kütüphanesi
· HAL Kütüphanesi
· STemWIN Grafik Kitaplığı
· CMSIS DSP Kitaplığı
· USB Device Kitaplığı