1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/openharmony-drivers_hdf_core

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

HDF

Обзор

Этот репозиторий хранит основную информацию о коде ядра подсистемы драйверов OpenHarmony, включая драйверный фреймворк, управление конфигурациями, парсинг конфигураций, универсальную модель фреймворка и унифицированные интерфейсы драйверов аппаратного обеспечения. Он предназначен для предоставления более точной и эффективной среды разработки, где вы можете выполнять одноразовое развитие для многоплатформенного развертывания.

Рисунок 1 Архитектура HDF Архитектура HDF

Структура директорий

/drivers/hdf_core/framework
├── core           # Основной код для реализации HDF
│   ├── adapter    # Код адаптации ядра
│   ├── common     # Базовый общий код
│   ├── host       # Модуль окружения драйвера
│   ├── manager    # Управляющий модуль
│   └── shared     # Код, используемый общими модулями
├── include        # Заголовочные файлы для предоставления возможностей внешним системам
│   ├── audio      # Заголовочные файлы, связанные с аудио операциями
│   ├── bluetooth  # Заголовочные файлы, связанные с Bluetooth операциями
│   ├── core       # Внешние заголовочные файлы
│   ├── ethernet   # Заголовочные файлы, связанные с Ethernet операциями
│   ├── net        # Заголовочные файлы, связанные с сетевыми операциями
│   ├── osal       # Заголовочные файлы слоя адаптации ОС
│   ├── platform   # Заголовочные файлы объявления платформенных API
│   ├── utils      # Заголовочные файлы объявления общих возможностей
│   └── wifi       # Заголовочные файлы для предоставления возможностей внешним системам Wi-Fi модулем
├── model          # Универсальная модель фреймворка для драйверов
│   ├── audio      # Аудио модель фреймворка
│   ├── display    # Экранная модель фреймворка
│   ├── input      # Модель фреймворка ввода данных
│   ├── misc       # Различные модели фреймворка, включающие dsoftbus, свет, вибрацию
│   ├── network    # Модель фреймворка Wi-Fi
│   └── sensor     # Модуль драйвера датчика
│   └── storage    # Модуль драйвера хранения
│   └── usb        # Модуль драйвера USB
├── sample         # Примеры кода
├── support        # Основные возможности
│   └── platform   # Платформенные драйверные фреймворки и API, включая GPIO, I2C и SPI
│   └── posix      # POSIX API, включая Mem, Mutex, Sem, Spinlock, Thread и Time
├── test           # Тестовые случаи
├── tools          # Исходный код, относящийся к инструментам HDF
│   └── hc-gen     # Исходный код инструмента управления конфигурациями
│   └── hcs-view   #
│   └── hdf-dbg    #
│   └── hdf-dev_eco_tool #
│   └── hdf-gen    #
│   └── idl-gen    #
│   └── legacy     #
└── utils          # Основные данные и алгоритмы

Использование

HDF

Чтобы создать драйвер на основе HDF, вам нужно зарегистрироваться и настроить необходимые API. Драйверный фреймворк будет загружать и инициализировать драйвер на основе содержимого парсинга.

Разработка драйвера на основе HDF состоит из следующих трех частей:

  • Драйвер: Создайте функциональность.

  • Конфигурационная информация: Представьте информацию загрузки драйвера.

  • Конфигурация ресурсов: Настройте информацию аппаратного обеспечения драйвера.

Вы должны завершить логический код для функций драйвера с помощью следующих API.

Первая часть, которая привлекает ваше внимание, это входной драйвер, который описан через DriverEntry.

Доступны три API: Bind, Init и Release.

struct HdfDriverEntry g_deviceSample = {
    .moduleVersion = 1,
    .moduleName = "sample_driver",
    .Bind = SampleDriverBind,
    .Init = SampleDriverInit,
    .Release = SampleDriverRelease,
};

Bind: Этот API используется для привязки устройств драйвера и его функций.

int32_t SampleDriverBind(struct HdfDeviceObject *deviceObject)
{
    return HDF_SUCCESS;
}

Init: Когда устройства успешно привязываются, HDF вызывает Init для инициализации драйвера. После завершения инициализации HDF определяет, следует ли создать внешние сервисные интерфейсы на основе файла конфигурации. Если драйвер не может быть инициализирован, драйверный фреймворк автоматически освобождает созданный интерфейс устройства.

int32_t SampleDriverInit(struct HdfDeviceObject *deviceObject)
{
    return HDF_SUCCESS;
}

Release: Когда требуется удалить драйвер, HDF вызывает эту функцию для освобождения ресурсов драйвера. Затем будут освобождены другие внутренние ресурсы.

void SampleDriverRelease(struct HdfDeviceObject *deviceObject)
{
    // Освобождение всех ресурсов.
    return;
}

