Back to Blog

STM32MP157F-DK2 Geliştirme Kartındaki Cortex-M4'e Ethernet ve SSH ile Firmware Nasıl Yüklenir?

STM32MP157F-DK2 kartının Ethernet kablosu ile bilgisayara bağlanması, IP adresinin minicom ile öğrenilmesi, SSH ile karta bağlanıp M4 firmware’inin SD kartı çıkarmadan yüklenmesi ve başlatılması hakkındaki yazım.

October 15, 2026 Updated: October 15, 2026 1 min read

Bir önceki yazımda M4 firmware’ini SD kartı bilgisayara takıp .elf dosyasını SD karta kopyalayarak yüklemiştim. Her denemede SD kartı çıkarıp takmak hem yorucu hem de kart yuvasına zarar verme riski olan bir yöntem. Bu yazımda aynı işi Ethernet kablosu ve SSH ile yapacağız. Böylece kart yerinde dururken .elf dosyasını ethernet kablosu üzerinden gönderip M4'ü uzaktan başlatıp durdurabileceğiz.

Örnek uygulamada LD6 LED’ini 500 ms aralıklarla blink yaptıran firmware vardı.


Büyük Resim

  1. Kartın Ethernet portu, kablo ile doğrudan bilgisayara (veya modeme/router’a) bağlanır
  2. Kart SD kartla boot edilir, mikro-USB ile bilgisayara bağlanır
  3. Minicom yazılımı ile seri terminal açılır kartın IP adresi terminalden öğrenilir
  4. Bilgisayardan ssh ile öğrenilen IP adresi üzerinden karta bağlanılır
  5. CubeIDE projesindeki .elf dosyasının yolu bulunur
  6. .elf dosyası scp ile kartın /lib/firmware dizinine gönderilir
  7. remoteproc ile firmware seçilir, M4 başlatılır, gerektiğinde durdurulur, status kontrol edilebilir


Gerekli Donanım ve Yazılımlar

Donanım

  1. STM32MP157F-DK2 kartı (OpenSTLinux imajı yazılmış SD kart takılı olmalı. Bu yazımda SD kartın içinde varsayılan olarak yüklü şekilde geldiği yocto dosyaları ile kullanımını varsayıyor)
  2. Ethernet kablosu
  3. Mikro-USB kablosu (kart üzerindeki ST-LINK portu için)
  4. Kartın güç beslemesi (USB-C)
  5. Bilgisayar ve aynı ağa bağlı bir modem/router - ben modem yerine ethernet kablosunu direkt bilgisayara bağladım

Yazılım

  1. STM32CubeMX ve STM32CubeIDE (projeyi derlemek için)
  2. minicom (veya önceki yazımdaki picocom)
  3. ssh ve scp (Linux’ta hazır gelir, windows tarafındaki kullanımı araştırınız, ben bilgisayarımda ubuntu kullanıyorum)


Kablo Bağlantıları

Kartı üç yerden bağlıyoruz:

  1. Ethernet: Kartın üzerindeki RJ45 portu ile bilgisayarın ethernet portunu kabloyla bağlayın.
  2. Mikro-USB (ST-LINK): Bilgisayara bağlanır, seri konsol için kullanılır.
  3. USB-C güç: Kartı besler. 5V-3A bir adaptör kullanılmalı

Dikkat edilecekler:

  1. Boot anahtarları SD Card konumunda olmalı (önceki yazımdaki ayar)
  2. Ethernet kablosu takılıyken kartın port ışığı yanıyorsa(yeşil) fiziksel bağlantı tamamdır


minicom ile Seri Terminali Açma

Önce kurulu değilse minicom’u kuralım:

sudo apt install minicom

Mikro-USB bağlıyken kartın hangi portta göründüğüne bakalım:

ls /dev/ttyACM*
# /dev/ttyACM0

minicom’u bu porta bağlayalım:

sudo minicom -D /dev/ttyACM0 -b 115200

Baud rate 115200 olmalı


Kartın IP Adresini Öğrenme

Giriş yaptıktan sonra IP adresine bakın:

ip -br addr

Çıktıda eth0 arayüzünün altında şuna benzer bir satır görmelisiniz:

inet 192.168.1.45/24 ...

Buradaki 192.168.1.45 kartın IP adresidir (sizdeki farklı olacaktır). Sadece eth0'a bakmak için:

ip addr show eth0

Artık kartın IP adresi elimizde, şimdi ssh ile bağlanabiliriz


