Read protection ardından reset

Başlatan z, 10 Mayıs 2015, 06:14:22

z

Bir yerlerde dip not okumuştum ama nerede okuduğumu hatırlamıyorum. Okuduğum bir iki satır, aşağıda açıkladığım olayı anlatıyordu diye hatırlıyorum.

STM32Fxxx i kodlarımızla okuma korumasına alırsak ardından da reset ile programı yeniden başlatırsak çip kafadan exception handler'a düşüyor.

Eğer elektiği kesip verirsem kodlarım düzgün işliyor.

Elektriği kesip vermek işime gelmiyor. Reset ile kodu başlatmak istiyorum. Yok mu çaresi?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

MrDarK

Hocam selam hangi reset kodunu kullanıyorsunuz ?

Reset_Handler(); mı ?
Picproje Eğitim Gönüllüleri ~ MrDarK

z

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

X-Fi

Geçenlerde bizimde bir pilli uygulamamızda bu konu gündeme gelmişti. Enerjiyi kesmeden options bitleri ile işlem yapınca değişik davrandığını gördük. Aynı soruyu ST ye sorunca aynı bank içerisinde koşan yazılım o bankda yazma işlemi yaparsa power on reset yapılmalı dediler. Çözüm olarak RAM üzerine çıkıp hedef bank ile işlem yapmamızı söylediler. Yazılıma dokunmayıp sorunu üretim tarafında çözmüştük. Takibi power on reset yaparak.

Aynı sorun St-link üzerinden korumaları değiştirdiğinizdede yaşanıyor bunuda dile getirdik st-link için sorunu çözecek bir firmware yayınlayacağız dediler hala bekliyoruz.
http://www.coskunergan.dev/    (Yürümekle varılmaz, lakin varanlar yürüyenlerdir.)

z

X-Fi sanırım çözümü yok bunun ST nasıl çözüm getirecek anlayamadım.

Sorun şu şekilde ortaya çıktı. STM içine attığım yazılım reset işlemi ardından çipte koruma varmı yokmu diye kontrol ediyor. Eğer yoksa (bu çipi programlarken unutulmuş demektir ve çip piyasaya çıktığında korumasız çıkacak demektir ve firma açısından büyük risktir)

Eğer koruma yoksa korumayı aktifleştiriyor. Böylece bu tip eleğin gözünden kaçmış çipler hala risk teşkil etse de sorun kısmen çözülmüş oluyor.

Ancak koruma aktif hale getirildiğinde çipin powerının kesilip tekrar açılması gerekiyor. Zira enerjiyi kesmezsen hala jtag üzerinden debug yapabiliyorsun.

Eğer reset atarsan bu durumda kodlar gene işliyor. Taaaki roma erişim yapan komutla karşılaşıncaya kadar.

Karşılaştığı anda exception oluşuyor. Bu anda artık flashdaki kodlar 0x0000000 olarak görünüyor.

Jtagla izlemeyeceğim deyip çipe pin üzerinden reset atarsan gene kodlar koşmuyor.

Ne zaman çipin elektiriğini kesip verirsek o zaman işler düzeliyor. Kod jtag üzerinden debug edilemiyor ama kodlar kendi başına düzgün çalışıyor.

Neden böyle bir tasarım yapılmış çok merak ediyorum. Yani korumalar aktifleştirilince gerçek koruma neden hard resetde işe yaramıyor da power on reset işe yarıyor.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com