Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => ARM => Cortex ARM => Konuyu başlatan: z - 13 Kasım 2012, 19:33:24

Başlık: ARM CM3 çipleri JTAG yada SWD üzerinden debug ederken ....
Gönderen: z - 13 Kasım 2012, 19:33:24
ARM çipleri JTAG yada SWD üzerinden debug ederken;

Tek bir CPU komutu işletilip ardından beklenirken Timer ADC vs durumu ne oluyor? Örneğin Timer duruyormu? Duruyorsa durma çalış denebiliyormu?

Herhangi bir FIFO veri içerirken bu FIFO CPU ile değil de JTAG üzerinden okunursa FIFO boşalıyormu?

Benzeri sorulara cevap veren dokumanı arıyorum.
Başlık: Ynt: ARM CM3 çipleri JTAG yada SWD üzerinden debug ederken ....
Gönderen: hgs - 13 Kasım 2012, 21:08:59
Ti arm çipimi kullanıyorsunuz ?
Başlık: Ynt: ARM CM3 çipleri JTAG yada SWD üzerinden debug ederken ....
Gönderen: camby - 13 Kasım 2012, 21:16:06
Hocam timer için birkaç yerde " All timer counters can be frozen in debug mode. " yazıyor. Reference Manuel'de değil de çipin dökümanından ( STM32F407xx )aldım bunu. Buradan frozen olma durumu seçeneği varmış gibi anlıyorum ama bu şekilde bir ayar da hatırlamıyorum.

PM0056'da ise benzeri systick için yazıyor : "When the processor is halted for debugging the counter does not decrement"


mesaj birleştirme:: 13 Kasım 2012, 21:24:40

Ek :

Bir fonksiyonun işleme süresini görmek için TIM7'yi set edip çıkan sonucu ms cinsinden ekrana yazdırıyordum. Az önce bunu debug modunda denedim , her seferinde farklı ve saçma değerler alıyorum. Bu durumda TIM7 SWD debug modunda ve temel ayarlarlarda iken saymaya ettiği gözüküyor. Chip 32F100RB M3
Başlık: Ynt: ARM CM3 çipleri JTAG yada SWD üzerinden debug ederken ....
Gönderen: z - 13 Kasım 2012, 21:53:26
Alıntı yapılan: hgs - 13 Kasım 2012, 21:08:59
Ti arm çipimi kullanıyorsunuz ?

Evet.

Sorular tanıdık mı geldi?
Başlık: Ynt: ARM CM3 çipleri JTAG yada SWD üzerinden debug ederken ....
Gönderen: hgs - 13 Kasım 2012, 22:59:58
TI M3 lerin her tarafı dökülüyor. Önümüzdeki maçlara (M4 lere) bakacağız diyorlar...dı...
Başlık: Ynt: ARM CM3 çipleri JTAG yada SWD üzerinden debug ederken ....
Gönderen: XX_CİHAN_XX - 13 Kasım 2012, 23:02:21
Hocam systick timer duruyordu.
Mutemelen diğerleri de duruyordur.
Başlık: Ynt: ARM CM3 çipleri JTAG yada SWD üzerinden debug ederken ....
Gönderen: z - 13 Kasım 2012, 23:08:13
Alıntı yapılan: hgs - 13 Kasım 2012, 22:59:58
TI M3 lerin her tarafı dökülüyor. Önümüzdeki maçlara (M4 lere) bakacağız diyorlar...dı...

TI ın hangi çipi tek çırpıda mükemmel çıktıki? Revizyon üstüne revizyon.

Bütün hatalarıyla seviyorum TI'ı.
Başlık: Ynt: ARM CM3 çipleri JTAG yada SWD üzerinden debug ederken ....
Gönderen: hgs - 13 Kasım 2012, 23:15:10
Tek çırpıda düzgün çıkmaması degil sorun olan. M3 leri düzeltemiyoruz, M4 lerde sorun olmayacak mantıgı var firmada.
Başlık: Ynt: ARM CM3 çipleri JTAG yada SWD üzerinden debug ederken ....
Gönderen: pisayisi - 13 Kasım 2012, 23:47:49
Ti nin M4 leri de düzgün değil ki, ucuz satalım diye kuşa çevirmişler 32 bitlik işlemciyi.
Bu arada microchip firmasının işlemci alanındaki durgunluğun herkes biliyor, bunda mips firmasının ekonomik krizde olmasınında etkisi var mips i imagination adlı bir ingiliz grup satın aldı bir kısım lisanslarını da arm satın almış , ARM ın amacı mipsi böl parçala yapmaktı ; mips bu şekilde toparlancak gibi duruyor. Microchip arm ile rekabet edebilecek mips core larını ilerde piyasaya sürebilcek kıvama gelebilir...
Başlık: Ynt: ARM CM3 çipleri JTAG yada SWD üzerinden debug ederken ....
Gönderen: z - 13 Kasım 2012, 23:52:47
Stellaris serisinin errata adlı dokumanları ortada.

