Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => ARM => Cortex ARM => Konuyu başlatan: Mucit23 - 15 Şubat 2019, 00:19:00

Başlık: STM32F10x 'de DSP Kütüphanesini derleyebilen varmı?
Gönderen: Mucit23 - 15 Şubat 2019, 00:19:00
Selamlar

Keilde DSP Kütüphanesini derleyebilen varmı? Stack sorunu yaşıyorum sanırım..

STM32F103 için DSP kütüphanesini indirip projeme ekledim. Keil derleme Compile işleminde hata vermiyor ama Linker kısmında L6406E hatasını veriyor
Alıntı YapSoftware\Software.axf: Error: L6406E: No space in execution regions with .ANY selector matching arm_common_tables.o(.constdata).
Software\Software.axf: Error: L6406E: No space in execution regions with .ANY selector matching arm_cfft_radix4_f32.o(i.arm_radix4_butterfly_inverse_f32).
Software\Software.axf: Error: L6406E: No space in execution regions with .ANY selector matching arm_cfft_radix4_f32.o(i.arm_radix4_butterfly_f32).
.
.
.


Daha önce bu kütüphaneyi Yine CM3 çekirdeği bulunan PSOC'larda derlemiştim. Fakat Medium Density Sınıfında bulunan STM32F103C8 için yukardaki hataları veriyor. Stack boyutu yetmiyor diye düşünüyorum. Bunun çözümü varmıdır?
 

Başlık: Ynt: STM32F10x 'de DSP Kütüphanesini derleyebilen varmı?
Gönderen: OptimusPrime - 15 Şubat 2019, 00:30:39
ram in dolmus veya flashin.
Başlık: Ynt: STM32F10x 'de DSP Kütüphanesini derleyebilen varmı?
Gönderen: Mucit23 - 15 Şubat 2019, 09:26:00
Evet ST'nin Medium Denstiy MCU ları ile DSP kütüphanesini derlemek pek mümkün değil gibi. Çok genel konuştum gerçi ama sanırım çok fazla ram tüketimi olduğundan dolayı böyle.

STM32F103VET6 için derleme yaptım sorun olmadı. Proje hatasız derlendi.
Başlık: Ynt: STM32F10x 'de DSP Kütüphanesini derleyebilen varmı?
Gönderen: e-zeki - 15 Şubat 2019, 10:58:04
Stack ve Heap size'ı arttırmayı denediniz mi? projenin ram kullanımı çok yüksek değilse stack ve heap size'ı arttırarak derleme ihtimaliniz yüksek.
Başlık: Ynt: STM32F10x 'de DSP Kütüphanesini derleyebilen varmı?
Gönderen: Mucit23 - 15 Şubat 2019, 11:52:08
Evet ilk denediğim o oldu zaten.
Başlık: Ynt: STM32F10x 'de DSP Kütüphanesini derleyebilen varmı?
Gönderen: Elektroemre - 15 Şubat 2019, 12:12:02
Optimizasyonlar hangi ayarda? O3 değilse, O3 yapıp tekrar derleyebilirsin keil ile çalışıyorsan. GCC ise optimize for size yapıp denemek lazım.
Başlık: Ynt: STM32F10x 'de DSP Kütüphanesini derleyebilen varmı?
Gönderen: Mucit23 - 15 Şubat 2019, 13:02:12
Evet şimdi denedim oldu. Optimizasyon Seviyesini Level3 yaptım. Hata olmadan derlendi. Fakat gereksiz optimizasyonlardan dolayı kod yanlış çalışırmı acaba? Keil'in Level3 optimizasyonu bana güven vermiyor.
Başlık: Ynt: STM32F10x 'de DSP Kütüphanesini derleyebilen varmı?
Gönderen: CLR - 15 Şubat 2019, 13:22:20
Ben herzaman keil optimizasyon level 3'te derlerim, ciddi projeler yaptım, hiç sıkıntı çıkmadı. Sıkıntı çıkıyorsa muhtemelen code yazmanızda eksikler vardır.
Başlık: Ynt: STM32F10x 'de DSP Kütüphanesini derleyebilen varmı?
Gönderen: Mucit23 - 15 Şubat 2019, 22:50:44
Hocam sorun oluyor. Yazılımsal olarak değil. Oluşan hataları debug ile bile çözümlemek imkansız hale geliyor. Şimdi DSP library derlendi dedim ama başka sorunlar olmaya başladı. Akşamdan kodu deneyince farkettim. RGB Matrix ekranlarla uğraşıyorum şuanda. Optimizasyon Seviyesini 3 yaptım. Kod derlendi ama Ekran için RAM'den ayırmış olduğum 512 Byte'lık alandaki değerler rastgele değişiyor. Yani ekrandaki pixeller rastgele yanmaya başlıyor. Optimizasyon seviyesi sıfır olunca böyle bir sorun olmuyor. Optimizasyon seviyesi 1 olsada yine aynı sorun başlıyor. Hangi sebepten dolayı böyle oluyor bilmiyorum ama kullanılan ram alanının başka bir yerde yine kullanıldığı kesin.

