Herkese selamlar. Bir proje için PCB tasarladım. PCB üzerinde stm32f407vgt denetleyicisi var. StmCubeIde de derlediğim kodu ST-link/v2 ile denetleyiciye atıyorum. Run modda veya debug modda farketmeksizin görseldeki hatayı alıyorum. Adım adım çalıştırdığımda while girdiğinde ilk satırı çalıştırıp sonra hataya düşüyor. Bunun sebebi ne olabilir. Bu konuda yardımcı olabilir misiniz ?
(https://i.ibb.co/MhRrf9g/Whats-App-Image-2022-05-15-at-16-45-49.jpg) (https://ibb.co/MhRrf9g)
Hardfault a benziyor. Call stack ve kodu da görmek işleri kolaylaştırabilir. Yada bir ekran kaydı alırsanız iyi olabilir.
Henüz sistem için kod yazmadım PCB'yi test etmek için GPIO pinlerine bağlı bir kaç ledi yakmak için basit bir kod yazdım. Kodu çalıştırdığımda ledler yanıyor sonrada bu görselde ki hataya düşüyor.
Islemci bu 0xFFFFFFFE adresine atlamis. (At kacmis)
Boyle bir kacis icin ne yapmis olabilirsin ki? Kodlarini gormek lazim.
Debug modunda start to main gibi bir kutu varsa onu kaldir ve reset ardindan adim adim kodu kostur.
Debug modunda start to main gibi bir kutu göremedim. Kodu aşağıda paylaşıyorum. İlk satıra gelip ilgili ledi yakıyorum PCB üzerinde ama alt satıra indiğinde bahsettiğim hata ile karşılaşıyorum. Ayrıca ilginiz için teşekkür ederim.
(https://i.ibb.co/0BvJnvV/Whats-App-Image-2022-05-15-at-21-21-43.jpg) (https://ibb.co/0BvJnvV)
Muhtemelen gpio init fonksiyonunda swd pinini de init edip debug dan kopuyorsun. Sadece output pinini init etmelisin.
Malesef Swd pinleri init edilmedi başka bir problemden kaynaklanıyor ama haala çözüm bulamadım bununla ilgili. Bazı forum sitelerinde bootx pinlerini gnd ye çekmelisiniz şeklinde bir kaç öneri var onları denedim onlarda olmadı
Alıntı yapılan: Emin66 - 15 Mayıs 2022, 21:25:47Debug modunda start to main gibi bir kutu göremedim. Kodu aşağıda paylaşıyorum. İlk satıra gelip ilgili ledi yakıyorum PCB üzerinde ama alt satıra indiğinde bahsettiğim hata ile karşılaşıyorum. Ayrıca ilginiz için teşekkür ederim.
(https://i.ibb.co/0BvJnvV/Whats-App-Image-2022-05-15-at-21-21-43.jpg) (https://ibb.co/0BvJnvV)
Yalniz dedigim Keil icin. Sen farkli bir sey kullaniyorsun galiba.
Keilde siralama asagidaki gibi.
Option for target
Debug
Run to main
Start to main dedigim sey run to main imis.
Programı cubemx gibi bir arayüzde oluşturmuş olup System Core / SYS / debug kısmını seçmemiş olabilir misiniz?
Derleme yaptığında oluşan Debug veya Release klasörlerini sil. ".launch" uzantılı dosyayı da sil. Tekrar derle.
Derleyici yukardada bahsettiğim gibi stmcubeıde.Debug klasörü ile .launch uzantılıyı ekleri sildim yine olmadı.
open ocd deneyebilirmisin.
(https://imgyukle.com/f/2022/05/16/Rlp4yp.png)
(https://imgyukle.com/f/2022/05/16/RlpZ46.png)
(https://imgyukle.com/f/2022/05/16/RlpMmx.png)
Bunu da denedim daha önce bu şekilde de olmadı. Mikrodenetleyiciyi değiştirip öyle deniyeceğim bakalım.
Sorun çözüldü. Option byte'de default olarak işaretli gelen görseldeki kutu kaldırılınca düzeldi. Herkese ilgisinden dolayı teşekkür ederim.
(https://i.ibb.co/vPPnHcb/Cozum.jpg) (https://ibb.co/vPPnHcb)