21
eMON: Gerçek Zamanlı Gömülü Sistemlerin Çalışma Zamanı Görselleştirilmesi İçin Monitör Yazılımı Berkant AKIN 1 Berkant AKIN Mehmet GÖKÇAY, Kaan DOĞAN TUBİTAK-SAGE Ulusal Yazılım Mimarisi Konferansı Ankara, 2010

eMON: Gerçek Zamanlı Gömülü Sistemlerin Çalışma Zamanı ...bedir/Bilsen/UYMK-2010/presentations/Akin.pdf · Ulusal Yazılım Mimarisi Konferansı Ankara, 2010. İçerik Neden

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: eMON: Gerçek Zamanlı Gömülü Sistemlerin Çalışma Zamanı ...bedir/Bilsen/UYMK-2010/presentations/Akin.pdf · Ulusal Yazılım Mimarisi Konferansı Ankara, 2010. İçerik Neden

eMON: Gerçek Zamanlı Gömülü Sistemlerin Çalışma Zamanı

Görselleştirilmesi İçin Monitör Yazılımı

Berkant AKIN

1

Berkant AKIN Mehmet GÖKÇAY, Kaan DOĞAN

TUBİTAK-SAGE

Ulusal Yazılım Mimarisi Konferansı

Ankara, 2010

Page 2: eMON: Gerçek Zamanlı Gömülü Sistemlerin Çalışma Zamanı ...bedir/Bilsen/UYMK-2010/presentations/Akin.pdf · Ulusal Yazılım Mimarisi Konferansı Ankara, 2010. İçerik Neden

İçerik

� Neden eMON Yazılımı?

� eMON Yazılım Mimarisi� Sembol Yöneticisi� Hata Ayıklama Bilgi Biçimleri� ELF, DWARF, COFF, ….

2

� ELF, DWARF, COFF, ….

� Parametre Yöneticisi� Betik(script) Yöneticisi� Görsel Bileşen Mimarisi� Gömülü İşler, eMON-Ghost

� Sonuç

Page 3: eMON: Gerçek Zamanlı Gömülü Sistemlerin Çalışma Zamanı ...bedir/Bilsen/UYMK-2010/presentations/Akin.pdf · Ulusal Yazılım Mimarisi Konferansı Ankara, 2010. İçerik Neden

Neden eMON Yazılımı?

� Deneycilik

� Var olmak � ΣΣΣΣ Gözlemlemek

3

Page 4: eMON: Gerçek Zamanlı Gömülü Sistemlerin Çalışma Zamanı ...bedir/Bilsen/UYMK-2010/presentations/Akin.pdf · Ulusal Yazılım Mimarisi Konferansı Ankara, 2010. İçerik Neden

Neden eMON Yazılımı?

� Gerçek zamanda hedef bilgisayarı durdurmadan gözlemleyebilmek

� Dinamik Sembol Yönetimi

� Gömülü ortamdan dışarıya atılan verinin

4

� Gömülü ortamdan dışarıya atılan verinin tanımlanması ve görselleştirilmesi

� Statik Sembol Yönetimi

� Etkin gözlemleme ve görselleştirme sayesinde yazılım geliştirme ve test süresini kısaltmak

Page 5: eMON: Gerçek Zamanlı Gömülü Sistemlerin Çalışma Zamanı ...bedir/Bilsen/UYMK-2010/presentations/Akin.pdf · Ulusal Yazılım Mimarisi Konferansı Ankara, 2010. İçerik Neden

eMON Yazılım Mimarisi

� eMON-PC

� Sembol Yönetimi

� Görselleştirme

� Parametre Yönetimi

� Betik Yönetimi

5

� Betik Yönetimi

� eMON-Ghost

� Gömülü ortamda sembollerin örneklenmesi

� Veri iletişimi

� İşletim Sistemi bağımsız

Page 6: eMON: Gerçek Zamanlı Gömülü Sistemlerin Çalışma Zamanı ...bedir/Bilsen/UYMK-2010/presentations/Akin.pdf · Ulusal Yazılım Mimarisi Konferansı Ankara, 2010. İçerik Neden

eMON-PC GUI

6

Page 7: eMON: Gerçek Zamanlı Gömülü Sistemlerin Çalışma Zamanı ...bedir/Bilsen/UYMK-2010/presentations/Akin.pdf · Ulusal Yazılım Mimarisi Konferansı Ankara, 2010. İçerik Neden

Sembol Yöneticisi

XML Parser

Statik Sembol

Sembol Ağaçları

Çalıştırılabilir Kod Monitör

