Реализация создания потока ядра в MCU
Во встраиваемых системах создание потоков ядра очень важно. Для многозадачной системы она должна иметь несколько потоков, и каждый поток может работать независимо, чтобы улучшить параллелизм и производительность системы в реальном времени. Как реализовать создание потоков ядра в однокристальном микрокомпьютере? В этой статье рассказывается, как создать поток ядра в микроконтроллере, и приводится соответствующий исходный код.
1. Что такое поток ядра?
Потоки ядра, также известные как потоки режима ядра, — это потоки, управляемые и запланированные ядром. Он работает в режиме ядра и может напрямую обращаться к системным ресурсам. Поток ядра является основной частью операционной системы и отвечает за обработку ряда задач, таких как прерывания, сигналы и системные вызовы. В многозадачной среде потоки ядра могут выполняться одновременно, улучшая режим реального времени и параллелизм системы.
Во-вторых, поток ядра в микроконтроллере
Как реализовать создание потоков ядра для однокристальных микрокомпьютеров? Вообще говоря, потоки ядра в микроконтроллере управляются и планируются ядром операционной системы. Поэтому нам нужно сначала реализовать простое ядро операционной системы в микроконтроллере.
В этой статье мы решили использовать uC/OS-II, операционную систему реального времени с открытым исходным кодом. uC/OS-II — это настраиваемое, переносимое и реентерабельное многозадачное ядро реального времени, которое обеспечивает ряд функций операционной системы реального времени, таких как управление задачами, управление временем и памятью, и может работать на различных процессорах. исходный код доступен для скачивания и модификации.
3. Создание потоков ядра
В uC/OS-II поток ядра создается с помощью функции OSTaskCreate, которая определяется следующим образом:
INT8U OSTaskCreate (void (*task)(void *pd), void *pdata, OS_STK *ptos, INT8U prio);
Среди них параметры объясняются следующим образом:
- задача: указатель на функцию задачи.
- pdata: параметры, переданные функции задачи.
- ptos: стек задач