C2000 serisi ile çok uzun süre çalıştım. Onun da hataları ortada. Kullanıcı olarak, seçtiğim CM3 çiplerde büyük hata görmüyorum ve memnunum. Hiç hatasız olsa süper olur tabiki.

Ana konudan uzaklaşıyoruz ama merak ettim. CM3 serisi için bu kadar karamsar görüşleri kim bildirdi?

mesaj birleştirme:: 13 Kasım 2012, 23:57:08

Alıntı yapılan: pisayisi - 13 Kasım 2012, 23:47:49
Ti nin M4 leri de düzgün değil ki, ucuz satalım diye kuşa çevirmişler 32 bitlik işlemciyi...

TI çıkardımı büyük bir aile çıkartıyor ama zaman içinde.

CM3 lerde de durum aynı. Kuş gibi CM3 ler de var. Parametrik seçim menüsünden isteklerinizi yazın gelsin karşınıza CM3ler.

CM4 konusunda TI daha yeni. Devamı gelecektir.

Burada CM3 yada CM4 de CPU zaten ARM. TI ın eklediği çevrebirimleri, Ram, Rom. Eee bunları da zaten diğer çipleri için tasarlıyor ve üretiyordu. Düzelecek sorun bunlar.

TI'ı karalamanın alemi yok.



Başlık: Ynt: ARM CM3 çipleri JTAG yada SWD üzerinden debug ederken ....
Gönderen: hgs - 14 Kasım 2012, 00:29:46
Alıntı yapılan: z - 13 Kasım 2012, 23:52:47
Ana konudan uzaklaşıyoruz ama merak ettim. CM3 serisi için bu kadar karamsar görüşleri kim bildirdi?
TI'ı karalamanın alemi yok.
TI  seminerinde kalabalık bir müşteri grubu karşısında yaşandı bunlar. Bir çok müşterinin yaşadıkları problemler ile ilgili soruları karşısında (basit şeyleri kastetmiyorum), şu revizyonda düzelecek, bu revizyonda düzelecek, bazıları içinde m4 te düzeltebileceğiz bunlar böyle çıktı düzeltemiyoruz ifadeleri kullanıldı. Bu ifadeleri TI türkiye personelleri sarfetti...

STM32F1-F2 kullanmak gerek.
Başlık: Ynt: ARM CM3 çipleri JTAG yada SWD üzerinden debug ederken ....
Gönderen: z - 14 Kasım 2012, 00:57:26
Tamam işte errata dokumandaki sorunlar dile getirilmiş. Bu tip hatalar TI çiplerinde hep oldu. Bu adamlar böyle işte.
Beğenmeyen kullanmasın.

O sorulara bizim TI yetkililerinin errata da yazandan farklı verecek cevapları ne olabilir ki?  Laf olsun diye soru sorulmuş seminerde. Soruyu soranlar açsınlar errata dokumanı TI'ın sözkonusu sorun için planlarını okusunlar.

Yalnız TI kadar büyük bir firmanın hatalı donanımlar çıkartmasını pek aklım almıyor.  Demekki çalışan sayısı ve kalifiye elaman sayısı hata yapmaya engel değil.

Gene de kendimce cevapsız sorular var.

Mesela şu anda kullandığım çipin ADC ünitesinde bir hata var.

Timer int ile tetiklenerek tanımlanmıs ADC kanallarını örnekleyip sayısal veriler üreten sequencer tüm kanalların dönüşüm işlemini bitirmeden ikinci bir timer int yerse sıralamada hata yapıyor.

