2012-01-02 20 views
6

Yazılımları çıplak metal sistemlerde (ARM Cortex a8) nasıl görüntülediğinizi merak ediyorum. Daha önce, yerleşik benchmark istatistiklerine sahip bir simülatör kullanıyordum ve şimdi gerçek donanımdan (BeagleBoard-Xm üzerinde çalışan) sonuçları karşılaştırmak istiyorum.Baremetal gömülü sistemler üzerinde profil oluşturma (ARM)

Gprof'u kullanabileceğinizi anlıyorum, ancak Linux'u hedef sistemde çalıştırmanız gerektiğini varsayarım.

Codesourcery'nin kol-none-eabi çapraz derleyicisiyle yürütülebilir dosyayı yapıyorum ve hedef sistem FreeRTOS'u çalıştırıyor.

cevap

3

"Profil oluşturma" ile ne demek istediğinizi yakından değerlendirin. Gerçekten de çıplak metale çok yakın çalışıyorsunuz ve muhtemelen gprof gibi bir araç tarafından gerçekleştirilen bazı çalışmaları üstlenmeniz gerekecek.

Bir işlev çağrısı yapmak ister misiniz? ya da bir ISR? İnceleme altındaki koda girip çıktıktan sonra GPIO hattını değiştirmeye ne dersiniz? Bu olaylarda tetiklemek için bir veri kaydedici veya osiloskop ayarlanabilir. (Benim deneyimlerime göre, bir veri kaydedici benimkilerden daha uygun, çünkü bu olayların bir dizisini yakalayabilmem için ortalama zamanlamaları hesaplamama izin veriyordu.)

İdam sayısını saymak ister misiniz? Cortex A8, link yardımcı olabilecek bir dizi özellik ile (konfigüre edilebilir olay sayaçları gibi) donatılmıştır. ARM çipiniz de kullanılabilecek diğer çevre birimleri ile donatılmış olabilir (satıcıya bağlı olarak). Ne olursa olsun, yukarıdaki bağlantıya bir göz atın - yeni ARM'lerin istediğim kadar oynamayacağım çok sayıda harika özelliği var! ;-)

+0

Saat döngüleri, çağrı grafikleri, her bir fonksiyonda harcanan zaman, çağrı miktarı gibi çeşitli veriler hakkında bilgi toplamak için gprof gibi herhangi bir profil oluşturma aracının kullanılıp kullanılamayacağını düşünüyordum. Ancak, uygulamayı baştan sona çalıştırmak için kaç saat çevrimine ihtiyaç duyarsam memnun olurum. Bana verdiğin bağlantı güzeldi, ona bakacağım, Thx! – MrGigu

+0

Merhaba, saat sayacı sayacı çalışıyor, ancak PMU (performans izleme birimi) ile bir işlev zamanlamak mümkün olup olmadığını merak ediyorum? Ayrıca bir flyswatter 2 hata ayıklayıcım var, belki bir şey için kullanılabilir? Donanımı zamanlamak için bir veri kaydedici veya osiloskop almam gerekir mi? Bunlardan hiç birini kullanmadım ve oldukça pahalılar! – MrGigu

+0

İşte makul fiyatlı bir mantık analizörü. Benim için yeterince çalıştı: http://www.nci-usa.com/frame_products_overview.htm. PMU istatistiklerinin bir kısmı ETM'ye ihraç edilebilir - buradan Flyswatter'ın JTAG arayüzünü kullanarak bunlara erişmek mümkün olabilir. (Ben sadece tahmin ediyorum). – Throwback1986

2

ARM Cortex M için profil oluşturmayı başardım. GNU ARM Embedded (launchpad) araçları profil kütüphaneleriyle birlikte gelmediğinden, gerekli tutkal ve profilleme işlevlerini ekledim. Referanslar: umarım bu yardımcı olur http://mcuoneclipse.com/2015/08/23/tutorial-using-gnu-profiling-gprof-with-arm-cortex-m/

bakınız.

+0

Bu bağlantı soruyu yanıtlayabilirken, cevabın temel kısımlarını buraya dahil etmek ve referans için bağlantı sağlamak daha iyidir. Bağlantılı sayfa değişiklikleri https://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good-answers/8259#8259 değiştirdiğinde yalnızca bağlantı yanıtları geçersiz hale gelebilir –

+0

Bir yazarın eleştirisini yapmak ya da rica etmek için, gönderilerinin altında bir yorum bırakın. – Bruce

İlgili konular