ARM DSTREAM debugger

Başlatan taydin, 03 Eylül 2019, 23:13:39

taydin

Elimdeki ARM'ın DSTREAM debugger donanımını kullanabileceğim başka bir debugger yazılımı var mıdır? Ben aldığımda sadece ARM'ın kendi DS-5 (Pro ve Ultimate) yazılımı ile çalışıyordu, bu yazılımı da vücuttan en az bir organ satmadan alamıyordun :D

Açık kaynak GDB'nın portlarında böyle bir destek göremedim. Umarım daha uygun fiyatlı bir debugger yazılımı vardır bunu destekleyen.
Timur Aydın (mekatronik.org)

Epsilon

#1
Debug işlemini yazılan kodda hataları debug programının göstermesi olarak biliyorum.

IDE zaten hatalı satırları gösteriyorken ,kullanılan değişkenler de istenildiğinde ekrana basılıyorken, eskiden  kodu otomatik oluşturan wizard lar bile varken, sanırım çok karmaşık kodlarla çalışılırken debugger programları satın alınıyor.

Kodun değeri satırlarla ölçülmez ama optimize edildiği halde bile ne uzunlukta kaynak kodlar sözkonusu acaba?
Onbin satırdan  uzun kodlarla uğraşan arkadaşlar varmı mesela ?

taydin

#2
Debugger'ın işi aşağıdakileri yapmaktır:

1) Programı adım adım çalıştırmak, ve tüm register değerlerini de görüntülemek, programın da kaynak kodu içindeki konumunu göstermek.
2) Breakpoint koymak ve program akışı o noktaya geldiğinde işlemciyi durdurmak.
3) Trace verisi toplamak.

1. inci madde genelde programlamaya yeni başlayanların çok sevdiği bir özellik, çünkü assembly ile çalışıyorsanız, her komutun tam olarak ne yaptığını öğreniyorsunuz. C/C++ ile çalışıyorsanız, programın her satırda neler yaptığını öğreniyorsunuz.

Ama gerçek hayatta bir işe yarayan birçok firmware programını adım adım çalıştırma olanağı olmuyor. Mesela firmware seri porttan 1ms de bir veri okuması gerekiyor. Siz firmware'i durdurdunuz, seri portta anında taşma meydana gelecek. Firmware'ler genellikle "real time" dır, zamanı durduramazsınız. Aynı şekilde birçok multithreaded program da  adım adım çalıştırıldığında sizi problemi bulmanızı sağlamaz, çünkü problem çoğunlukla thread'lerin çalışma timing'i ile ilgilidir. O yüzden bir kere dil yapısını iyi bir şekilde öğrendikten sonra bu adım adım çalıştırmayı pek kullanmazsınız.

2. Breakpoint koyup programı durdurmak işe yarar. Mesela programın hatalı davranış gösterdiği yerde durmasını sağlarsınız ve register'ları, değişkenleri, tabloları incelersiniz. Ayrıca fonksiyonların çağrılma silsilesini (call stack) ve hangi fonksiyona hangi parametre verilmiş görüntüleyebilirsiniz.

3. Trace verisi toplamak. İşte DSTREAM gibi debugger'ların en önemli avantajı budur. JLink'in de benzer ürünleri var. Bunlarla, kod tam hızda çalışırken, program nerelere uğradı, hangi datalara erişti, başka neler oldu gibi bir kayıt tutulmasını sağlar. Program "real time" çalışırken toplanan bu veriler bug'ı bulmakta büyük yardımcı.
Timur Aydın (mekatronik.org)

taydin

#3
ARM'in sadece Cortex-M destekleyen debugger'i (ARM Development Studio Bronze) ancak kiralanabiliyor ve yıllık kirası 2500 dolar :o Yani en düşük kategorideki debugger bu fiyat. Tüm ARM serisini destekleyen debugger yıllık 6500 dolar!

İşte tekel bir firma olunca satış politikası da böyle oluyor. Birçok firma geliştirme araçlarını bedava yapıyorken, ARM geliştirme araçlarının fiyatları giderek arttı. Herhalde bu DSTREAM'den ümidi keseceğim ve JLink Pro yu alacağım. Oldukça iyi şeyler söyleniyor JLink hakkında.
Timur Aydın (mekatronik.org)

OptimusPrime

DS-5 Altera Cyclone serisinde var ucretsiz olarak. Cortex-A serisi icin tabi. M serisi icin bu kadar curcunaya gerek yok sanki.  :du:
https://donanimveyazilim.wordpress.com || Cihân-ârâ cihân içredir ârâyı bilmezler, O mâhîler ki deryâ içredir deryâyı bilmezler ||

ErsinErce

Alıntı yapılan: taydin - 03 Eylül 2019, 23:13:39Elimdeki ARM'ın DSTREAM debugger donanımını kullanabileceğim başka bir debugger yazılımı var mıdır? Ben aldığımda sadece ARM'ın kendi DS-5 (Pro ve Ultimate) yazılımı ile çalışıyordu, bu yazılımı da vücuttan en az bir organ satmadan alamıyordun :D

Açık kaynak GDB'nın portlarında böyle bir destek göremedim. Umarım daha uygun fiyatlı bir debugger yazılımı vardır bunu destekleyen.
Elinizdeki ARM hangi seri? detay verirseniz yardımcı olmaya çalışalım.

ST, NXP'in ürettiği 10$lık demo kartlarda bile debugger mevcut.

GDB tam destek veriyor genelde

Hızlı Trace istiyorsanız u-link pro yada j-trace'e yönelmek gerekiyor.


taydin

#6
NXP imx6 olan hazır bir modül kullanıyorum (Variscite yapımı). Üzerinde linux çalışıyor. Kernel driver ve u-boot ile çalışırken kullanmak üzere almıştım DSTREAM'i, yazılım zamanda ucuzlar diye.

https://www.variscite.com/product/system-on-module-som/cortex-a9/var-som-mx6-cpu-freescale-imx6/

JTAG arabirimi var, oradan DSTREAM'e bağlantı olanağı var. Zamanında DS-5 için 60 gün eval vermişlerdi, çalıştığını da gördüm.
Timur Aydın (mekatronik.org)

taydin

Alıntı yapılan: OptimusPrime - 06 Eylül 2019, 02:58:51DS-5 Altera Cyclone serisinde var ucretsiz olarak. Cortex-A serisi icin tabi. M serisi icin bu kadar curcunaya gerek yok sanki.  :du:

M serisi kullanmadım şimdiye kadar. Ama trace özelliği M serisinde de çok faydalı olur.
Timur Aydın (mekatronik.org)