Böylesine basit bir hatayı en baba okullardan mezun deneyimli çalışanlar bilgisayar destekli tasarım  yaparlarken nasıl olurda böylesine temel bir sorunu daha tasarım aşamasında düşünmezler akıl alacak iş değil. Bu adamlar hiç mi simülasyon yapmıyorlar.

Bu hata çok mu önemli?

Mide bulandırıcı. Bu hata işi yapmaya engel değil. İşi yapacak olan kulağını sağdan tutar, soldan tutar, kolunu kafasının etrafından tur attırıp tutar, kolunu bacak arasından uzatır kafasının berisinden çevirir gene kulağını tutar. Ha ne olur beş mikrosaniyede bitecek iş ilave kontrollar yüzünden 6mikrosaniye biter.

Fakat biliyoruz ki bu sorun bir yada bir kaç sonraki revizyonda düzelecek. O yüzden paniklemeye gerek yok.

Canınız çok sıkılırsa TI'ı bırakırsınız ST kullanırsınız.

Neyse konumuza dönelim. En baştaki konu önemli.

Mesela timer ile 8 kanallı ADC dönüşümünü başlatan yazılımı kurduk.

Timer int rutinin hemen girişine break pointi yerleştirdik. Timer Int'ı çaktı. ADC çevrime başladı. Bu esnada da ınt rutinine girdik breakpointe yakalandık. ADC duracakmı durmayacakmı? pipeline mekanizması ne olacak.

Bu esnada jtag üzerinden memoryde yada FIFO bufferlarda okuma yaptık. vs vs





Başlık: Ynt: ARM CM3 çipleri JTAG yada SWD üzerinden debug ederken ....
Gönderen: camby - 14 Kasım 2012, 10:25:17
Alıntı yapılan: XX_CİHAN_XX - 13 Kasım 2012, 23:02:21
Hocam systick timer duruyordu.
Mutemelen diğerleri de duruyordur.

St-link ile Debug yaparken TIM7 durmuyor. Kesmeler kapalı.
Başlık: Ynt: ARM CM3 çipleri JTAG yada SWD üzerinden debug ederken ....
Gönderen: XX_CİHAN_XX - 14 Kasım 2012, 11:17:41
Alıntı yapılan: camby - 14 Kasım 2012, 10:25:17
St-link ile Debug yaparken TIM7 durmuyor. Kesmeler kapalı.

http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/PROGRAMMING_MANUAL/CD00228163.pdf (http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/PROGRAMMING_MANUAL/CD00228163.pdf)
Sayfa 149
Alıntı YapWhen the processor is halted for debugging the counter does not decrement.
Başlık: Ynt: ARM CM3 çipleri JTAG yada SWD üzerinden debug ederken ....
Gönderen: yamak - 14 Kasım 2012, 11:28:56
@z hocam biraz konuyla alakasız olacak ama
C2000 kullandığınızdan bahsettiniz bahsetmişken sorayım dedim. Ben de aşağıdaki launchPad i almayı düşünüyodum öğrenmek için.
http://www.ti.com/tool/launchxl-f28027?DCMP=c2x-launchpad&HQS=c2000-launchpad (http://www.ti.com/tool/launchxl-f28027?DCMP=c2x-launchpad&HQS=c2000-launchpad)
Sizce alıp öğrenmeliyim piyasada bu dsp lerin kullanım oranı nasıldır.Ya da başka öğrenmemi önereceğiniz dsp var mı?
Konuyu böldüğüm için kusura bakmayın  :)
Başlık: Ynt: ARM CM3 çipleri JTAG yada SWD üzerinden debug ederken ....
Gönderen: camby - 14 Kasım 2012, 11:35:56
Alıntı yapılan: XX_CİHAN_XX - 14 Kasım 2012, 11:17:41
http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/PROGRAMMING_MANUAL/CD00228163.pdf (http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/PROGRAMMING_MANUAL/CD00228163.pdf)
Sayfa 149

Cihan hocam bunu en yukarıda yazdım zaten, manuellerde yazan ile pratikte olan farklı.


Alıntı YapHocam timer için birkaç yerde " All timer counters can be frozen in debug mode. " yazıyor. Reference Manuel'de değil de çipin dökümanından ( STM32F407xx )aldım bunu. Buradan frozen olma durumu seçeneği varmış gibi anlıyorum ama bu şekilde bir ayar da hatırlamıyorum.