Для получения подробной информации см. Обзор HDF.

Датчик

Модуль драйвера датчиков разрабатывается на основе HDF и поддерживает функции миграции между ОС и различной настройки оборудования.

  • API для реализации возможностей модуля драйвера датчиков: Реализуют регистрацию, загрузку и отмену регистрации драйверов датчиков, а также обнаружение устройств датчиков, нормализуют API для устройств датчиков одного типа, предоставляют API для парсинга конфигураций регистрации, абстрагируют API для доступа к шине и предоставляют абстрактные платформенные API.
  • API, которые должны быть реализованы разработчиками: На основе конфигурационного источника HDF (HCS) реализуют различную настройку датчиков одного типа и сериализацию конфигураций параметров устройств датчиков, а также предоставляют API для некоторых операций устройств датчиков для упрощения разработки драйвера датчиков.

Для получения подробной информации см. Обзор драйвера датчиков.

ЭкранМодель драйвера экрана, разработанная на основе HDF, маскирует различия между платформами чипов, обеспечивая миграцию ОС между платформами. Она также абстрагирует общую служебную логику периферийных устройств и конфигурирует различную адаптивную API, чтобы драйверная модель была совместимой со всеми типами периферийных устройств. Таким образом, сторонние производители могут эффективно использовать экосистему драйверов OpenHarmony.

  • API для реализации возможностей модели драйвера экрана: Реализуют интерфейсы драйвера железа (HDIs) и их адаптацию к платформе чипа. Кроме того, ядерный драйвер абстрагирует общие службы панели и предоставляет возможности инициализации панели, получения конфигурации панели, включения/выключения панели и управления светодиодным освещением.
  • API, которые должны быть реализованы разработчиками: Завершают конфигурацию HCS уровня платы и конфигурацию приватных данных панели, или предоставляют различные API для некоторых компонентов, чтобы гарантировать эффективное развитие драйвера экрана.

Для получения подробной информации см. Обзор LCD.

Ввод данных

Модель драйвера ввода данных разрабатывается на основе HDF, предоставляет унифицированные API драйвера для верхних уровней услуг ввода данных и декуплируется от платформы чипа. Кроме того, она абстрагирует несколько типов общих платформенных драйверов на основе различных устройств ввода данных и совместима с этими устройствами благодаря конфигурации и различным периферийным API.

  • API для реализации возможностей модели драйвера ввода данных: Реализуют интерфейсы драйвера железа (HDIs) и предоставляют возможности управления устройствами, контроля услуг и отчета о данных. Также модель драйвера ввода данных предоставляет унифицированный драйвер для различных устройств ввода данных и возможности регистрации/отмены регистрации устройства ввода данных, отчета о событиях данных, парсинга конфигураций и загрузки общего драйвера.
  • API, которые должны быть реализованы разработчиками: На основе предоставленного платформенного драйвера добавляют описания устройств и конфигурацию приватных данных устройства ввода данных и реализуют различные API для значительного сокращения времени разработки драйвера ввода данных.

Для получения подробной информации см. Обзор драйвера сенсора.

Wi-Fi

Модуль Wi-Fi разрабатывается на основе HDF и поддерживает миграцию между ОС, адаптацию компонентов и сборку по модулям. На основе унифицированных API, предоставляемых модулем Wi-Fi, разработчики драйверов Wi-Fi могут адаптировать свой код драйвера, а разработчики интерфейсов драйвера железа (HDIs) способны создавать, деактивировать, сканировать и подключаться к Wi-Fi точкам доступа.

  • API для реализации возможностей модуля драйвера Wi-Fi: Реализуют API уровня HDI Wi-Fi и предоставляют возможности установки/получения адреса MAC, получения типа функциональности и установки мощности передачи для верхних уровней услуг ввода данных, а также возможности создания/освобождения объекта WifiModule, подключения/отключения от точки доступа Wi-Fi и запроса/освобождения объекта NetBuf для разработчиков.
  • API, которые должны быть реализованы разработчиками: На основе предоставленного платформенного драйвера завершают конфигурацию HCS уровня платы и различную конфигурацию Wi-Fi и предоставляют API для инициализации, отмены регистрации, активации и деактивации сети.

Для получения подробной информации см. Обзор модуля Wi-Fi. Для подробностей см. Обзор WLAN.

Вовлечённые репозитории

Подсистема драйверов

drivers_framework

drivers_adapter

drivers_adapter_khdf_linux

drivers_peripheral

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/openharmony-drivers_hdf_core.git
git@api.gitlife.ru:oschina-mirror/openharmony-drivers_hdf_core.git
oschina-mirror
openharmony-drivers_hdf_core
openharmony-drivers_hdf_core
master