Этот репозиторий хранит основную информацию о коде ядра подсистемы драйверов OpenHarmony, включая драйверный фреймворк, управление конфигурациями, парсинг конфигураций, универсальную модель фреймворка и унифицированные интерфейсы драйверов аппаратного обеспечения. Он предназначен для предоставления более точной и эффективной среды разработки, где вы можете выполнять одноразовое развитие для многоплатформенного развертывания.
/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, вам нужно зарегистрироваться и настроить необходимые 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 и поддерживает функции миграции между ОС и различной настройки оборудования.
Для получения подробной информации см. Обзор драйвера датчиков.
Для получения подробной информации см. Обзор LCD.
Модель драйвера ввода данных разрабатывается на основе HDF, предоставляет унифицированные API драйвера для верхних уровней услуг ввода данных и декуплируется от платформы чипа. Кроме того, она абстрагирует несколько типов общих платформенных драйверов на основе различных устройств ввода данных и совместима с этими устройствами благодаря конфигурации и различным периферийным API.
Для получения подробной информации см. Обзор драйвера сенсора.
Модуль Wi-Fi разрабатывается на основе HDF и поддерживает миграцию между ОС, адаптацию компонентов и сборку по модулям. На основе унифицированных API, предоставляемых модулем Wi-Fi, разработчики драйверов Wi-Fi могут адаптировать свой код драйвера, а разработчики интерфейсов драйвера железа (HDIs) способны создавать, деактивировать, сканировать и подключаться к Wi-Fi точкам доступа.
Для получения подробной информации см. Обзор модуля Wi-Fi. Для подробностей см. Обзор WLAN.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )