Операционные системы для MCU, использующие системные вызовы для отвлечения взаимодействия с периферийными устройствами устройства - PullRequest
0 голосов
/ 20 июня 2019

Этот вопрос является справочным запросом.

Типичные встроенные операционные системы, такие как mbedOS или FreeRTOS , не используют системные вызовы (например, вызовы супервизора в ядрах ARM) или используют их только для обеспечения очень небольшое подмножество основных функций ОС, таких как планирование. Некоторые операционные системы предоставляют общий API для взаимодействия с драйверами устройств и периферийными устройствами; Производители устройств реализуют эти API-интерфейсы для работы со своим конкретным устройством, и пользователи связывают свой код приложения с ними, когда они хотят взаимодействовать с устройством.

Я ищу операционные системы для микроконтроллеров, которые используют системные вызовы, чтобы также абстрагироваться от взаимодействия с периферийными устройствами устройства и их возможного использования. В этом сценарии пользователи связывают свой код приложения с файлом заголовка, представляющим API, с помощью таких методов, как, например, set_gpio_interrupt_handler(uint8_t pin, void (*func)). Они вызывают исключение системного вызова, которое затем обрабатывается в ядре для обеспечения функциональности конкретного устройства.

Я не знаю ни одной операционной системы, которая работает по этой схеме для взаимодействия с периферийными устройствами устройства. Основное преимущество такой работы заключается в том, что пользователи могут компилировать свой код отдельно от ядра, поэтому им не придется перекомпилировать все это, если обновляется только ядро ​​или приложение. Двоичные файлы приложения были бы более легкими и могли быть переданы в MCU через загрузчик USB вместо того, чтобы быть перепрограммированным с программистом. Какие еще преимущества, применения и недостатки существуют / могут быть в такой ОС?

...