16 Nisan 2026 Perşembe

STM32 FREERTOS-2



CubeMX tarafından oluşturulan CMSIS RTOS API kod:

main.c

/* Definitions for defaultTask */
osThreadId_t defaultTaskHandle;
const osThreadAttr_t defaultTask_attributes = {
.name = "defaultTask",
.stack_size = 128 * 4,
.priority = (osPriority_t) osPriorityLow,
};

/* Create the thread(s) */
/* creation of defaultTask */
defaultTaskHandle = osThreadNew(StartDefaultTask, NULL, &defaultTask_attributes);

void StartDefaultTask(void *argument)
{
/* USER CODE BEGIN 5 */

/* Infinite loop */

for(;;)
{

osDelay(1);

}

/* USER CODE END 5 */

}

Aşağıdaki osThreadNew() fonksiyonu içerisinde FreeRTOS Native API fonksiyonu olan xTaskCreate() fonksiyonu çağrılıyor:

cmsis_os2.c

if (xTaskCreate ((TaskFunction_t)func, name, (uint16_t)stack, argument, prio, &hTask) != pdPASS) {
          hTask = NULL;

Doğrudan FreeRTOS API ile bu task oluşturulsaydı şöyle olacaktı:

xTaskCreate(

StartDefaultTask, // task fonksiyonu

"defaultTask", // isim

128, // stack size (word)

NULL, // argument

priority_map, // priority dönüşümü

&taskHandle // handle

);







Hiç yorum yok:

Yorum Gönder