Yönetici Özeti
Giriş
1. S32DS IDE'nin başlatılması ve hata ayıklaması sırasında ne tür hazırlıklar yapıldı?
2. Hata ayıklama hedefi sıfırlama nedir ve hata ayıklama hedefi sıfırlamayı kullanmanın faydaları
3. ARM v2018 için S32DS'de hata ayıklama hedefi nasıl sıfırlanır
3.1 MCUyu sıfırlayın ve otomatik olarak ana işlevin ilk satırına kadar çalıştırın
3.2 MCUyu sıfırlama işlevine sıfırlayın
4. S32DS for Power v2017.R1'de hata ayıklama hedefi nasıl sıfırlanır
sonuç olarak
Giriş
Son zamanlarda, birçok okuyucu S32DS IDE'de hata ayıklarken hata ayıklama hedefinin nasıl sıfırlanacağını sordu.Burada, yanıtlamaya odaklanacağım, umarım herkese yardımcı olur!
1. S32DS IDE'nin başlatılması ve hata ayıklaması sırasında ne tür hazırlıklar yapıldı?
S32DS IDE'nin hata ayıklama arayüzünün Konsol penceresinden, kullanıcı hata ayıklama arayüzüne girmek için hata ayıklamaya başladığında ve program işaretçisi kesme noktası uygulama ana talimatının ilk satırında durduğunda işlem sırasında hangi özel hazırlıkların yapıldığını görebilirsiniz.
Aşağıda, ARM v2018 IDE için S32DS'de S32K1xx serisi MCU'nun hata ayıklama başlatma işlemi sırasında konsol çıktısının bir ekran görüntüsü verilmiştir:
Buradan, bu işlem sırasında hata ayıklayıcının komut satırı komut dosyasını çalıştırarak aşağıdaki hazırlıkları yaptığını görebilirsiniz:
CMD > RE: MCUyu sıfırlayın;
CMD > CM: MCU'nun SRAM'sinde çalıştırmak için MCU'nun Flash algoritmasını (ikili Flash sürücüsü) seçin ve yükleyin;
CMD > VC: MCU Flash'taki içeriği kontrol edin, bir CRC-16 sağlama toplamı yapmak için okuyun ve mevcut indirme / hata ayıklama hedefinin elfinde bulunan program koduyla karşılaştırın. Tutarlılarsa, hata ayıklamaya girmek için doğrudan adımına atlayın. Aşağıdaki program indirme komutlarını çalıştırmaya gerek yoktur , , ;
CMD > EM: MCU'nun Flash modülünü silin.Buradaki varsayılan, genellikle bu NVM-P-Flash / C-Flash ve EEPROM / D-Flash dahil olmak üzere, Tümünü Sil komutunu kullanın;
CMD > PM: Programlama Flaşı;
CMD > VC: Flash'ı kontrol edin;
CMD > RE: Hata ayıklamaya girmek için MCUyu sıfırlayın;
2. Hata ayıklama hedefi sıfırlama nedir ve hata ayıklama hedefi sıfırlamayı kullanmanın faydaları
Sözde hata ayıklama hedefi sıfırlama, MCU sıfırlamanın (sıfırlama), hata ayıklamayı yeniden başlatmadan ana işlevin / sıfırlama işlevinin (başlatma başlatma işlevi / Reset_Handler, sıfırlama vektörü tarafından gösterilen adres) ilk satırına çalıştırılmasına izin vermektir. Tüm hata ayıklama durumları değişkenleri başlangıç değerlerini geri yükler, MCU çekirdeği ve çevresel kayıtlar sıfırlanır.
Hepimizin bildiği gibi, gömülü MCU'da, Flash'ın silinmesi ve programlanması son derece zaman alıcıdır.Aşağıda, veri sayfasından alınan S32K1xx serisi ve MPC574xP serisi otomotiv MCU'larının Flash çalışma süresi verilmiştir:
Yukarıdaki parametre tablosundan da görülebileceği gibi, Flash'ın silme ve programlama süresi onlarca milisaniyeye, hatta binlerce milisaniyeye ulaşabilir ve bu son derece zaman alıcıdır.Bir hata ayıklayıcı kullanıyorsanız, hızın kendisi nispeten yavaştır - yerleşik EVB gibi OpenSDA hata ayıklayıcı veya U-Multink, programın indirme süresini daha da artıracaktır.
Hata ayıklamayı yeniden başlatmaya gerek olmadığından, yani Flash'ı yeniden silmeden, programlamadan ve doğrulamadan hata ayıklamayı yeniden başlatabilirsiniz, bu da hata ayıklama süresinden büyük ölçüde tasarruf sağlayabilir.Bu nedenle, hata ayıklama hedef sıfırlama, gömülü MCU uygulamalarının geliştirilmesinde ve hata ayıklamasında çok yararlıdır.
3. ARM v2018 için S32DS'de hata ayıklama hedefi nasıl sıfırlanır
ARM v2018 için S32DS'de hata ayıklama hedefini sıfırlamanın iki yolu vardır:
3.1 MCUyu sıfırlayın ve otomatik olarak ana işlevin ilk satırına kadar çalıştırın
Hata ayıklama arayüzünün Hata Ayıklama penceresinde, hata ayıklama hedefi tarafından indirilen elf dosyasını seçin ve ardından "Sonlandırmadan ve yeniden başlatmadan bir işlemi veya hata ayıklama hedefini yeniden başlat" kısayol komutunu tıklayın. icon:
Hata ayıklama hedefi MCU'yu hızlı bir şekilde sıfırlayabilir ve uygulamanın ana işlevinde otomatik olarak ilk kod satırına çalıştırabilirsiniz:
3.2 MCUyu sıfırlama işlevine sıfırlayın
Hata ayıklama arayüzünün Hata Ayıklama penceresinde, hata ayıklama hedefi indirmesinin hata giderme arayüzünü (GDB_PEMicro_Interface_Debugging) seçin ve ardından "HW Sıfırlamayı hedefe gönder" kısayol komut simgesine tıklayın:
Hata ayıklama hedefini hızlı bir şekilde Reset_Handler sıfırlama işlevine sıfırlayabilirsiniz:
4. S32DS for Power v2017.R1'de hata ayıklama hedefi nasıl sıfırlanır
S32DS for ARM v2018 ile karşılaştırıldığında, S32DS for Power v2017.R1 IDE'de yalnızca "HW Sıfırlamasını hedefe gönder" kısayol komutu vardır.
Bu nedenle, hata ayıklama arayüzünün Hata Ayıklama penceresinde, hata ayıklama hedefi indirmesinin hata giderme arayüzünü (GDB_PEMicro_Interface_Debugging) seçin ve ardından "HW Sıfırlamasını hedefe gönder" kısayol komut simgesine tıklayın:
Hata ayıklama hedefini hızlı bir şekilde Reset_Handler sıfırlama işlevine sıfırlayabilirsiniz:
İpuçları: Bu sırada tam hızda çalışıyorsa, program uygulamanın ana işlevindeki ilk kod satırında durmayacaktır. Başlangıç kodunu hızlı bir şekilde çalıştırmak ve ana işleve atlamak için aşağıdaki gibi ayarlayabilirsiniz:
Breakpoints penceresinde, hata ayıklamaya başlarken varsayılan olarak eklenen tek seferlik ana fonksiyon kesme noktasını seçin, sağ tıklayın - > Kesme Noktası Özellikleri'ni seçin ve kesme noktası özelliklerini ayarlayın:
Kesme noktası özellikleri penceresinde, Filtre'yi işaretleyin-- > Hedef hata ayıklama ve iş parçacığı hata ayıklama (Thread # 1)
Hata ayıklama arayüzünün Debug penceresinde, hata ayıklama hedefi tarafından indirilen elf dosyasını seçin ve ardından "Resume" kısayol komut simgesine tıklayın:
Ana işleve geçebilir ve kodun ilk satırında durabilirsiniz:
sonuç olarak
Bir önceki makale "S32DS IDE Kullanım İpuçları-Uygulama Mühendisliği Hata Ayıklama Sık Sorulan Sorular (SSS) Soruları ve Cevapları" başlıklı makalede, birçok S32DS IDE hata ayıklama yöntem ve tekniğini tanıttım, ilgilenen arkadaşlar şunları öğrenebilir:
1. Çok çekirdekli hata ayıklamaya nasıl başlanır?
2. S32DS dışı IDE projelerinin S19 / HEX / BIN / elf derleme sonuçları nasıl indirilir ve hata ayıklanır?
3. Qorivva MPC57xx ve S32R serisi MCU'nun e200Zx serisi CPU çekirdeğinin özel kaydı (SPR) nasıl kontrol edilir?
4. Demontaj kodu nasıl görüntülenir ve montaj talimatı hata ayıklaması nasıl yapılır?
5. Belirli NVM (Flash / EEE) adres içeriğinin program indirilirken silinmesine karşı nasıl korunur?
6. Data-Flash'ı ve harici QSPI Flash'ı programlamak için farklı Flash algoritma dosyaları nasıl yüklenir?
7. Böcekler nasıl eklenir ve bulunur?
8. Hafızadaki programlama sonucu S19 / HEX / BIN dosyasına nasıl aktarılır?
9. Uygulama hata ayıklama kesme noktaları nasıl verimli bir şekilde ayarlanır ve yönetilir?
10. Global değişkenler nasıl görüntülenir?
11. Hata ayıklama sırasında değişken değişiklikleri dinamik olarak nasıl izleyebilirim?
12. S32DS IDE'nin yardım dosyası nasıl bulunur?