STM32CubeProgrammer'a Giriş
STM32CubeProgrammer, STMicroelectronics tarafından piyasaya sürülen çok güçlü bir STM32 programlama aracıdır. Aşağıdaki araçların işlevlerini yüksek düzeyde bir araya getirir:
- STVP veya STLinkUtility (JTAG/SWD programlama aracı)
- STMFlashLoaderDemo (UART programlama aracı)
- DfuSeDemo (USB yazma aracı)
- ST-LinkUpgrade (Stlink programlayıcı ürün yazılımı güncelleme aracı)
STM32CubeProgrammer'ın Kullanıcı Arayüzü
STM32CubeProgrammer, hem grafik hem de komut satırı kullanıcı arayüzleri sunar. Ayrıca, bir C++ API'si de sunar ve kullanıcılar, STM32CubeProgrammer'ın işlevlerini geliştirdikleri PC uygulamalarına entegre edebilirler.
Yukarıdaki şekilde gösterildiği gibi, sağdaki yapılandırma alanında kullanıcılar, STM32 mikrodenetleyicisine STLink hata ayıklama arayüzü veya USB ve UART gibi iletişim arayüzleri üzerinden bağlanmayı seçebilirler. STM32 mikrodenetleyicisine bağlandıktan sonra, "Aygıt bilgileri" alanında mevcut MCU modelini, sürümünü ve Flash bellek boyutunu görebilirsiniz. Resmi bir ST geliştirme kartı bağlıysa, geliştirme kartının adı da görüntülenir.
STM32CubeProgrammer'ın İşlevleri
STM32CubeProgrammer, yonganın içinde depolanan fabrika ayarlı sistem önyükleyicisini kullanarak, STLink'in SWD/JTAG hata ayıklama arabirimi veya UART, USB, I2C, SPI ve CAN gibi iletişim arabirimleri aracılığıyla STM32 MCU'ların yonga içi belleğinin silinmesini ve okunmasını/yazılmasını destekler.
STM32CubeProgrammer'ın temel işlevleri şunlardır:
Silme ve Programlama
STM32CubeProgrammer, Flash belleğin sektör bazlı silme ve tam silme işlemlerini destekler. Programlama amacıyla ikili (.bin), elf (.elf, .axf, .out), hex (.hex) ve Motorola S-kayıt (.srec) dosyaları dahil olmak üzere çeşitli dosya formatlarını içe aktarabilir.
Silme İşlemi
STLink aracılığıyla hedef MCU ile bağlantı kurduktan sonra, "Silme ve Programlama" sayfasında Flash sektörlerini tek tek silebilir veya "Tam yonga silme" düğmesini seçerek yonganın tamamını silebilirsiniz.
Programlama İşlemi
"Silme ve Programlama" sayfasında, "Gözat" düğmesine tıklayarak bir yürütülebilir dosyayı içe aktarabilir ve ardından "Programlamayı Başlat" düğmesine tıklayarak programlama işlemini başlatabilirsiniz.
Alternatif olarak, "Bellek ve Dosya Düzenleme" sayfasında, programlamak istediğiniz yürütülebilir dosyayı açabilir ve ardından "İndir" düğmesine tıklayarak programlamayı başlatabilirsiniz.
"Bellek ve Dosya Düzenleme" sayfasındaki "Aygıt Belleği" altında, belirli bir adres aralığındaki MCU belleğinin değerlerini okuyabilir ve "Farklı Kaydet" menüsünü kullanarak okunan içeriği ikili (.bin), onaltılık (.hex) veya S-kaydı (.srec) dosyaları olarak kaydedebilirsiniz.
Yürütülebilir dosyanın tamamını programlamanın yanı sıra, "Memory & File Edition" sayfasındaki "Device Memory" altında belirli bir adresteki değeri doğrudan değiştirebilirsiniz. "Enter" tuşuna bastıktan sonra, STM32CubeProg otomatik olarak okuma, değiştirme, silme ve geri yazma işlemlerini gerçekleştirir. Bu yöntem, tek seferlik programlanabilir (OTP) baytları programlamak için kullanılabilir.
Seçenek Baytı Okuma/Yazma
OB (Seçenek Baytı) sayfasında, bağlı MCU’nun seçenek baytlarının mevcut ayarlarını görüntüleyebilirsiniz. Ayrıca, seçenek baytlarının değerlerini buradan değiştirebilirsiniz. Seçenek baytları hakkında ayrıntılı açıklamalar için lütfen ilgili MCU’nun kullanım kılavuzuna bakın.
"İki-bir-arada" Programlama
"Silme ve Programlama" sayfasındaki "İki-bir-arada" programlama modunu kullanarak, tek bir işlemle hem FLASH belleği hem de seçenek baytlarını programlayabilirsiniz. Seçenek baytlarının yapılandırılması, "-ob" komutu ile "STM32CubeProgrammer komut satırı" kullanılarak yapılır. Örneğin, FLASH'ı programladıktan sonra okuma korumasını seviye 1'e ayarlamak için şu adımları izleyin:
- İndirilecek yürütülebilir dosyanın yolunu ayarlayın.
- "Otomatik Mod" altında "Tam yonga silme" ve "Dosya indir" seçeneklerini işaretleyin.
- "Option bytes commands" (Seçenek baytları komutları) giriş kutusuna "-ob rdp=0xBB" yazın.
- "Otomatik modu başlat"ı tıklayın; STM32CubeProgrammer, belirtilen işlemleri sırayla yürütür ve ilerlemeyi günlük penceresinde görüntüler.
"-ob" komut biçimi hakkında ayrıntılı bilgi için UM2237 (STM32CubeProgrammer Yazılım Aracı Kullanım Kılavuzu) belgesinin 3.2.15 bölümüne bakınız. "-ob" komutundaki OptByte alan tanımları UM2237'de açıklanmamıştır, ancak "-ob" komutundaki tanımlar buradakilerle aynı olduğundan, STM32CubeProgrammer grafik arayüzündeki "Option bytes" sekmesini inceleyerek bunları bulabilirsiniz. Alternatif olarak, "-ob displ" komutunu kullanarak tüm seçenek baytlarının mevcut yapılandırmasını görüntüleyebilir ve her bir OptByte alanının tanımlarını anlayabilirsiniz.
Harici Bellek Okuma/Yazma
SPI, FMC, QSPI gibi arabirimler aracılığıyla STM32'ye bağlı harici belleğe okuma/yazma işlemi gerçekleştirmek istiyorsanız, bir harici yükleyiciye ihtiyacınız olacaktır. CubeProgrammer, STM32 geliştirme kartlarına entegre edilmiş harici belleklere uygun varsayılan harici yükleyiciler sunar. Farklı bir bellek modeli kullanıyorsanız, kendi harici yükleyici dosyalarınızı (*.stldr) oluşturabilirsiniz. Ayrıntılı talimatlar için UM2237'nin 2.3.3 bölümüne bakın.
Harici bellek üzerinde işlemler gerçekleştirmeden önce, "Harici Yükleyici" sayfasında ilgili harici yükleyiciyi seçmeniz gerekir. Bu harici yükleyici, "Silme ve Programlama" ile "Bellek ve Dosya Düzenleme" sayfalarında harici bellek üzerinde gerçekleştirilecek sonraki silme ve programlama işlemlerinde kullanılacaktır.
Önyükleyici
STM32 MCU'lar, kutudan çıktığı anda bir önyükleyici içeren dahili sistem belleği ile birlikte gelir; bu sayede USART, USB, I2C, SPI ve CAN gibi arayüzler aracılığıyla yonga üzerindeki Flash belleğe güncelleme yapılabilir. Desteklenen önyükleyici arayüzü, STM32 MCU modeline göre değişiklik gösterir; ayrıntılı bilgileri AN2606 uygulama notunda bulabilirsiniz. STLink v2 ve STLink v3, USART, USB, I2C, SPI ve CAN iletişim protokollerinden USB'ye köprü arayüzleri sağlayarak STM32 MCU'ların bir PC'ye bağlanmasını sağlar.
STM32CubeProgrammer, önyükleyici aracılığıyla yonga üzerindeki Flash belleğin silinmesini ve programlanmasını gerçekleştirmek için bir PC arayüzü sunar. STLink v2 yalnızca USART ve USB iletişim arayüzlerini desteklerken, STLink v3 ise I2C, SPI ve CAN iletişim arayüzleri için destek ekler. ST daha önce iki ayrı PC tarafı yazılım aracı sunuyordu: "STM32 Flash loader demonstrator" ve "Dfuse Demo"; her ikisi de USART bootloader ve USB DFU işlevselliğini destekliyordu. Artık, tüm bu iletişim arayüzlerini desteklemek için tek bir yazılım aracı olan STM32CubeProgrammer'ı kullanabilirsiniz.
SWO Bilgi Giriş Penceresi
Geliştirme aşamasında, hata ayıklama bilgilerinin çıktısını almak sıklıkla gereklidir. Yaygın bir yöntem, printf çıktısını bir seri porta yönlendirmektir; ancak bu, bir seri portunu işgal eder. Diğer bir yöntem ise, printf çıktısını SWD hata ayıklama arabirimi aracılığıyla SWO (Serial Wire Output) pinine yönlendirmektir; bu sayede hata ayıklama bilgileri SWO üzerinden gönderilebilir. STM32CubeProgrammer'ın SWV (Serial Wire Viewer) penceresi, SWO üzerinden gönderilen hata ayıklama bilgilerini görüntüleyebilir ve alınan tüm bilgileri belirtilen bir ".log" dosyasına kaydedebilir.
Komut Satırı Arayüzü
STM32CubeProgrammer, komutları çalıştırarak programın işlevlerinin çoğunu gerçekleştirmenize olanak tanıyan bir komut satırı arayüzü sunar. "STM32_Programmer_CLI.exe" adlı yürütülebilir dosya, STM32CubeProgrammer kurulum dizinindeki "bin" klasöründe bulunur. "STM32_Programmer_CLI.exe" dosyasını çalıştırdığınızda, desteklenen komutların ve bunların parametrelerinin bir listesi görüntülenir.
Komut satırı arayüzü, güvenilir paketler oluşturma, güvenli programlama, CRC değerlerini hesaplama ve daha fazlası gibi grafik arayüzde bulunmayan bazı işlevler de sunar. Ayrıntılı talimatlar için UM2237'ye bakın. Şekildeki örnek, SWD arayüzü üzerinden hedef yongaya bağlanmayı ve komut satırı talimatlarını kullanarak okuma koruma seviyesi 1'i ayarlamayı göstermektedir. Tam komut şöyledir: "STM32_Programmer_CLI.exe -c port=SWD -ob rdp=0xBB."
STLink Yazılım Güncellemesi
STLink hata ayıklayıcısını bilgisayarınıza bağladıktan sonra, STM32CubeProgrammer'ı açın ve STLink bağlantısını yenileyerek mevcut STLink donanım yazılımı sürümünü görüntüleyin. "Donanım yazılımı güncelleme" düğmesine tıklayın ve STLinkUpgrade aracını açarak STLink donanım yazılımı sürümünü güncelleyin.
STM32CubeProgrammer nasıl kullanılır?
STM32CubeProg, okuma, yazma (indirme/programlama), silme ve seçenek baytlarının programlanması gibi tipik işlemleri içeren kapsamlı bir programlama aracıdır.
STM32CubeProg İndir
Resmi web sitesi: https://www.st.com/en/development-tools/stm32cubeprog.html
Kurulum Ortamı
STM32CubeProg, Windows, Linux ve macOS işletim sistemlerini destekler. JAVA tabanlı olduğu için bilgisayarınıza Java Runtime Environment (JRE) kurmanız gerekir. Kurulum süreci aşağıdaki resimde gösterilmiştir (sürüm 2.5.0b):
Çiplerin Bağlanması ve STM32CubeProg
STM32CubeProgrammer'ı kullanarak STLINK aracılığıyla hedef karta bağlanırken, bağlantının kurulamadığı durumlar olabilir. Bunun nedeni, STLINK'teki donanım yazılımı sürümünün eski olması olabilir. Bu sorunu gidermek için "Donanım Yazılımı Güncelleme" düğmesine tıklayarak donanım yazılımı güncellemesini gerçekleştirin. Güncelleme işlemi sırasında, kabloyu birkaç kez takıp çıkarmanız gerekebilir. Güncelleme tamamlandıktan sonra, STM32CubeProgrammer'ın STLINK'i tanıması için kabloyu bir kez çıkarıp tekrar takın.
Çip Programlama ve Hata Ayıklama
Program hata ayıklama işlemini tamamladıktan sonra, yongayı kodunuzla programlamanız gerekir. Genellikle üç seçeneğiniz vardır:
- Çipi programlamak için JTAG/SWD hata ayıklama arayüzünü kullanın; bu genellikle STLink Utility veya STVP yazılımını gerektirir.
- PC'deki STM32 Flash loader demonstrator yazılımını kullanarak UART arayüzü üzerinden çipi programlayın.
- USB DfuSe yazılımını kullanarak çipi USB arabirimi üzerinden programlayın.




