Pickit2 ve Debug ?

Başlatan tyilgin, 11 Ocak 2011, 20:34:21

tyilgin

Merhaba arkadaşlar,

Mplab ta yazıp hi-tech ile derliyorum.

Pickit2 debugger modunda üzerine takılı mcuyu adım adım koşturup register, adres vs. durumlarını görmemizimi sağlıyor ?,

Aksi takdirde sadece software debug yapsaydı zaten mplabta oluyordu.

X-Fi

evet aynen öyle debug yaparken debugger kısmından mplap sim yerine pickit2 seçiyosun breakpoint ekleyebilirsin koduna durdurmak istediğin yerlere başkada bi özelliği yok standart koşturma ve yavaş koşturma dışında.
http://www.coskunergan.dev/    (Yürümekle varılmaz, lakin varanlar yürüyenlerdir.)

NaMcHo

Peki devremizi board üzerinde kurduğumuzda debug işlemi yapabiliyozmu?

Burak B

#3
@NaMcHo
Devrende sadece PIC+OSC Kısmı (Kristal, ve kondansatörler) olması bile yeterli. Nereye kurduğunun bir önemi yok. Tabi o kadar yalın olunca sonucu devrede gözlemek imkansızlaşıyor ama dökümantasyonda belirtilen minimum konfigürasyon bundan ibaret. MPLAB yazdığın kodu DEBUG modunda derleyip hex oluşturduktan sonra Pickit2 (Bundan sonra PK2) 'ye gönderir. Oda devrendeki PIC' e yükler. Bu Hex içerisinde MPLAB tarafından bize çaktırılmadan eklenmiş "Debug Executive" denen özel kod parçaçıkları mevcuttur. PK2 hex dosyamızı PIC' e yükledikten sonra bir reset gerçekleştirilir. Devremizdeki PIC çalışmaya başlar ancak o anda yürüttüğü bizim yazdığımız kod değildir. En azından henüz ;) Çünkü bu esnada MPLAB tarafında Debug Executive' den gelebilecek her türlü komutu dinleyen bir yazılım mevcuttur. Dolayısıyla PIC üzerinde ilk önce Debug Executive kodun işletilmesi sağlanır ve MPLAB e ben içerde hazırım seni bekliyorum mesajı yollanır. MPLAB' deki dinleyici kod bu mesajı alınca geriye tamamdır başlayalım bilgisini gönderir. PIC içerisindeki debug executive bu mesajı alınca bizim koda dallanır ve ilk satırına oturur. Bundan sonra MPLAB' de her yaptığımız Trace Over, Trace Into, Run, Animate, v.s. işlemi Debug Executive tarafından alınır ve bizim kod üzerinde uygulanarak sonuçlar yine aynı şekilde MPLAB' e gönderilir. Böylece PIC o esnada MPLAB in kuklası durumuna gelir ve bizim kod üzerinde gördüğümüz tüm işlemler aslında PIC üzerindede gerçekleştirilmiş olur. Yani aslında biz MPLAB e debug modunda derle dediğimizde kendi kodumuza özel bir parazit daha eklenmesine izin vermiş oluruz :) Daha detaylı bilgi için PK2 nin manualine bakabilirsiniz orda bahsettiğim şeylerin ne olduğuna ve hafızada nasıl yerleştiklerine dair daha detaylı bilgiler mevcut.

Umarım faydalı olabilmişimdir.
"... a healthy dose of paranoia leads to better systems." Jack Ganssle

NaMcHo

Teşekkürler olayı anladım ilk fırsatta denicem  :)

tyilgin

Cevaplarınız için teşekkür ederim..