STM32CubeProgrammer'a Giriş
STM32CubeProgrammer, STM32 belleğini okuma, silme, programlama ve doğrulama için STMicroelectronics’in güncel, ücretsiz ve çok platformlu geliştirme aracıdır. SWD/JTAG üzerinden ST-LINK’i ve cihazın sistem bootloader’ı uyguluyorsa UART, USB DFU, I²C, SPI veya CAN’ı destekler.
Güncel kılavuzu ve tam parça dokümanını kullanın; arayüzler, boot pinleri, bellek haritası, option byte ve güvenlik davranışı modele ve sürüme göre değişir.
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
Birçok STM32, sistem belleğinde fabrika bootloader’ı içerir. Periferik, pinler, boot deseni ve saat koşulları cihaza özeldir ve AN2606’dan doğrulanmalıdır. Bu bağlantı için ST-LINK gerekmez; V2/V3 nesli MCU bootloader arayüzünü belirlemez.
İki ayrı bağlantı yolu vardır: SWD/JTAG üzerinden debug probu veya tam cihazın desteklediği bir arayüz üzerinden STM32 sistem bootloader’ı. UART/USB/I²C/SPI/CAN desteğini ST-LINK sürümünden çıkarmayın; kablolamadan önce AN2606’yı kontrol edin.
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
Kurulum Ortamı
Güncel sürümler belgelenen Windows, Linux ve macOS sürümlerini destekler. STM32CubeProgrammer 2.6.0’dan beri paket kendi JRE’sini içerir; ayrıca Java kurulmaz. Aşağıdaki görseller eski 2.5.0b sürümündendir.
Ç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.
USB ile Programlama
USB DFU için tam MCU’nun gerektirdiği sistem bellek boot modunu seçin, güncel paketi kullanın ve cihazın belgelenen sürücüyle tanındığını doğrulayın. Eski DFU araçlarını kaldırmak veya STM32Bootloader.bat çalıştırmak genel bir koşul değildir.
STM32CubeProgrammer CLI ve kontrollü doğrulama
CLI tekrarlanabilir geliştirme, doğrulama ve servis işlemleri için kullanışlıdır; ancak kontrollü girdiler ve kayıtlı kanıt gerekir.
- Sürüm, tam Device ID, arayüz, imaj özeti, yükleme adresi, option byte durumu ve geri okuma doğrulamasını kaydedin. Ham BIN dosyası yükleme adresi içermez.
- ST’nin güncel SSS ve lisansına göre STM32CubeProgrammer geliştirme aracıdır, üretim programlama aracı değildir. Üretimde onaylı bir çözüm kullanın.




