Реализация создания потока ядра в MCU

Реализация создания потока ядра в 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: стек задач

Guess you like

Origin blog.csdn.net/qq_37934722/article/details/132242561