Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

STM32 Ethernet Problemi

Başlatan flowchartx, 08 Şubat 2023, 08:50:22

flowchartx

Herkese merhabalar F7 serisinde koşan bir ethernet udp programım var. Program iyi hoş her şey istediğim gibi çalışıyor. Sürekli pc ile veri alışveri içindeler. Bir matrix buton ile karta veri girişi yapıyorum. O da bunu pcye yolluyor. Ama ben 1 saat veri girişi yapmaz isem haberleşme donuyor. MPU birimini kullanmıyorum programda. Bir zararınıda görmedim. Acaba bu kopma/donmanın sebebi nedir?

kimlenbu

Cihazı debug'da bırakıp ETH donanımına ait register'ları gözlemeden yorum yapmak zor. MCU'nun kilitlenmediğinden emin misiniz ? Önce bir dahili watch dog'u kullanmayı deneyin isterseniz.

Ethernet kütüphanesinde deadlock'a sebep olabilecek kısımlar var, while döngüsünde takılabileceği bölümler çıkabiliyor, kütüphaneyi modifiye edip timeout özelliği eklemek gerekebilir.

flowchartx

Debuga bırakıp sadece kullandığım değişkenleri izledim. Haberleşme donduktan sonra her şey normal gözüküyor. Breakpointlerde duruyor, değişkenler olması gibi artıp azalıyor, Veri gönderiyor fakat veri almıyor. Ethernet registerlarını izlemedim onlarıda bir izlemeyi deneyeyim. Aklıma şöyle bişey geldi lwip kütüphanesinde ki p bufferında sıkıntı oluyor olabilir mi acaba ?

kimlenbu

Buffer boyutunu arttırıp denemek lazım, belki farkında olmadan taşmaya sebep oluyordur. Hangi mcu'da hangi ram bölgesini kullanıyorsunuz önemli aslında.

flowchartx

F746VG kullanıyorum. Hatayı aldıktan sonra TxBufferı ve RxBufferı SRAM'e yerleştirdim. Birde öyle denemek için Buffer boyutunu 10*1024 yaptım fakat daha kısa sürede kopmalar yaşadım. Şuan bufferlarım 0x20000738 den sonra default olarak yerleşiyorlar. lwipde ki boyutta 1600 byte. Haberleşmede en çok gönderdiğim veri 24 byte. İşin içinden çıkamadım bir türlü