STM32CubeIDE – PROGRAMA KAYNAK KODU EKLEMEK

Yeni bir projeye başladığımızda, daha önceki projelerimizden yararlanmak isteriz. Bu da mevcut projelerden yenisine bazı kaynak kodların aktarılmasını gerektirir.

STM32 CubeIDE platformu yeni projenin ilk adımlarında bize bir proje şablonu oluşturuyor. Bunun ardından bu şablona başka projelerimizden burada da kullanmak istediğimiz kodları aktarmakla işe başlıyoruz.

Bu yayında bu aktarma işleminin kopyala yapıştır yöntemi ile nasıl yapılacağını anlatacağım. Bir başka yöntem de Import fonksiyonunun kullanılması. Onu anlattığım daha kapsamlı yayın için burayı tıklayabilirsiniz.

STM32 CubeIDE ile kod geliştirmek için File/New menüsü altından yeni bir proje yaratarak işe başlıyoruz.

Bunun ilk adımı CubeMX ile işlemci seçimi, sistem saati, timer, giriş-çıkış vb ayarlarının yapılması oluyor. Bu işlerin yapılışını bir başka yayında anlatıyorum. STM32 CubeIDE ile yeni proje yaratmak başlıklı yayınım için burayı tıklayınız.

CubeMX ile yeni projemizi yaratıp “Generate Code” komutu ile işi sonuçlandırdığımızda ekranın sol tarafındaki Project Explorer penceresinde yeni projemiz belirecektir. Buradaki örneğimizde bu proje “Selcuk_STM32F103C8 Hall R2” başlıklı olanı.

Yaratılan bu projede, ilk adımda yapılabildiği kadarı ile tüm temel fonksiyonlar tanımlanmış ve üzerine kodlarımızı yazabileceğimiz bir şablon oluşturulmuş durumda görülüyor.

Bu haliyle “Build” komutu ile hatasız bir derleme yapılabilir, tabiki bu hiç birşey yapmayan bir program olacaktır.

Şimdi programımıza faydalı bir şeyler yapacak kodları eklemeye başlayalım. İlk olarak daha önceki yazılımlarımızdan buraya bazı modülleri ekleyerek işe başlayalım, tabiki her seferinde herseyi sıfırdan yazmayacağız, önceki çalışmalarımızadan yararlanmak zorundayız.

Ben bu örneğimde bir TFT Ekran sürücüsünün eklenmesini ele alıyorum.

ADIM 1 – YENİ FOLDER YARATIP DOSYALARIN YERLEŞTİRİLMESİ

İlk olarak ilave edeceğimiz .c ve .h dosyalarını koyacağımız bir folder yaratmak gerekiyor. Benim örneğimdeki dosyalar bir sürücü olduğundan bunları Drivers klasörüne koymak uygun olacak.

Drivers Klasörü seçili iken File/New/Folder seçenekleri ile yeni klasörümü “Displays” adı ile oluşturuyorum. Bunun içine de copy-paste yöntemi ile daha önceki projelerimden birisinden “TFT” klasörünü kopyalayıp yapıştırıyorum.

Drivers altında yeni bir klasör oluşturuyoruz, adını da “Displays” olarak yazıyoruz. Yeni klasör burada olmak zorunda değil, bir başka source klasörü içinde ya da, Proje altında bir “source folder” klasörü olarak da oluşturulabilir.
Eski projelerimden birinden kopyaladığımız TFT Klasörünü buraya yapıştırıyoruz.

Yukarıda görüleceği gibi main modülünde bu yeni kaynak koduna erişimi sağlayabilmek için #include “tft_basic.h” satırını ekledim. Ancak, programı bu haliyle derlemeye kalkıştığımızda derleyici bu “tft_basic.h” dosyasına erişemeyecek ve hata verecektir. Derleyiciye, buna erişebileceği rotayı bir path tanımlaması ile bildirmemiz gerekiyor.

YENİ KAYNAK KODU DOSYALARININ YERİNİN DERLEYİCİYE BİLDİRİLMESİ

Buunun için Project/C/C++ Build/Settings altında açılan pencereye ulaşıyoruz.
Bu pencerede MCU GCC Compiler/include paths da “Tool Setting” sekmesi altında path tanımlarını yazabileceğimiz iki bölmeli bir alan göreceğiz.

Üstteki bölmeye klasör ulaşım yolları, alttakine de tek tek dosya adları girilebiliyor. Üstteki bölmede CubeIDE nin koyduğu birkaç satır var. Biz de bunlara, kendi klasörümüzün erişim yolunu koyacağız.

Project settings altında “path” tanımlarını yazacağımız pencere

Burada giriş kutusunun sağ üst tarafındaki “+” işaretli imgeyi tıklayarak giriş yapacağımız mesaj kutusunun belirmesini sağlayalım.

“+” imgeyi tıklayarak ulaşacağımız “Add directory path” mesaj kutusu

Bizim yeni klasörlerimiz “Workspace” içinde, ama aynı klasörlere “File system” butonuna tıklayarak da ulaşabiliriz. İkisinden birisine tıklayarak TFT klasörümüzü bulup seçtikten sonra “OK” tıklayalım.

TFT klasörümüzü bularak OK tıklıyoruz.
Yeni klasörümüzün erişim yolu üstteki kutuya eklendi.

Apply and close butonu tıklandıktan sonra beliren hatırlatma kutucuklarını OK diyerek geçelim.

Bu girmiş olduğumuz yol planı bir başka yere daha otomatik olarak kopyalanıyor,
C/C++ General/Paths and symbols altındaki Includes sekmesine. Burada yapacağımız birşey yok, sadece bilgi için ekran görünümünü koyuyorum.

Artık derleyicimiz yeni .h ve .c doyalarımıza ulaşabilecektir.

Ancak, yapmamız gereken bir şey daha var.

Oluşturulmuş olan Path satırı otomatik olarak buraya da kopyalanıyor.

#define TANIMLARININ GİRİLMESİ

Eğer yeni eklediğimiz kaynak kodlarımızın derleme tercihlerini belirleyen tanımlara ihtiyacı var ise bunları da proje ayarları içinde belirtmemiz gerekmektedir. Örneğin, benim kodlarımda Paralel ve SPI arayüzlü TFT seçenekleri, Farklı TFT çözünürlükleri ve mikroişlemci kitleri için tercihler yapılabiliyor.

Bu örnekte TFT_320x240, SPIMODE ve STM32_MAPPLE seçeneklerini tanımlıyorum. Bunları tanımlamazsam kapalı kalacak kod bölümleri nedeniye programım derlenemeyecektir.

Böylece program şablonumuza TFT sürücü kaynak kodlarımı eklemiş olduk. Programımızı artık derleyebiliriz.

Tabi hiç olmazsa ana programımıza TFT nin başlangıç ayarlarını yapacak, sonra da birkaç satır birşeyler yazacak satırlar koymalıyız ki, sonucun başarılı olup olmadığını görebilelim.

Main program içinde TFT ye ilişkin satırlar yukarıda görülüyor. Yukarılardaki paragraflarda anlattığım gibi TFT_320x240 ve SPIMODE tanımları etkinleştirilmiş durumda. Etkin durumda olmayan diğer seçeneklere ilişkin satırların devre dışı bırakılmış olduğu gri renkli arka planları ile belirgin şekilde görülüyor.

Bu yayının sonu – S.Ozbayraktar Haziran 2020