DSPLIB kütüphanesini kullanan C7 tabanlı MCU projeleri, işlemcide yer alan DSP hızlandırıcı biriminden
faydalanarak çalışır. Bu sayede filtreleme, konvolüsyon, korelasyon ve benzeri temel DSP işlemleri donanımsal
olarak hızlandırılır ve gerçek zamanlı uygulamalarda yüksek performans elde edilir.
Örnek Proje
DSPLIB kütüphanesinin entegrasyonunu referans alarak inceleyebileceğiniz çalışır bir örnek proje,
T3 Gemstone GitHub’daki examples reposu içerisinde yer alan MCU dizini altında sunulmaktadır.
Examples reposunun içinde devbox shell içindeyken aşağıdaki komutu çalıştırmalısınız.
PROJECT=mcu task clean build
examples/mcu/dsplib_demo/j722s-evm/c75ss0-0_freertos/ti-c7000 ve examples/mcu/dsplib_demo/j722s-evm/c75ss1-0_freertos/ti-c7000
içinde yer alan dsplib_demo.out dosyası artık C7 çekirdeklerinde çalıştırlabilir hale gelmiştir.
Geliştirme kartı üzerinde çalıştırmak için
Derlenmiş projenin U-Boot aşamasında çalıştırılması
bölümündeki adımları takip edebilirsiniz.
Bu örnek projede üretilen çıktılar UART1 arabirimi üzerinden iletilmektedir.
İlgili pin bağlantılarına Pinout dokümantasyonundan ulaşabilirsiniz.
DSPLIB örnek projesinin çıktılarının terminal görüntüsü aşağıdaki gibidir.
DSPLIB Demo start
------------------------------------
T3 Gemstone DSPLIB Test
------------------------------------
0.716499 + nane-308 = 0.716499
0.135435 + 0.785398 = 0.920833
0.509235 + 1.57080 = 2.08003
0.541196 + 2.35619 = 2.89739
0.192425 + 3.14159 = 3.33402
0.383086 + 3.92699 = 4.31008
0.563632 + 4.71239 = 5.27602
0.245671 + 5.49779 = 5.74346
0.0562966 + nane-308 = 0.0562966
0.991528 + 0.785398 = 1.77693
0.479954 + 1.57080 = 2.05075
0.973097 + 2.35619 = 3.32929
0.798400 + 3.14159 = 3.93999
0.0669125 + 3.92699 = 3.99390
Mevcut MCU Projesine MakeFile Üzerinden Entegre Etme
DSPLIB kütüphanesini mevcut MCU projenize entegre edebilmek için, SDK’ya ait kök dizin yolunu
ve kullanacağınız .cpp dosyasını tanımlamanız gerekmektedir.
SDK_ROOT_PATH := ${MCU_PLUS_SDK_PATH}/..
FILES_cpp := \
dsplib_demo.cpp \
Ardından, include edilen klasörler listesine (INCLUDES_common değişkeni) DSPLIB’in src
dizinini aşağıdaki şekilde eklemelisiniz. DSPLIB sürümünüze göre pathi değiştirmeniz gerekbilir.
-I${SDK_ROOT_PATH}/dsplib/src \
Derleyiciye ait FLAGS parametrelerine (CFLAGS_common değişkeni), kütüphanenin doğru şekilde
derlenebilmesi için gerekli olan aşağıdaki tanımlamaları eklemeniz gerekmektedir.
-DMCU_PLUS_SDK \
-DBUILD_C7X \
-DSOC=j722s \
--silicon_version=7524 \
Kütüphane yol tanımlarına (LIBS_PATH_common değişkeni), DSPLIB’in derlenmiş kütüphane dizinini
eklemelisiniz.
-i${SDK_ROOT_PATH}/dsplib/lib/Release \
Dahil edilen kütüphane dosyaları listesine (LIBS_common değişkeni) DSPLIB kütüphanesinin adını
aşağıdaki gibi eklemeniz gerekmektedir.
-lDSPLIB_C7524.lib \
-lDSPLIB_common_C7524.lib \
Projede .cpp dosyalarının derlenebilmesi için, OBJS ve DEPS tanımlarının yapıldığı satırın
hemen altına aşağıdaki eklemelerin yapılması gerekmektedir.
OBJS += $(FILES_cpp:%.cpp=%.obj)
DEPS := $(FILES:%.cpp=%.dpp)
vpath %.cpp $(FILES_PATH)
$(OBJDIR)/%.obj %.obj: %.cpp
@echo Compiling: j722s:c75ss0-0:freertos:ti-c7000 $(OUTNAME): $<
$(CC) $(CFLAGS) $(INCLUDES) $(DEFINES) -ppd=$(OBJDIR)/$(basename $@).dpp -ppa -fr=$(OBJDIR)/ -fp=$<
Bu adımların tamamlanmasının ardından DSPLIB kütüphanesi, projeye Makefile üzerinden başarıyla entegre
edilmiş olacaktır.
Mevcut CPP Dosyasına DSPLIB Entegrasyonu
Makefile üzerinden gerekli yapılandırmalar tamamlandıktan sonra, DSPLIB kütüphanesini kullanabilmek için
ilgili header dosyasını projenizde yer alan .cpp dosyasına eklemeniz gerekmektedir. Bu adımın ardından,
mevcut projeniz içerisinde DSPLIB’e ait fonksiyonları ve tanımlamaları doğrudan kullanabilirsiniz.
DSPLIB kütüphanesinde yer alan modüllerin tamamına
bu bağlantı üzerinden
ulaşabilirsiniz.
Bu işlem ile birlikte DSPLIB entegrasyonu tamamlanmış olacaktır.