ELcore-50 SDK
1.2
Введение
Компоненты
Драйвер elcore50
Описание
Параметры модуля ядра
Стандартные системные вызовы
Описание IOCTL для устройства
elcore50
ELCIOC_GET_CAPS
ELCORE50_IOC_CREATE_JOB
ELCORE50_IOC_ENQUEUE_JOB
ELCORE50_IOC_GET_JOB_STATUS
ELCORE50_IOC_GET_JOB_COUNT
ELCORE50_IOC_GET_JOB_LIST
ELCORE50_IOC_GET_CORE_IDX
ELCORE50_IOC_CREATE_BUFFER
ELCORE50_IOC_CREATE_MAPPER
ELCORE50_IOC_SYNC_BUFFER
Описание отладочных IOCTL
ELCORE50_IOC_DBG_MEMORY_[READ|WRITE]
ELCORE50_IOC_DBG_REGISTER_[READ|WRITE]
ELCORE50_IOC_DBG_HW_BREAKPOINT_SET
ELCORE50_IOC_DBG_HW_BREAKPOINT_CLEAR
ELCORE50_IOC_DBG_JOB_INSTANCE_INTERRUPT
ELCORE50_IOC_DBG_GET_STOP_REASON
ELCORE50_IOC_DBG_STEP
ELCORE50_IOC_DBG_JOB_INSTANCE_CONTINUE
Управление таймаутом заданий
Управление печатью дампа регистров
Управление печатью состояния заданий
Управление сбросами DSP
Обработка системных вызовов DSP
Профилирование заданий DSP
Профилирование драйвера
elcore50_buf_create и elcore50_buf_release
elcore50_syscall
elcore50_mmu_map
elcore50_uptime
Управление энергопотреблением DSP
Библиотека elcore
Создание ELFParser
Создание ELF
Создание заданий
Ожидание завершения экземпляра задания
Обработка системных вызовов DSP
Форматирование вывода DSP
Управление страницами DSP
Управление выравниванием ELF-секций
Библиотека DSP elcore-runtime
__elcore_before_main()
elcore_main_wrapper()
elcorecl_run_wrapper()
elcore_job_launcher()
elcore_kernel_wrapper
spawner_loop()
__init_elcore_environ()
get_core_id()
elcore_spawn()
elcore_sync()
Системные вызовы
Стандартные системные вызовы
Нестандартные системные вызовы
Поддержка инструментального профилирования
gprof
Библиотека ElcoreCL
Общее описание библиотеки
Функции, не имеющие аналогов в OpenCL
Запуск ELcoreCL-ядер в режиме отладки
Примеры работы с ElcoreCL при программировании DSP
Сценарий использования кэшируемых буферов на основе пользовательских указателей
Сценарий использования импортируемого dma-buf
Обработка задачи на нескольких DSP-ядрах
Утилита elcorecl-run
Утилита elcorectl
Руководства
Быстрый старт
Создание DSP-кернела
Сборка DSP-кернела
Сборка DSP-кернела вне Buildroot
Сборка DSP-кернела пакетом Buildroot
Запуск DSP-кернела
Модель параллельного программирования spawn/sync
Ограничения
Пример параллельного умножения двух векторов
Профилирование
Профилирование DSP-кернелов
Особенности профилирования программ
Профилирование драйвера elcore50
elcore-prof.py
ftrace-parser
Управление DSP в Linux
Изменение частоты DSP в Linux
Спецификации
Отладка заданий DSP
Сценарии использования
Общий сценарий работы
Выбор job_instance’а для отладки
Операции над экземпляром задания
Завершение процесса отладки
Согласование действий отладки и системных вызовов
Штатное завершение job_instance’а с точки зрения отладки и CPU-программы
Библиотека для работы с VDMA
Константы библиотеки VDMA
Запуск одиночной пересылки
Запуск множественных пересылок через цепочки
Глоссарий
Примечания к выпуску
1.2
Новый функционал
Обновления
Исправления ошибок
1.1
Новый функционал
Исправления ошибок
ELcore-50 SDK
»
Алфавитный указатель
Алфавитный указатель
_
|
C
|
D
|
E
|
G
|
K
|
P
|
Q
|
S
|
Д
|
З
|
И
|
К
|
С
|
Т
|
У
|
Э
_
__elcore_before_main (C function)
__init_elcore_environ (C function)
_syscall_get_env (C function)
_syscall_get_kernel_name (C function)
C
CreateELFParser (C++ function)
D
DMA (Direct Memory Access)
dma-buf
DmaInit (C function)
DmaRun (C function)
DmaWait (C function)
E
eclCachesFlush (C function)
eclCachesFlushInvalidate (C function)
eclCachesInvalidate (C function)
eclCreateBufferFromDmaBuf (C function)
eclCreateDMABuffer (C function)
eclCreateMultiCommandQueueWithProperties (C function)
eclCreateProgramWithSharedSections (C function)
eclEnqueueKernelWithSpawn (C function)
eclSetKernelArgDMAMem (C function)
ELcore
ELcore-50 (DSP)
elcore-runtime
elcore_job_launcher (C function)
elcore_kernel_wrapper (C function)
elcore_main_wrapper (C function)
elcore_spawn (C function)
elcore_sync (C function)
ELcoreCL
elcorecl_run_wrapper (C function)
ElcoreELF (C++ class)
ElcoreELF::CreateELF (C++ function)
ElcoreELF::GetBinaryData (C++ function)
ElcoreELF::GetBinarySize (C++ function)
ElcoreELF::GetEntryPoint (C++ function)
ElcoreELF::GetKernels (C++ function)
ElcoreELF::GetKernelVirtualAddress (C++ function)
ElcoreJob (C++ class)
ElcoreJob::CreateElcoreJob (C++ function)
ElcoreJob::CreateElcoreJobWithSharedSections (C++ function)
ElcoreJob::GetFD (C++ function)
ElcoreJob::GetStackSize (C++ function)
ElcoreJobInstancePoll (C function)
ElcoreParser (C++ class)
ElcoreSharedSection (C++ struct)
ElcoreSharedSection::mapper_fd (C++ member)
ElcoreSharedSection::size (C++ member)
ElcoreSharedSection::vaddr (C++ member)
G
get_core_id (C function)
K
KernelMap (C++ type)
P
pmmap (C function)
pmunmap (C function)
Q
QLIC
S
spawner_loop (C function)
Д
Драйвер elcore50
Драйвер QLIC
З
Задание (job)
И
Инструментальное ПО
К
Кернел (kernel)
С
Средства разработки
Т
Тулчейн (toolchain)
У
Устройство (device)
Э
Экземпляр задания (job instance)