Tanımlama Dosyası

<struct id = "24" name = "HataLog" offset = "0" size …

ELF Okuyucu

DWARF Çözücü

Dinamik Sembol

Betik(Script)Yöneticisi

XML Betikleme

Python

Çalışma Sayfası

Python Betikleme

Parametre Yöneticisi Görsel Bileşen Yöneticisi

Haberleşme Protokolu Tanımlayıcı ve Veri Çözücü

eMON-Ghost

Dinamik Sembol

Örnekleme

Statik Sembol Gönderme

Görsel Bileşen/Sembol Eşleştirici

Grafik ve Middleware Bileşenleri

Haberleşme Bileşenleri

Veritabanı

Hedef

Verileri

7

Page 8: eMON: Gerçek Zamanlı Gömülü Sistemlerin Çalışma Zamanı ...bedir/Bilsen/UYMK-2010/presentations/Akin.pdf · Ulusal Yazılım Mimarisi Konferansı Ankara, 2010. İçerik Neden

Dinamik Sembol YöneticisiHata Ayıklama Bilgi Biçimleri

� IDE’ler içerisinde yer alan “Hata Ayıklayıcılar(debugger)” hata ayıklama bilgilerini kullanarak işlevlerini yerine getirirler

� Populer Hata Ayıklama Biçimleri

ELF /DWARF

8

� ELF /DWARF

� COFF/STABS

� .PDB

eMON Yazılımı hata ayıklama bilgisi içerisinde yer alan verileri kullanarak sembol bilgilerine erişir.

Page 9: eMON: Gerçek Zamanlı Gömülü Sistemlerin Çalışma Zamanı ...bedir/Bilsen/UYMK-2010/presentations/Akin.pdf · Ulusal Yazılım Mimarisi Konferansı Ankara, 2010. İçerik Neden

Dinamik Sembol Yöneticisi Hata Ayıklama, DWARF

� DWARF: Debug With Arbitrary Record Format

� Popüler hata ayıklama bilgi formatıdır.

� Bilgi tanımları(değişken, tip, fonksiyon) DIE(debug information entry) diye adlandırılan veri yapıları ile tanımlanır.

9

tanımlanır.� DIE’ler ağaç yapısındadır

