SDSoC 環境の API

このセクションでは、SDSoC™ 環境で開発されたアプリケーションに使用可能な sds_lib の関数について説明します。

注記: ライブラリを使用するには、ソース ファイルに #include "sds_lib.h" を含めます。sds_lib.h の前に stdlib.h を含め、size_t 型の宣言をする必要があります。
SDSoC 環境の API では、メモリ空間をマップし、非同期のアクセラレータの呼び出しが完了するのを待機する関数が提供されています。
void sds_wait(unsigned int id)
id で指定されているキューの最初のアクセラレータが完了するのを待機します。 に示すように、#pragma SDS wait(id) 使用することもできます。
void *sds_alloc(size_t size)
物理的に隣接している size バイトの配列を割り当てます。
void *sds_alloc_non_cacheable(size_t size)
キャッシュ不可能としてマークされた size バイトの物理的に隣接している配列を割り当てます。この関数で割り当てられたメモリは、プロセッシング システムでキャッシュされません。このメモリへのポインターは、次と併せてハードウェア関数に渡す必要があります。
#pragma SDS data mem_attribute (p:NON_CACHEABLE)
void sds_free(void *memptr)
sds_alloc() で割り当てられた配列を解放します。
void *sds_mmap(void *physical_addr, size_t size, void *virtual_addr)
物理アドレス (physical_addr) にあるメモリの size バイトにアクセスする仮想アドレス マップを作成します。
  • physical_addr: マップする物理アドレス。
  • size: マップされる物理アドレスのサイズ。
  • virtual_addr:
    • ヌルではない場合、physical_addr に仮想アドレスが既にマップされていると判断され、sds_mmap によりマッピングがトラックされます。
    • ヌルの場合は、sds_mmapmmap() により仮想アドレスが生成され、virtual_addr でこの値が割り当てられます。
void *sds_munmap(void *virtual_addr)
sds_mmap() を使用して作成された物理アドレスと関連付けられた仮想アドレスのマップを解除します。
unsigned long long sds_clock_counter(void)
細粒度の時間間隔計測に使用されるフリーランニング カウンターと関連付けられている値を返します。
unsigned long long sds_clock_frequency(void)
sds_clock_counter への呼び出しで読み込まれるフリーランニング カウンターの周波数 (ティック/秒) を返します。これは、カウンターのティック数を秒数に変換するために使用されます。