Merhaba,
Gömülü sistemlerle ilgili yapacağımız çalışmalarda sizlerin de yakından takip ettiğini düşündüğüm ARM mikroişlemciler üzerinden ilerleyeceğiz. Tasarladığınız projelerinizi donanımsal olarak gerçekleyebilmek için kullanabileceğiniz Arduino ve PIC gibi yaygın platformların yanında ARM mikroişlemcilere dair bilginizin olması sizi bir puan daha öne çıkaracaktır.
Mikroişlemci programlamaya Arduino IDE kullanarak başlayanların zamanla kullanılan fonksiyonların, yapılan konfigürasyonların arkasında yatan mantığı daha iyi anlama ihtiyacı hissettiğini görüyorum. Bu alana ilk ilgi duymaya başladığımda ben de sizlerle aynı hisleri paylaştım. Diğer platformları anlatmak yerine, ARM’ı tercih etme sebeplerimden biri de program yazarken sizi araştırmaya ve sunduğu uygulama notları gibi dokümanları okumaya ittiğini fark edecek olmanız. Daha önce iyi bir Google kullanıcısı değilseniz muhtemelen zamanla bu konuda refleks kazanmaya başladığınızı göreceksiniz. Bu noktada size en önemli tavsiyem, bana da ilk zamanlar tavsiye edildiği gibi, Google’ı iyi kullanın ve kendinizi belirli bir konuda araştırma yapmaya alıştırın. Herhangi bir programı ya da komutu ezberlemeniz için hiçbir sebep yok. Araştırmanız ve takip etmeniz gereken adımları, bazı temel uygulama mantıklarını aklınızda oturtmanız yeterli olacaktır.
Yapacağımız uygulamalar boyunca ihtiyacınız olan oldukça uygun fiyata edinebileceğiniz bir ARM geliştirme kartı. Texas Instruments ve ST firmasının üretmiş olduğu kitleri başlangıç için kolayca satın alabilirsiniz. Gömülü sistemler kategorisinde uygulamalarımız STM32F767ZI Nucleo üzerinden ilerleyecek. Ancak siz daha uygun olan STM32F303 Nucleo ya da STM32F411RE Nucleo gibi kitleri edinebilir ve aynı uygulamaları gerçekleyebilirsiniz.
ARM birçok programlama ortamı sunmaktadır. Bunlara örnek olarak Keil, IAR Embedded Workbench, STM32 CubeIDE, Coo IDE by CooCox, Code Composer Studio vb. verilebilir. Biz uygulamalarımızda Keil üzerinden ilerleyeceğiz. Fakat tek başına Keil kullanmak yerine işimizi kolaylaştırmak adına ve yapacağımız konfigürasyonları oturup yazmak yerine STM32 CubeMX’i kullanarak oldukça basit bir ara yüz üzerinden ihtiyacımız olan çevresel birimlere ait fonksiyonların C kodlarını üreteceğiz. CubeMX aynı zamanda sizlere hangi ortamı kullandığınızı belirlemenizi sunacak (böylelikle örneğin IAR için de kod üretebilirsiniz) ve üretilecek olan programı o ortama entegre edecek, gerekli proje dosyalarını ve eklentileri paketleyecektir. CubeMX ‘in sürekli güncellenen bir program olmasıyla farklı özellikleri de gün yüzüne çıkıyor ve vakit oldukça bu özelliklere de değinmeye çalışacağız (Örneğin CubeAI).
Bu tarz alanlarda, yani hem donanımın hem de yazılımın kesiştiği, hata yapmanın çok önemli olduğunun altını çizmeliyiz. Çok iyi bildiğiniz bir uygulama dahi yapıyor olsanız farklı hatalar görmek ve onlarla yüzleşmek sizlere farklı bakış açıları kazandıracaktır. Hata yaparak ve hatta bozarak problem çözme kapasitenizin artacağına emin olabilirsiniz. Elimizden geldiğince sizlerle daha önce yaptığımız hatalara da değinerek probleminize olan yaklaşımınıza güç kazandırmayı hedefleyeceğiz. Yeni bir blog olmanın heyecanıyla bir sonraki yazımızda uygulamalarımıza başlamak üzere hoşça kalın.