Инструменты пользователя

Инструменты сайта


native_sdk

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
native_sdk [2015/07/07 16:43]
Alexander создано
native_sdk [2015/07/08 15:28] (текущий)
Vladimir Manov private:native_sdk переименовано в native_sdk
Строка 1: Строка 1:
 ====== Низкоуровневый SDK для разработки на C++ ====== ====== Низкоуровневый SDK для разработки на C++ ======
  
 +Низкоуровневый SDK представляет собой систему сборки нативных приложений C/C++, а также сборок прошивок на базе CMake.
  
 +Для сборки прошивки на Ubuntu 14.04 LTS x64 нужно установить следующие пакеты:​
 +
 +<​code>​
 +sudo -i
 +cd /​etc/​apt/​sources.list.d
 +echo "deb http://​old-releases.ubuntu.com/​ubuntu/​ raring main restricted universe multiverse"​ >​ia32-libs-raring.list
 +apt-get update
 +apt-get install ia32-libs
 +sudo apt-get install build-essential cmake squashfs-tools cramfsprogs lib32ncurses5 lib32tinfo5 lib32z1 openjdk-7-jre-headless zlibc  zlib1g-dev qt5-default
 +sudo dpkg-reconfigure dash #​отключаем dash для работы сборочной системы
 +</​code>​
 +
 +== Установка SDK на Linux-систему ==
 +<​code>​
 +tar xzf tvip-sdk-multiplatform-XXXXXXXX.tgz
 +cd tvip-sdk-multiplatform-XXXXXXXX/​app/​
 +</​code>​
 +
 +В каталоге app необходимо разместить CMakeLists.txt для сборки собственного приложения.
 +Если приложение собирается сторонней сборочной системой,​ в данный файл необходимо положить команды для установки необходимых файлов в прошивку. В файле CMakeLists.txt,​ накодящимся в SDK есть примеры различных вариантов сборки и установки приложений. ​
 +
 +Для сборки прошивки под конкретную платформу необходимо выполнить следующие команды (применительно для платформы S500v).
 +<​code>​
 +make builddir-s500v
 +cd build-s500v
 +make platform-newrootfs install platform-firmware-ota
 +</​code>​
 +
 +
 +=== Компилятор ===
 +
 +При сборке через систему CMake, входящую в SDK, необходимый компилятор и sysroot всегда доступны автоматически.
 +
 +Для сборки через стороннюю систему,​ компилятор будет установлен в каталог ~/​.tvip-download/​
 +
 +Sysroot с большим количеством системных библиотек доступен в каталоге sdk/​builddir-s500v/​sysroot/​.
 +Include-файлы системной библиотеки libtvip доступны в каталоге tvip-includes.
 +
 +== Краткое описание наиболее важных заголовочных файлов libtvip ==
 +
 +__STBresourceHolder__
 +
 +Через этот класс происходит основная инициализация оборудования и осуществляется доступ к доступным объектам работы с оборудованием (графика,​ медиа, ввод).
 +
 +
 +__STBDisplayInterface__
 +
 +Работа с дисплеем:​ инициализация,​ смена разрешения,​ управление CEC.
 +
 +STBHDVideoFormat - управляет разрешением HDMI.
 +
 +STBSDVideoFormat - управляет разрешением AV.
 +
 +
 +__STBGraphicsInterface__
 +
 +Управляет взаимодействием с 2D графикой. Обратите внимание,​ что работа с 2D графикой не поддерживается в текущих приставках TVIP. Также этот класс используется для доступа к объекту OpenGLES
 +
 +
 +__STBGraphicsGlEs20Interface__
 +
 +Абстрагирует работу с EGL. Для работы с OpenGLES приложение должно унаследовать дочерний класс FrameRenderer. Этот класс будет получать события инициализации/​деинициализации OpenGL, а также событие на отрисовку следующего кадра.\\
 +Разрешение фреймбуффера для OpenGL всегда равно разрешения экрана ТВ. Соответственно,​ при смене разрешения происходит полная переинициализация EGL-контекстов с новыми параметрами.
 +
 +__STBPlayerInterface__
 +
 +Осуществляет всю работу с плеером. Плеер выполняется команды (play, pause, seek) в порядке очереди. Также плеер позволяет подписываться на различные события (начало проигрывания,​ EOF, стоп, и т.д.).
 +
 +Пример использования большей части API плеера доступно в примере app/​tests/​test_play.cpp
 +
 +
 +__STBCommandsInterface__
 +
 +Абстрагирует доступ к кнопочным устройствам ввода, независимо от типа. Поддерживает IR-пульты,​ USB-клавиатуры и HDMI-CEC. Для работы необходимо непосредственно добавить в класс нужный тип ИК-пульта (обычно - TvipUniversal) и USB клавиатуру (LinuxKeyboard).
 +
 +Пример использования - app/​tests/​test_commands.cpp
 +
 +
 +
 +__STBFirmwareUpdater__
 +
 +Работа с прошивками в формате TVIP. В большинстве случаев необходимо создание собственного класса для работы с прошивками.
 +
 +
 +
 +
 +== Система обновлений ==
 +
 +В приставках TVIP независимо от устрановленной ОС, используется система обновлений в формате ОС Android. Для установки обновлений используется ПО Android Recovery, находящееся на отдельном разделе.
 +
 +Чтобы приставка единократно перезагрузилась в Android Recovery необходимо из Linux-системы выполнить команду reboot_tool recovery.
 +
 +OTA-обновление для установки,​ а также команды для Recovery размещаются (в Linux-системе) в каталог /​tmp/​recovery/​recovery
 +
 +Наиболее простой способ устновки прошивки:​ использование утилиты updater.
 +<​code>​
 +#updater tvip_firmware.ota.zip
 +</​code>​
 +
 +== Управление сетевыми подключениями ==
 +
 +[[:​network_settings]]
  
native_sdk.1436276625.txt.gz · Последние изменения: 2015/07/07 16:43 — Alexander