6.2.2 Написание уровня переноса операционной системы (OSPL) |
Предыдущая Содержание Следующая |
![]() |
Этот уровень эмулирует API RTOS используя API Linux, как показано на Рисунке 6.5.
![]() Рисунок 6.5 Уровень переноса операционной системы.
Хорошо написанный OSPL (Operating System Porting Layer, уровень для переноса операционной системы) минимизирует изменения в существующем коде. Для достижения этого должны быть определены соответствия между API RTOS и API Linux. Соответствия подпадают под следующие две категории:
▪Соответствие один-к-одному: каждый API RTOS можно эмулировать с помощью одного API Linux. Аргументы или возвращаемое значение эквивалентного API Linux могут отличаться, но ожидается такое же поведение функции. ▪Соответствие один-ко-многим: для эмуляции API RTOS необходимо более одного API Linux.
Для многих API RTOS вы также должны определить соответствия с API ядра Linux, так как эти API могут быть использованы задачами ядра. Вы можете или иметь отдельные OSPL для ядра и пользовательского пространства, или одну библиотеку, которая компонуется и в пространстве пользователя, и пространстве ядра. API OSPL для последнего случая выглядит следующим образом.
void rtosAPI(void){ #ifndef __KERNEL__ /* Эквивалентный интерфейс пользовательского пространства Linux */ #else /* Эквивалентный интерфейс ядра Linux */ #endif }
Обратите внимание, что при определении соответствия API RTOS и API Linux вы можете натолкнуться на некоторые API RTOS, которые не могут быть съэмулированы с использованием API Linux без внесения изменений в существующий код. В таких случаях вам может понадобиться переписать некоторые части существующего кода.
|
Предыдущая Содержание Следующая |