Ekran için Ayırmış olduğum RAM alanını volatile olarak tanımlasamda yine aynı sorun baş gösteriyor. Çözümü varmı bilmiyorum.

Bunun dışında Optimizasyon seviyesi 3 olunca IF lerde de sorun oluyor bazen. Örnek veriyorum if(sayı>0) ise xxx yap gibi bir yapıda şart gerçekleşse bile if içeriğini gerçekleştirmiyor. Debug yaparken lan bu niye buraya girmiyor diye saç baş yoluyordum.. Buna benzer birkaç hatayı şart içerisinde kontrol edilen değişkeni volatile olarak tanımlayarak çözmüştüm.

3. seviyede optimize kod yazmak için sanırım çok iyi bir koder olmak lazım. Benim gibi acemiler için değil sanırım.  :-[ 
Başlık: Ynt: STM32F10x 'de DSP Kütüphanesini derleyebilen varmı?
Gönderen: Mucit23 - 15 Şubat 2019, 23:15:05
Ekleme; FFT alıyordum. FFT Size değerini düşürünce bu sorunda çözüldü. Ama FFT yine çalışmıyor. arm_cfft_radix4_f32(&S, Input); kodunu çalıştırınca Hard Faulta düşüyor MCU.

Çok zorluyorum sanırım.
Başlık: Ynt: STM32F10x 'de DSP Kütüphanesini derleyebilen varmı?
Gönderen: Elektroemre - 16 Şubat 2019, 12:20:46
@Mucit23 kodun optimizasyon 0 da ve 3te farklı çalışıyorsa temel bazı yerlerde hata yapıyorsun. Keil gayet deterministik çalışan bir compiler. Level 3 te debug yapmak zorlaşıyor bu doğru, ama kodun yanlış çalışması temel konulara dikkat edilmeden kod yazıldığını gösteriyor.
Başlık: Ynt: STM32F10x 'de DSP Kütüphanesini derleyebilen varmı?
Gönderen: Elektroemre - 16 Şubat 2019, 12:24:25
Ek olarak, özel değilse, projeyi upload et, bir göz atalım.
Başlık: Ynt: STM32F10x 'de DSP Kütüphanesini derleyebilen varmı?
Gönderen: z - 16 Şubat 2019, 12:54:37
0. optimizasyon seviyesinde duzgun calisip 3. optimizasyon seviyesinde sacmalayan kisa bir kod ornegi verebilir misiniz?
Başlık: Ynt: STM32F10x 'de DSP Kütüphanesini derleyebilen varmı?
Gönderen: Mucit23 - 16 Şubat 2019, 13:23:53
Hocam akşam eve geçince DSP Library'nin derlenebileceği bir projeyi yükleyeceğim. Sorun DSP library'de . STM32F103C8 çipiyle DSP library kullanarak FFT almaya çalışıyorum. Temel sorun şudur Optimizasyon seviyesi 0 olunca Linker sırasında L6406E hatası alıyorum. Optimizasyon seviyesi 3 olursa kod derleniyor fakat çalışırken arm_cfft_radix4_f32 fonksiyonunu çağırırsam MCU Hard Faulta düşüyor. Debug'da pek anlayamadım. Hard Faulta neden düştüğünü söyleseniz yeterli benim için.
Başlık: Ynt: STM32F10x 'de DSP Kütüphanesini derleyebilen varmı?
Gönderen: z - 16 Şubat 2019, 14:39:20
https://www.youtube.com/watch?v=kpVMID65ajc&t=217s

Videodaki teknikten belki bir sey yakalayabilirsin.

http://www.cncdesigner.com/wordpress/?p=6117
Başlık: Ynt: STM32F10x 'de DSP Kütüphanesini derleyebilen varmı?
Gönderen: Mucit23 - 16 Şubat 2019, 20:33:24
@z video için özellikle teşekkür ederim. Baya faydalı oldu. ::ok Ve Debug yaparak sorunu anladım. FFT alırken Sanal ve Reel değerler olmak üzere birer boşluk bırakarak FFT bufferine yüklemek gerekiyordu. Normalde Örnek veriyorum 32 point FFT alınacaksa Ben 64 noktadan örnek alıp bunu 32 boyutlu bir diziye yazmaya çalışıyordum. Mantık hatası yapmışım. Orada Hard Faulta düşüyordu. Bunu düzeltince düzeldi gibi artık hard faulta düşmüyor. Ama ses sinyali uygulayıp fft rutinlerini test etmem gerek.