> ## Documentation Index
> Fetch the complete documentation index at: https://docs.t3gemstone.org/llms.txt
> Use this file to discover all available pages before exploring further.

# DSPLIB

> Hızlandırma çipleri ile dijital sinyal işleme fonksiyonların kullanımı

<Tip>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.</Tip>

## Ö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.

```bash theme={"system"}
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ı](/tr/boards/o1/peripherals/mcu#2-8-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](/tr/boards/o1/peripherals/introduction#1-pinout) ulaşabilirsiniz.

DSPLIB örnek projesinin çıktılarının terminal görüntüsü aşağıdaki gibidir.

```bash theme={"system"}
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.

```makefile theme={"system"}
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.

```makefile theme={"system"}
-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.

```makefile theme={"system"}
-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.

```makefile theme={"system"}
-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.

```makefile theme={"system"}
-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.

```makefile theme={"system"}
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](https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/10_01_00_04/exports/docs/dsplib/docs/user_guide/index.html)
ulaşabilirsiniz.

```cpp theme={"system"}
#include <dsplib.h>
```

Bu işlem ile birlikte DSPLIB entegrasyonu tamamlanmış olacaktır.
