6.2.2 Написание уровня переноса операционной системы (OSPL)

Предыдущая  Содержание  Следующая V*D*V

Этот уровень эмулирует API RTOS используя API Linux, как показано на Рисунке 6.5.

 

Рисунок 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 без внесения изменений в существующий код. В таких случаях вам может понадобиться переписать некоторые части существующего кода.

 

Предыдущая  Содержание  Следующая