Как написать с нуля драйвер LCD для Android-планшета?

Я хотел бы написать драйвер для ЖК-экрана ASUS TF700

  • Что я должен изучить, чтобы сделать это с самого начала?
  • Как мне начать с этого?

Первое, что вам нужно для этого усилия, – это полное понимание аппаратной архитектуры устройства.

Эта система основана на nVIDIA Tegra 3, а ЖК-панель будет напрямую подключена к графической подсистеме.

Ваш первый порт захода должен быть Техническим справочником Tegra. Если для других ARC SoC, которые я видел, что-то будет, будет 8000-10000 страниц и доступно только под NDA – особенно те части, которые относятся к графической подсистеме.

Затем вам нужно будет полностью понять, как дисплеи обрабатываются в Linux. Вы хотите реализовать простой фреймбуфер или использовать 2d и 3d функциональность Tegra?

Там также будет драйвер для подсветки ЖК-панели – контроллер, для которого, вероятно, будет висела одна из шин I2C Tegra.

Построение базового драйвера фреймбуфера для Linux должно быть довольно простым, поскольку на самом деле это не очень много.

Согласитесь с Мартином Джеймсом, лучше, если вам не придется писать весь драйвер самостоятельно, и ASUS, должно быть, уже предоставила один для существующей Panel. Если вы хотите поддерживать новую панель, вы можете повторно использовать существующий код драйвера, добавив поддержку для новой панели. Вот несколько предварительных условий:

  1. Техническое руководство по набору микросхем, которое использует ASUS.
  2. Спецификация панели дисплея.
  3. Аппаратная схема с интерфейсом дисплея-чипсета.
  4. Знание драйвера Framebuffer, который уже присутствует.
  5. (Самое главное) Аппаратная команда, которая будет исследовать сигналы, которые идут / идут в / из панели.

Опять же, это будет сложная задача, и для ее реализации потребуется некоторое время. Всего наилучшего! (Если вы все еще планируете идти вперед 🙂

Intereting Posts
Android-студия загружает старый apk при изменении имени project.archivesBaseName Как отлаживать сообщения BOOT_COMPLETE в широковещательном приемнике «Force Close»? Ошибка при запуске git «Не удается запустить программу« git »: error = 2 ClassCastException: android.support.v7.widget.ShareActionProvider Максимальный размер текста кнопки Android Как переопределить метод с помощью сочетания клавиш в Android Studio Android – SQLite ContentResolver вставка / удаление / обновление в потоке пользовательского интерфейса? Как я могу запустить приложение для Android в автоматическом режиме, когда приходит электронное письмо? Facebook Android SDK 3.0 всегда возвращает OPENING при входе в систему Обновление инструментов сборки меняет мои компиляции Как присоединиться к png с альфа / прозрачностью в кадре в режиме реального времени Использовать обработчик для публикации в пользовательском интерфейсе Как получить html-контент из веб-представления? Прозрачная панель навигации для приложения Lollipop? Какую компоновку я должен использовать (эквивалент css inline-block)