SSH ile Karta Bağlanma

Bilgisayarda yeni bir terminal açın (minicom açık kalabilir) ve şunu yazın:

ssh root@192.168.1.45

İlk bağlantıda şu soruyu görebilirsiniz:

Are you sure you want to continue connecting (yes/no)?

yes yazıp devam edin. Şifre sorarsa, imajınızda şifre belirlemediyseniz boş geçebilirsiniz.

Bu andan itibaren kart komutlarını SSH terminalinden çalıştıracağız.


.elf Dosyasının Yolunu Bulma

Firmware’i derledikten sonra (derleme adımları bir önceki yazımdaki gibi: CubeMX ile proje oluşturma, LD6 pinini CortexM4'e atama, HAL_GPIO_TogglePin + HAL_Delay(500) kodunu yazma ve CubeIDE’de CM4 projesini Build etme) .elf dosyası proje klasörünün altında şu konumda oluşur:

<proje_klasoru>/CM4/Debug/<proje_adi>_CM4.elf

CA7 tarafının projesi değil, CM4 projesinin .elf dosyasını kullandığınızdan emin olun


.elf Dosyasını SSH Üzerinden Karta Gönderme

Dosya transferi için scp kullanacağız. Bu komutu bilgisayardan çalıştırıyoruz (kartın içindeki SSH terminalinden değil):

scp CM4/Debug/STM32MP1_deneme2_CM4.elf root@192.168.1.45:/lib/firmware/

Transfer bittiğinde ilerleme çıktısı görürsünüz. Dosyanın karta ulaştığını doğrulamak için kartın SSH terminalinde şunu çalıştırın:

ls -l /lib/firmware/

Dosya listede görünmelidir.

Dikkat edilecekler:

  1. Hedef dizin mutlaka /lib/firmware olmalı. remoteproc firmware’i buradan arar
  2. Komutu proje klasörünün içinden çalıştırmıyorsanız .elf dosyasının tam yolunu yazın


Linux Üzerinden M4'ü Çalıştırma

Aşağıdaki komutlar kartın SSH terminalinde çalışır.

Firmware’i seçmek için:

echo -n STM32MP1_deneme2_CM4.elf > /sys/class/remoteproc/remoteproc0/firmware

Başlatmak için:

echo start > /sys/class/remoteproc/remoteproc0/state

Durdurmak için:

echo stop > /sys/class/remoteproc/remoteproc0/state

M4'ün durumuna bakmak için:

cat /sys/class/remoteproc/remoteproc0/state

Çıktı running veya offline olacaktır. Başarılı bir start sonrasında LD6 LED’i 500 ms aralıklarla yanıp sönmeye başlar.

Dikkat edilecekler:

  1. M4 running durumundayken firmware değiştirmek istiyorsanız önce stop yapın, sonra yeni firmware adını yazıp tekrar start verin
  2. Kart yeniden başlatıldığında M4 otomatik çalışmaz. Her açılışta start komutu verilmelidir (otomatik başlatma konusunu ileride ayrı bir yazıda inceleyeceğim)


Her Güncellemede Yapılacak Kısa Döngü

SD kartı çıkarmadan geliştirme akışı şöyle oluyor:

# Kart SSH terminalinde
echo stop > /sys/class/remoteproc/remoteproc0/state

# Bilgisayarda
scp CM4/Debug/STM32MP1_deneme2_CM4.elf root@192.168.1.45:/lib/firmware/

# Kart SSH terminalinde
echo -n STM32MP1_deneme2_CM4.elf > /sys/class/remoteproc/remoteproc0/firmware
echo start > /sys/class/remoteproc/remoteproc0/state

Bu döngü SD kart yöntemine göre çok daha hızlı olacaktır

Genel Kültür Notları

  1. SSH ve scp A7 tarafında çalışan Linux’un işidir. M4 ağ ile doğrudan ilgilenmez, ona sadece firmware’i Linux yükler
  2. Varsayılan imajda root şifresiz gelmesi geliştirme için kolaydır, ama kartı güvenli olmayan bir ağa bağlayacaksanız root için şifre belirlemek gerekir

Henüz kartı tam anlamıyla öğrenmiş değilim, öğrendikçe aldığım notları düzgünce toplayarak burada paylaşacağım. Sıradaki konular A7 ve M4 arasında haberleşme (RPMsg) ve Yocto olacak.

Related Posts