PM0056'da ise benzeri systick için yazıyor : "When the processor is halted for debugging the counter does not decrement"

mesaj birleştirme:: 14 Kasım 2012, 21:24:40
Ek :

Bir fonksiyonun işleme süresini görmek için TIM7'yi set edip çıkan sonucu ms cinsinden ekrana yazdırıyordum. Az önce bunu debug modunda denedim , her seferinde farklı ve saçma değerler alıyorum. Bu durumda TIM7 SWD debug modunda ve temel ayarlarlarda iken saymaya ettiği gözüküyor. Chip 32F100RB M3

mesaj birleştirme:: 14 Kasım 2012, 11:37:17

Benim tecrübem dün TIM7 ile oldu.

Systick denemedim henüz.
Başlık: Ynt: ARM CM3 çipleri JTAG yada SWD üzerinden debug ederken ....
Gönderen: XX_CİHAN_XX - 14 Kasım 2012, 11:39:55
Hmm hocam hiç denemediğim için dökümanlara göre konuşmuştum demek ki uygulamada durum böyle olmuyormuş  :o
Başlık: Ynt: ARM CM3 çipleri JTAG yada SWD üzerinden debug ederken ....
Gönderen: pisayisi - 14 Kasım 2012, 11:57:22
St nin cortex m3 lerinde debug sırasında işlemci halt modunda kalırsa, DBG_TIMx_STOP konfigurasyon bit değerine  göre iligli timer, normal olarak çalışabilir yada durabilir. Örneğin işlemci halt moduna girerse DBG_TIMx_STOP biti 1 yapıldığında, ilgili timer durur ve çıkışlar lojik sıfır olur, bir tür acil stop gibi bir durum. Debug modunda diğer birimlerin çalışmasını düzenleyen yazmaçlar sayfa 1069 dan görülebilir. ADC timer çıkışlarından beslenmediğine göre adc nin çevrim işlemini durdurduğuna dair bir bilgiye rastlayamadım...

Bits 30:25 DBG_TIMx_STOP: TIMx counter stopped when core is halted (x=9..14)
0: The clock of the involved timer counter is fed even if the core is halted, and the outputs
behave normally.
1: The clock of the involved timer counter is stopped when the core is halted, and the outputs
are disabled (as if there were an emergency stop in response to a break event).


http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/REFERENCE_MANUAL/CD00171190.pdf (http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/REFERENCE_MANUAL/CD00171190.pdf)

Başlık: Ynt: ARM CM3 çipleri JTAG yada SWD üzerinden debug ederken ....
Gönderen: z - 14 Kasım 2012, 12:05:04
Bu durumda aradığım bilgileri çipin kendi dokumanlarından bulmam gerekecek. Bunu en başta düşünmeliydim. Sorduğum sorular ARM mimarisiyle değil firmaların çipe gömdüğü çevre birimleri ile ilgili. Adamlar bu bilgileri de dokümanın her bir yanına serpiştirilmiştir.

Garip bir sorunla karşılaşınca bu soruyu gündeme getirdim.

ADC ölçümlerinde bir tutarsızlık farkedip işin içinden çıkamayınca sorunu bulmak için bir port pinini ADC girişine bağladım.

Her timer int üretilince ADC yi başlayacak şekilde sistemi yapılandırdım. Timer int rutininde ise 0,1,2,3 şeklinde artan yazılımsal sayaç kurdum. Sayaç 0 olduğunda port pinini 1, diğer durumlarda 0 yapıyor.

Bu durumda 3 ölçüm, ardışıl olarak 0 sonucu üretirken dördüncüsünün 3FF gibi yüksekçe değer alması ve 3FF değerinin, sayacın hep aynı değerine denk gelmesi gerekiyordu.

Ancak kodladığım bu kurgunun debug ederken şaştığını farkettim. Kodları normal koştururken sorun çıkmazken debug ederken tutarsız şekilde ADC sonuçlarının biriktiği FIFO'da fazladan birikim olduğu ortaya çıktı.

Debug modunda ortaya çıkan bu durumun CPU nun normal koşturumunda da ortaya çıkma ihtimalinden dolayı ilave yazılımsal önlemler almam gerektirdi.

Aksi takdirde örneğinin CH1 kanalının ADC sonucu aslında CH1'in değil CH2 kanalına ait olması gibi gibi saçma bir durum oluyordu.