� DIE’ler Derleme birimleri (*.c/*.cpp, …) içerisinde yer alırlar

� DWARF bilgisi ELF(executable & linkable file) dosyası içerindeki aşağıdaki bölümler içine yerleştirilir

� .debug_info, .debug_abbrev, .strtab, .debug_str

Page 10: eMON: Gerçek Zamanlı Gömülü Sistemlerin Çalışma Zamanı ...bedir/Bilsen/UYMK-2010/presentations/Akin.pdf · Ulusal Yazılım Mimarisi Konferansı Ankara, 2010. İçerik Neden

Hata Ayıklama, DWARF10

Introduction to the DWARF Debugging Format Michael J. Eager, Eager Consulting February, 2007

Page 11: eMON: Gerçek Zamanlı Gömülü Sistemlerin Çalışma Zamanı ...bedir/Bilsen/UYMK-2010/presentations/Akin.pdf · Ulusal Yazılım Mimarisi Konferansı Ankara, 2010. İçerik Neden

Sembol Yöneticisi, Dinamik Sembol Yönetimi

� Evrensel Değişkenlerin Tip/Boyut/Adres bilgileri DWARF içerisinden elde edilir

11

Page 12: eMON: Gerçek Zamanlı Gömülü Sistemlerin Çalışma Zamanı ...bedir/Bilsen/UYMK-2010/presentations/Akin.pdf · Ulusal Yazılım Mimarisi Konferansı Ankara, 2010. İçerik Neden

Sembol Yöneticisi, Statik Sembol Yönetimi

� Monitör tanımlama dosyaları ile yazılım içerisindeki semboller tanımlanır.

� iki ana bölümden oluşur

� Mimarisel BilgilerByte Boyutu

12

� Byte Boyutu

� Temel Veri tipleri

� Kodlama bilgisi( float, int, ..)

� Sembol Bilgileri� DWARF uyumlu offset, boyut ve tip bilgileri

� Offset bilgisi derleyiciden derleyiciye göre farklılık gösterebilir

� Benzersiz ID

Page 13: eMON: Gerçek Zamanlı Gömülü Sistemlerin Çalışma Zamanı ...bedir/Bilsen/UYMK-2010/presentations/Akin.pdf · Ulusal Yazılım Mimarisi Konferansı Ankara, 2010. İçerik Neden

Statik Sembol Yönetimi, Örnek Monitör Tanımla

13

Page 14: eMON: Gerçek Zamanlı Gömülü Sistemlerin Çalışma Zamanı ...bedir/Bilsen/UYMK-2010/presentations/Akin.pdf · Ulusal Yazılım Mimarisi Konferansı Ankara, 2010. İçerik Neden

Betik Yöneticisi

� Tüm kullanıcı arayüzü işlevleri betiklerle yapılır

� XML tabanlı görsel bileşen / sembol ilişkilendirilmesi

14

� Python Betikleme� Görsel Bileşen tetiklemesi

� Görsel bileşen verileri üzerinde işlem yapabilme yeteneği

� Python C/C++ API

Page 15: eMON: Gerçek Zamanlı Gömülü Sistemlerin Çalışma Zamanı ...bedir/Bilsen/UYMK-2010/presentations/Akin.pdf · Ulusal Yazılım Mimarisi Konferansı Ankara, 2010. İçerik Neden

Parametre Yöneticisi

� Sembol Ekleme

� Sembol-Görsel Bileşen eşleştirilmesinin yapılması

� Dinamik sembollerin gruplanması� Optimal gruplama

� Sembol Güncelleme

15

� Sembol Güncelleme

� Hedef bilgisayardan alınan verilerin DWARF kodlama bilgilerine göre çözülmesi

Page 16: eMON: Gerçek Zamanlı Gömülü Sistemlerin Çalışma Zamanı ...bedir/Bilsen/UYMK-2010/presentations/Akin.pdf · Ulusal Yazılım Mimarisi Konferansı Ankara, 2010. İçerik Neden

Parametre Yöneticisi, Sembol Ekleme16

Page 17: eMON: Gerçek Zamanlı Gömülü Sistemlerin Çalışma Zamanı ...bedir/Bilsen/UYMK-2010/presentations/Akin.pdf · Ulusal Yazılım Mimarisi Konferansı Ankara, 2010. İçerik Neden

Parametre Yöneticisi, Sembol Güncelleme17

ID, veri

Page 18: eMON: Gerçek Zamanlı Gömülü Sistemlerin Çalışma Zamanı ...bedir/Bilsen/UYMK-2010/presentations/Akin.pdf · Ulusal Yazılım Mimarisi Konferansı Ankara, 2010. İçerik Neden

Parametre Yöneticisi, Haberleşme

� Geçerli haberleşme arayüzü Ethernet / UDP

� RS232 / SpaceWire gibi iletişim arayuzleri de mevcuttur

� XML tabanlı haberleşme mesaj tanımlama arayüzü

� Esneklik

Evrensellik

18

� Evrensellik

Page 19: eMON: Gerçek Zamanlı Gömülü Sistemlerin Çalışma Zamanı ...bedir/Bilsen/UYMK-2010/presentations/Akin.pdf · Ulusal Yazılım Mimarisi Konferansı Ankara, 2010. İçerik Neden

Görsel Bileşen Yöneticisi

19

Page 20: eMON: Gerçek Zamanlı Gömülü Sistemlerin Çalışma Zamanı ...bedir/Bilsen/UYMK-2010/presentations/Akin.pdf · Ulusal Yazılım Mimarisi Konferansı Ankara, 2010. İçerik Neden

eMON-Ghost

� Hedef bilgisayarda çalışan C/C++ temelli gömülü yazılımdır� Dinamik sembol listesini yönetmek

� Dinamik sembol örneklemesini gerçekleştirmek

� Statik sembol gönderimini yapmak

Sembol örnekleme ve gönderim istatistiklerini tutmak

20

� Sembol örnekleme ve gönderim istatistiklerini tutmak

� eMON-Ghost ana fonksiyonun çağrılması� İşletim sistemi içerisinde bir ödevde� Zamanlayıcı fonksiyonu içerisinde

� Sembol listesi büyüdükçe gerçek zamanlı operasyon bozulabilir� (Observer Effect)

Page 21: eMON: Gerçek Zamanlı Gömülü Sistemlerin Çalışma Zamanı ...bedir/Bilsen/UYMK-2010/presentations/Akin.pdf · Ulusal Yazılım Mimarisi Konferansı Ankara, 2010. İçerik Neden

Sonuç

� Gerçek zamanda etkin gözlemleme yeteneği

� ELF/DWARF bilgisi kullanılarak dinamik gözlem

� XML tabanlı sembol tanımlama

� Betikleme servisleri

Hata ayıklama ve test süresinin kısaltılması

21

� Hata ayıklama ve test süresinin kısaltılması

� (De Facto)