Yazılım araçları: cc2538-bsl, UniFlash ve Python arasında seçim yapmak
UART ROM Bootloader (BSL) üzerinden yazılım yüklemek için çoğunlukla cc2538-bsl tercih edilir; JTAG/SWD üzerinden yazılım yüklemek, başarısız bir yazılım işleminden sonra kurtarma yapmak ve “toplu silme” (mass erase) gerçekleştirmek için TI UniFlash (GUI veya CLI dslite) kullanılır; bu yardımcı programların üzerine “tek tıklama” modu eklemek için ise Python sarmalayıcıları geliştirilir.
İçindekiler
Aracı nasıl seçersiniz
Şu durumlarda cc2538-bsl seçin:
- UART erişiminiz varsa (USB‑UART/sanal COM);
- test ortamında veya sahada hızlıca sil → yaz → doğrula işlemi yapmanız gerekiyorsa;
- platformlar arası CLI tabanlı yazılım yükleme önemliyse.
Şu durumlarda TI UniFlash seçin:
- Yazılımı hata ayıklayıcı (JTAG/SWD) üzerinden yüklüyorsanız;
- günlük kayıtları ve tekrarlanabilirliği olan kararlı bir “resmi” süreç gerekiyorsa;
- BSL erişilemediğinde kurtarma yapılması gerekiyorsa.
Şu ihtiyaçlarınız varsa Python betikleri seçin:
- Doğru portu/cihazı otomatik olarak bulmak;
- “doğru dosya” ve “doğru kart” kontrolünü yapmak;
- Yazılım yükleme işlemini seri halinde çalıştırmak (test ortamı, üretim, CI).
Yaklaşımların karşılaştırılması (özet)
| Görev | Daha uygun olan | Neden |
|---|---|---|
| UART üzerinden ROM BSL ile yazılım yükleme | cc2538-bsl | Basit CLI, hızlı, güncellemeler için kullanışlı |
| “Başarısız” imajdan sonra kurtarma | UniFlash + JTAG/SWD | BSL açılmadığında hata ayıklayıcı genellikle tek çıkış yoludur |
| Kontrollerle birlikte “tek tuşla” çalıştırma | Python + (cc2538-bsl/UniFlash) | Port, sürüm, doğrulama kontrolü ve günlük kaydı |
cc2538-bsl: hızlı başlangıç ve komutlar
İlk yazılım yüklemeden önce şunları kontrol edin:
- UART seviyeleri 3.3V olmalıdır (RX/TX hatlarında 5V olması, dengesiz bağlantının sık görülen nedenidir).
- Cihaz gerçekten BSL moduna giriyor mu (düğmeler/pinler karta bağlı olarak değişir).
- Dosya formatı: genellikle
.hex(Intel HEX) veya.bin.
Ekip içinde standartlaştırılması gereken temel komut — sil, yaz, doğrula:
python3 cc2538-bsl.py -p PORT -e -w -v firmware.hex
Yalnızca silme işlemi (“temiz” bir yazılım öncesinde faydalıdır):
python3 cc2538-bsl.py -p PORT -e
“BSL’yi kaybetme” riski. Bazı cihazlarda geçerli bir imaj yazıldıktan sonra, önceden planlanmış bir “arka kapı” (backdoor)/giriş koşulu olmadan ROM BSL’ye erişim mümkün olmayabilir. En azından acil durum silme işlemleri için JTAG/SWD erişimini planlayın.
Her zaman -v (doğrulama) seçeneğini etkinleştirin ve çıktı günlüğünü kaydedin. Bu, “yazılım yüklendi ama çalışmıyor” sorunlarının çözümünü büyük ölçünde hızlandırır.
TI UniFlash: ne zaman gerekir ve CLI neler sunar
UniFlash, yazılım yükleme işlemi hata ayıklayıcı üzerinden yapıldığında ve şu ihtiyaçlar olduğunda kullanışlıdır:
- “Toplu silme” (mass erase) ve başarısız denemelerden sonra kurtarma;
- Tekrarlanabilir işlemler (tüm ekip için aynı ayarlar);
- CLI
dslitearacılığıyla toplu çalıştırma (manuel GUI yerine).
CLI’nin pratik anlamı:
- Yapılandırmayı/parametreleri sürecin bir parçası olarak saklayın;
- Yazılım yükleme işlemini tek bir komutla başlatın;
- Teknik destek ve üretim için öngörülebilir bir günlük kaydı elde edin.
dsliteiçin belirli anahtarlar aileye, arayüze (JTAG/SWD) ve kullanılan hata ayıklayıcıya bağlı olarak değişir, ancak genel yaklaşım aynıdır: hedefi seç → imajı seç → sil/yaz → doğrula → yeniden başlat.
Python betikleri: manuel adımlar olmadan otomasyon
Tipik güvenilir iş akışı (hemen karşılığını veren minimum düzey):
- Cihazı bulun (VID/PID, USB‑UART seri numarası, port adı ile).
- Girdileri doğrulayın: yazılım dosyasının ilgili kart/çip/bellek için uygun olup olmadığını kontrol edin.
- Cihazı yazılım moduna alın (düğme/pinler veya kart destekliyorsa UART kontrol hatları).
subprocessaracılığıylacc2538-bslveyadsliteçalıştırın.- Sonucu kontrol edin: çıkış kodu,
verifyvarlığı, mümkünse uygulamadan sürüm/CRC bilgisi. - Günlük kaydını ve meta verileri kaydedin (zaman, port, dosya sürümü, cihaz seri numarası).
En maliyetli hataları önleyen küçük korumalar:
- “Beyaz liste” cihazları (yanlış COM portuna yazılım yüklememek için);
verifyişlemi yapılmadıysa yazılım yüklemeyi engelleme;- Ürününüz bunları flash bellekte saklıyorsa, önemli alanların/ayaların yedeğini alma.
Sık karşılaşılan hatalar
- Yanlış port: Yazılım aracı “cihazı görmüyor” veya başka bir yere yazıyor.
- COM/tty izinleri yok: Porta erişim hatası (özellikle Linux’ta).
- 5V UART veya zayıf topraklama: Bağlantı var, ancak yazma/doğrulama işlemi başarısız oluyor.
- Yanlış BSL modu: Yanlış düğme/pin sırası, cihaz önyükleyiciye girmiyor.
- “Yazılım yüklendi ama başlamıyor”: İmaj kartınız/frekansınız/devre düzeniniz için değil, reset/güç kesip bağlama gerekiyor.
- Yazılım sonrası BSL erişilemez: Arka kapı/giriş koşulları planlanmamış — silme işlemi için JTAG/SWD gerekiyor.
SSS
Sadece cc2538-bsl ile yetinmek mümkün mü?
Evet, eğer ROM BSL’ye erişimi garantili şekilde koruyorsanız. Pratikte, “kilitlenme” durumunda JTAG/SWD üzerinden kurtarma planına sahip olmak yine de faydalıdır.
Üretim için hangisi daha iyi: UniFlash mı yoksa cc2538-bsl mi?
Hata ayıklayıcı mevcutsa ve günlük kayıtlarıyla birlikte katı tekrarlanabilirlik gerekiyorsa, genellikle UniFlash/dslite tercih edilir. Üretim UART üzerinden yazılım yüklüyorsa ve basitlik önemliyse, kontrollerle birlikte cc2538-bsl + Python betiğiniz kullanılır.
Minimum “güvenli standart” yazılım yükleme süreci nedir?
(1) sil → yaz → doğrula, (2) port seçimi için sabit kural, (3) uygunsuz dosya ile yazılım yüklemeyi engelleme, (4) acil durum kurtarma imkanı (en azından bir test ortamında JTAG/SWD üzerinden).