freeRTOS stack size configuration

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

freeRTOS stack size configuration

ソリューションへジャンプ
5,481件の閲覧回数
Relas
Contributor I

I am currently learning FreeRTOS on the LPC51U68 development board (OM40005). I have created 7 tasks for testing and am using the RTOS task list monitor provided by MCUXpresso IDE.

I noticed that the stack sizes displayed in the task list don't match the configurations I set.

Could this be related to memory alignment?

Where can I check the rules for configuration differences?

Below is the code I modified from the freertos_hello example.

 

/*

* Copyright (c) 2015, Freescale Semiconductor, Inc.

* Copyright 2016-2017 NXP

* All rights reserved.

*

* SPDX-License-Identifier: BSD-3-Clause

*/

 

/* FreeRTOS kernel includes. */

#include "FreeRTOS.h"

#include "task.h"

#include "queue.h"

#include "timers.h"

 

/* Freescale includes. */

#include "fsl_device_registers.h"

#include "fsl_debug_console.h"

#include "pin_mux.h"

#include "board.h"

 

#include <stdbool.h>

/*******************************************************************************

* Definitions

******************************************************************************/

 

/* Task priorities. */

#define hello_task_PRIORITY (configMAX_PRIORITIES - 1)

/*******************************************************************************

* Prototypes

******************************************************************************/

static void task1(void *pvParameters);

static void task2(void *pvParameters);

static void task3(void *pvParameters);

static void task4(void *pvParameters);

static void task5(void *pvParameters);

static void task6(void *pvParameters);

static void task7(void *pvParameters);

/*******************************************************************************

* Code

******************************************************************************/

/*!

* @brief Application entry point.

*/

int main(void)

{

/* Init board hardware. */

/* attach 12 MHz clock to FLEXCOMM0 (debug console) */

CLOCK_AttachClk(BOARD_DEBUG_UART_CLK_ATTACH);

 

BOARD_InitBootPins();

BOARD_InitBootClocks();

BOARD_InitDebugConsole();

if (xTaskCreate(task1, "task1", configMINIMAL_STACK_SIZE + 50, NULL, hello_task_PRIORITY, NULL) !=

pdPASS)

{

PRINTF("Task creation failed!.\r\n");

while (1)

;

}

if (xTaskCreate(task2, "task2", configMINIMAL_STACK_SIZE + 100, NULL, hello_task_PRIORITY, NULL) !=

pdPASS)

{

PRINTF("Task creation failed!.\r\n");

while (1)

;

}

if (xTaskCreate(task3, "task3", configMINIMAL_STACK_SIZE + 160, NULL, hello_task_PRIORITY, NULL) !=

pdPASS)

{

PRINTF("Task creation failed!.\r\n");

while (1)

;

}

if (xTaskCreate(task4, "task4", configMINIMAL_STACK_SIZE + 161, NULL, hello_task_PRIORITY, NULL) !=

pdPASS)

{

PRINTF("Task creation failed!.\r\n");

while (1)

;

}

if (xTaskCreate(task5, "task5", configMINIMAL_STACK_SIZE + 170, NULL, hello_task_PRIORITY, NULL) !=

pdPASS)

{

PRINTF("Task creation failed!.\r\n");

while (1)

;

}

if (xTaskCreate(task6, "task6", configMINIMAL_STACK_SIZE + 200, NULL, hello_task_PRIORITY, NULL) !=

pdPASS)

{

PRINTF("Task creation failed!.\r\n");

while (1)

;

}

if (xTaskCreate(task7, "task7", configMINIMAL_STACK_SIZE + 300, NULL, hello_task_PRIORITY, NULL) !=

pdPASS)

{

PRINTF("Task creation failed!.\r\n");

while (1)

;

}

vTaskStartScheduler();

for (;;)

;

}

 

/*!

* @brief Task responsible for printing of "Hello world." message.

*/

static void task1(void *pvParameters)

{

for (;;)

{

PRINTF("Hello world.\r\n");

vTaskSuspend(NULL);

}

}

 

static void task2(void *pvParameters)

{

for (;;)

{

PRINTF("H\r\n");

vTaskSuspend(NULL);

}

}

 

static void task3(void *pvParameters)

{

for (;;)

{

PRINTF("H\r\n");

vTaskSuspend(NULL);

}

}

 

static void task4(void *pvParameters)

{

for (;;)

{

PRINTF("H\r\n");

vTaskSuspend(NULL);

}

}

 

static void task5(void *pvParameters)

{

for (;;)

{

PRINTF("H\r\n");

vTaskSuspend(NULL);

}

}

 

static void task6(void *pvParameters)

{

for (;;)

{

PRINTF("H\r\n");

vTaskSuspend(NULL);

}

}

 

static void task7(void *pvParameters)

{

for (;;)

{

PRINTF("H\r\n");

vTaskSuspend(NULL);

}

}

 

タグ(1)
0 件の賞賛
返信
1 解決策
5,446件の閲覧回数
Harry_Zhang
NXP Employee
NXP Employee

Hi @Relas 

In FreeRTOS, the stack size specified in xTaskCreate() is measured in words (not bytes). For the LPC51U68, which uses a 32-bit word size, each word is 4 bytes.
For instance, if you specify configMINIMAL_STACK_SIZE + 50, this translates to (configMINIMAL_STACK_SIZE + 50) * 4 bytes of stack space.

The alignment adjustments by FreeRTOS or the compiler can cause discrepancies between the requested stack size and the actual allocated size.

BR

Hang

元の投稿で解決策を見る

1 返信
5,447件の閲覧回数
Harry_Zhang
NXP Employee
NXP Employee

Hi @Relas 

In FreeRTOS, the stack size specified in xTaskCreate() is measured in words (not bytes). For the LPC51U68, which uses a 32-bit word size, each word is 4 bytes.
For instance, if you specify configMINIMAL_STACK_SIZE + 50, this translates to (configMINIMAL_STACK_SIZE + 50) * 4 bytes of stack space.

The alignment adjustments by FreeRTOS or the compiler can cause discrepancies between the requested stack size and the actual allocated size.

BR

Hang

%3CLINGO-SUB%20id%3D%22lingo-sub-1989915%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EfreeRTOS%20%E3%82%B9%E3%82%BF%E3%83%83%E3%82%AF%E3%82%B5%E3%82%A4%E3%82%BA%E3%81%AE%E8%A8%AD%E5%AE%9A%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1989915%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E7%A7%81%E3%81%AF%E7%8F%BE%E5%9C%A8%E3%80%81LPC51U68%E9%96%8B%E7%99%BA%E3%83%9C%E3%83%BC%E3%83%89(OM40005)%E3%81%A7FreeRTOS%E3%82%92%E5%AD%A6%E7%BF%92%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%E3%83%86%E3%82%B9%E3%83%88%E7%94%A8%E3%81%AB7%E3%81%A4%E3%81%AE%E3%82%BF%E3%82%B9%E3%82%AF%E3%82%92%E4%BD%9C%E6%88%90%E3%81%97%E3%80%81MCUXpresso%20IDE%E3%81%8C%E6%8F%90%E4%BE%9B%E3%81%99%E3%82%8BRTOS%E3%82%BF%E3%82%B9%E3%82%AF%E3%83%AA%E3%82%B9%E3%83%88%E3%83%A2%E3%83%8B%E3%82%BF%E3%83%BC%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E3%82%BF%E3%82%B9%E3%82%AF%E3%83%AA%E3%82%B9%E3%83%88%E3%81%AB%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%82%8B%E3%82%B9%E3%82%BF%E3%83%83%E3%82%AF%E3%82%B5%E3%82%A4%E3%82%BA%E3%81%8C%E3%80%81%E8%A8%AD%E5%AE%9A%E3%81%97%E3%81%9F%E6%A7%8B%E6%88%90%E3%81%A8%E4%B8%80%E8%87%B4%E3%81%97%E3%81%A6%E3%81%84%E3%81%AA%E3%81%84%E3%81%93%E3%81%A8%E3%81%AB%E6%B0%97%E4%BB%98%E3%81%8D%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3C%2FP%3E%3CP%3E%E3%81%93%E3%82%8C%E3%81%AF%E3%83%A1%E3%83%A2%E3%83%AA%E3%81%AE%E3%82%A2%E3%83%A9%E3%82%A4%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AB%E9%96%A2%E9%80%A3%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%81%AE%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B%3F%3C%2FP%3E%3CP%3E%E8%A8%AD%E5%AE%9A%E3%81%AE%E9%81%95%E3%81%84%E3%81%AB%E9%96%A2%E3%81%99%E3%82%8B%E3%83%AB%E3%83%BC%E3%83%AB%E3%81%AF%E3%81%A9%E3%81%93%E3%81%A7%E7%A2%BA%E8%AA%8D%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%81%8B%3F%3C%2FP%3E%3CP%3E%E4%BB%A5%E4%B8%8B%E3%81%AF%E3%80%81freertos_hello%E4%BE%8B%E3%81%8B%E3%82%89%E5%A4%89%E6%9B%B4%E3%81%97%E3%81%9F%E3%82%B3%E3%83%BC%E3%83%89%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%3CBR%20%2F%3E%3CDIV%3E%3CDIV%3E%3CP%3E%3CSPAN%3E%2F*%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E*%20Copyright%20(c)%202015%2C%20%3C%2FSPAN%3E%3CSPAN%3EFreescale%3C%2FSPAN%3E%3CSPAN%3E%20Semiconductor%2C%20Inc.%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E*%E8%91%97%E4%BD%9C%E6%A8%A92016-2017%20NXP%E3%81%AE%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E*%E5%85%A8%E8%91%97%E4%BD%9C%E6%A8%A9%E6%89%80%E6%9C%89%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E*%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E*%20SPDX-License-Identifier%3A%20BSD-3-Clause%20(%E8%8B%B1%E8%AA%9E)%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E*%2F%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%3CSPAN%3E%2F*%20FreeRTOS%20%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB%E3%81%AB%E3%81%AF%E4%BB%A5%E4%B8%8B%E3%81%8C%E5%90%AB%E3%81%BE%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82*%2F%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%23include%3C%2FSPAN%3E%3CSPAN%3E%E3%80%8CFreeRTOS.h%E3%80%8D%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%23include%3C%2FSPAN%3E%20%3CSPAN%3E%E3%80%8Ctask.h%E3%80%8D%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%23include%3C%2FSPAN%3E%3CSPAN%3E%E3%80%8Cqueue.h%E3%80%8D%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%23include%3C%2FSPAN%3E%3CSPAN%3E%E3%80%8Ctimers.h%E3%80%8D%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%3CSPAN%3E%2F*%20%3C%2FSPAN%3E%3CSPAN%3E%E3%83%95%E3%83%AA%E3%83%BC%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%AB%3C%2FSPAN%3E%3CSPAN%3E%20%E3%81%AB%E3%81%AF%E4%BB%A5%E4%B8%8B%E3%81%8C%E5%90%AB%E3%81%BE%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%23include%3C%2FSPAN%3E%3CSPAN%3E%E3%80%8Cfsl_device_registers.h%E3%80%8D%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%23include%3C%2FSPAN%3E%20%3CSPAN%3E%E3%80%8Cfsl_debug_console.h%E3%80%8D%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%23include%3C%2FSPAN%3E%3CSPAN%3E%E3%80%8Cpin_mux.h%E3%80%8D%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%23include%3C%2FSPAN%3E%3CSPAN%3E%E3%80%8Cboard.h%E3%80%8D%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%3CSPAN%3E%23include%3C%2FSPAN%3E%20%3CSPAN%3E%3CSTDBOOL.H%3E%3C%2FSTDBOOL.H%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%2F*******************************************************************************%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E*%E5%AE%9A%E7%BE%A9%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E******************************************************************************%2F%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%3CSPAN%3E%2F*%20%E3%82%BF%E3%82%B9%E3%82%AF%E3%81%AE%E5%84%AA%E5%85%88%E9%A0%86%E4%BD%8D%E3%80%82*%2F%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%23define%3C%2FSPAN%3E%3CSPAN%3E%20hello_task_PRIORITY%20(configMAX_PRIORITIES-1)%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%2F*******************************************************************************%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E*%E3%83%97%E3%83%AD%E3%83%88%E3%82%BF%E3%82%A4%E3%83%97%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E******************************************************************************%2F%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3Estatic%3C%2FSPAN%3E%20%3CSPAN%3Evoid%3C%2FSPAN%3E%20%3CSPAN%3Etask1%3C%2FSPAN%3E%3CSPAN%3E(%3C%2FSPAN%3E%3CSPAN%3Evoid%3C%2FSPAN%3E%3CSPAN%3E%20*pvParameters)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3Estatic%3C%2FSPAN%3E%20%3CSPAN%3Evoid%3C%2FSPAN%3E%20%3CSPAN%3Etask2%3C%2FSPAN%3E%3CSPAN%3E(%3C%2FSPAN%3E%3CSPAN%3Evoid%3C%2FSPAN%3E%3CSPAN%3E%20*pvParameters)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3Estatic%3C%2FSPAN%3E%20%3CSPAN%3Evoid%3C%2FSPAN%3E%20%3CSPAN%3Etask3%3C%2FSPAN%3E%3CSPAN%3E(%3C%2FSPAN%3E%3CSPAN%3Evoid%3C%2FSPAN%3E%3CSPAN%3E%20*pvParameters)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3Estatic%3C%2FSPAN%3E%20%3CSPAN%3Evoid%3C%2FSPAN%3E%20%3CSPAN%3Etask4%3C%2FSPAN%3E%3CSPAN%3E(%3C%2FSPAN%3E%3CSPAN%3Evoid%3C%2FSPAN%3E%3CSPAN%3E%20*pvParameters)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3Estatic%3C%2FSPAN%3E%20%3CSPAN%3Evoid%3C%2FSPAN%3E%20%3CSPAN%3Etask5%3C%2FSPAN%3E%3CSPAN%3E(%3C%2FSPAN%3E%3CSPAN%3Evoid%3C%2FSPAN%3E%3CSPAN%3E%20*pvParameters)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3Estatic%3C%2FSPAN%3E%20%3CSPAN%3Evoid%3C%2FSPAN%3E%20%3CSPAN%3Etask6%3C%2FSPAN%3E%3CSPAN%3E(%3C%2FSPAN%3E%3CSPAN%3Evoid%3C%2FSPAN%3E%3CSPAN%3E%20*pvParameters)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3Estatic%3C%2FSPAN%3E%20%3CSPAN%3Evoid%3C%2FSPAN%3E%20%3CSPAN%3Etask7%3C%2FSPAN%3E%3CSPAN%3E(%3C%2FSPAN%3E%3CSPAN%3Evoid%3C%2FSPAN%3E%3CSPAN%3E%20*pvParameters)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%2F*******************************************************************************%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E*%E3%82%B3%E3%83%BC%E3%83%89%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E******************************************************************************%2F%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%2F*!%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E*%20%40brief%20%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E3%82%A8%E3%83%B3%E3%83%88%E3%83%AA%20%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E*%2F%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3Eint%3C%2FSPAN%3E%20%3CSPAN%3Emain%3C%2FSPAN%3E%3CSPAN%3E(%3C%2FSPAN%3E%3CSPAN%3Evoid%3C%2FSPAN%3E%3CSPAN%3E)%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%2F*%20%3C%2FSPAN%3E%3CSPAN%3E%E3%83%9C%E3%83%BC%E3%83%89%E3%83%8F%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A7%E3%82%A2%E3%82%92%E5%88%9D%E6%9C%9F%E5%8C%96%3C%2FSPAN%3E%3CSPAN%3E%20%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%20*%2F%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%2F*%2012%20MHz%20%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%82%92%20FLEXCOMM0%20%E3%81%AB%E6%8E%A5%E7%B6%9A%20(%E3%83%87%E3%83%90%E3%83%83%E3%82%B0%20%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB)%20*%2F%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3ECLOCK_AttachClk(BOARD_DEBUG_UART_CLK_ATTACH)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%3CSPAN%3EBOARD_InitBootPins()%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EBOARD_InitBootClocks()%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EBOARD_InitDebugConsole()%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3Eif%3C%2FSPAN%3E%3CSPAN%3E%20(xTaskCreate(%E3%82%BF%E3%82%B9%E3%82%AF1%2C%20%3C%2FSPAN%3E%3CSPAN%3E%22%E3%82%BF%E3%82%B9%E3%82%AF1%22%3C%2FSPAN%3E%3CSPAN%3E%2C%20configMINIMAL_STACK_SIZE%20%2B%2050%2C%20NULL%2C%20hello_task_PRIORITY%2C%20NULL)%20!%3D%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EpdPASS)%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPRINTF(%3C%2FSPAN%3E%3CSPAN%3E%22%E3%82%BF%E3%82%B9%E3%82%AF%E3%81%AE%E4%BD%9C%E6%88%90%E3%81%AB%E5%A4%B1%E6%95%97%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F!%E3%80%82%5Cr%5Cn%22%3C%2FSPAN%3E%3CSPAN%3E)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%20(1)%3C%2FSPAN%3E%3CSPAN%3E%E3%81%AA%E3%81%8C%E3%82%89%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3Eif%3C%2FSPAN%3E%3CSPAN%3E%20(xTaskCreate(%E3%82%BF%E3%82%B9%E3%82%AF%202%2C%20%3C%2FSPAN%3E%3CSPAN%3E%22%E3%82%BF%E3%82%B9%E3%82%AF%202%22%3C%2FSPAN%3E%3CSPAN%3E%2C%20configMINIMAL_STACK_SIZE%20%2B%20100%2C%20NULL%2C%20hello_task_PRIORITY%2C%20NULL)%20!%3D%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EpdPASS)%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPRINTF(%3C%2FSPAN%3E%3CSPAN%3E%22%E3%82%BF%E3%82%B9%E3%82%AF%E3%81%AE%E4%BD%9C%E6%88%90%E3%81%AB%E5%A4%B1%E6%95%97%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F!%E3%80%82%5Cr%5Cn%22%3C%2FSPAN%3E%3CSPAN%3E)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%20(1)%3C%2FSPAN%3E%3CSPAN%3E%E3%81%AA%E3%81%8C%E3%82%89%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3Eif%3C%2FSPAN%3E%3CSPAN%3E%20(xTaskCreate(%E3%82%BF%E3%82%B9%E3%82%AF3%2C%20%3C%2FSPAN%3E%3CSPAN%3E%22%E3%82%BF%E3%82%B9%E3%82%AF3%22%3C%2FSPAN%3E%3CSPAN%3E%2C%20configMINIMAL_STACK_SIZE%20%2B%20160%2C%20NULL%2C%20hello_task_PRIORITY%2C%20NULL)%20!%3D%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EpdPASS)%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPRINTF(%3C%2FSPAN%3E%3CSPAN%3E%22%E3%82%BF%E3%82%B9%E3%82%AF%E3%81%AE%E4%BD%9C%E6%88%90%E3%81%AB%E5%A4%B1%E6%95%97%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F!%E3%80%82%5Cr%5Cn%22%3C%2FSPAN%3E%3CSPAN%3E)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%20(1)%3C%2FSPAN%3E%3CSPAN%3E%E3%81%AA%E3%81%8C%E3%82%89%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3Eif%3C%2FSPAN%3E%3CSPAN%3E%20(xTaskCreate(%E3%82%BF%E3%82%B9%E3%82%AF4%2C%20%3C%2FSPAN%3E%3CSPAN%3E%22%E3%82%BF%E3%82%B9%E3%82%AF4%22%3C%2FSPAN%3E%3CSPAN%3E%2C%20configMINIMAL_STACK_SIZE%20%2B%20161%2C%20NULL%2C%20hello_task_PRIORITY%2C%20NULL)%20!%3D%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EpdPASS)%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPRINTF(%3C%2FSPAN%3E%3CSPAN%3E%22%E3%82%BF%E3%82%B9%E3%82%AF%E3%81%AE%E4%BD%9C%E6%88%90%E3%81%AB%E5%A4%B1%E6%95%97%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F!%E3%80%82%5Cr%5Cn%22%3C%2FSPAN%3E%3CSPAN%3E)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%20(1)%3C%2FSPAN%3E%3CSPAN%3E%E3%81%AA%E3%81%8C%E3%82%89%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3Eif%3C%2FSPAN%3E%3CSPAN%3E%20(xTaskCreate(%E3%82%BF%E3%82%B9%E3%82%AF5%2C%20%3C%2FSPAN%3E%3CSPAN%3E%22%E3%82%BF%E3%82%B9%E3%82%AF5%22%3C%2FSPAN%3E%3CSPAN%3E%2C%20configMINIMAL_STACK_SIZE%20%2B%20170%2C%20NULL%2C%20hello_task_PRIORITY%2C%20NULL)%20!%3D%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EpdPASS)%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPRINTF(%3C%2FSPAN%3E%3CSPAN%3E%22%E3%82%BF%E3%82%B9%E3%82%AF%E3%81%AE%E4%BD%9C%E6%88%90%E3%81%AB%E5%A4%B1%E6%95%97%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F!%E3%80%82%5Cr%5Cn%22%3C%2FSPAN%3E%3CSPAN%3E)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%20(1)%3C%2FSPAN%3E%3CSPAN%3E%E3%81%AA%E3%81%8C%E3%82%89%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3Eif%3C%2FSPAN%3E%3CSPAN%3E%20(xTaskCreate(%E3%82%BF%E3%82%B9%E3%82%AF6%2C%20%3C%2FSPAN%3E%3CSPAN%3E%22%E3%82%BF%E3%82%B9%E3%82%AF6%22%3C%2FSPAN%3E%3CSPAN%3E%2C%20configMINIMAL_STACK_SIZE%20%2B%20200%2C%20NULL%2C%20hello_task_PRIORITY%2C%20NULL)%20!%3D%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EpdPASS)%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPRINTF(%3C%2FSPAN%3E%3CSPAN%3E%22%E3%82%BF%E3%82%B9%E3%82%AF%E3%81%AE%E4%BD%9C%E6%88%90%E3%81%AB%E5%A4%B1%E6%95%97%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F!%E3%80%82%5Cr%5Cn%22%3C%2FSPAN%3E%3CSPAN%3E)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%20(1)%3C%2FSPAN%3E%3CSPAN%3E%E3%81%AA%E3%81%8C%E3%82%89%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3Eif%3C%2FSPAN%3E%3CSPAN%3E%20(xTaskCreate(%E3%82%BF%E3%82%B9%E3%82%AF7%2C%20%3C%2FSPAN%3E%3CSPAN%3E%22%E3%82%BF%E3%82%B9%E3%82%AF7%22%3C%2FSPAN%3E%3CSPAN%3E%2C%20configMINIMAL_STACK_SIZE%20%2B%20300%2C%20NULL%2C%20hello_task_PRIORITY%2C%20NULL)%20!%3D%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EpdPASS)%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPRINTF(%3C%2FSPAN%3E%3CSPAN%3E%22%E3%82%BF%E3%82%B9%E3%82%AF%E3%81%AE%E4%BD%9C%E6%88%90%E3%81%AB%E5%A4%B1%E6%95%97%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F!%E3%80%82%5Cr%5Cn%22%3C%2FSPAN%3E%3CSPAN%3E)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%20(1)%3C%2FSPAN%3E%3CSPAN%3E%E3%81%AA%E3%81%8C%E3%82%89%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EvTaskStartScheduler()%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3Efor%3C%2FSPAN%3E%3CSPAN%3E%20(%3B%3B)%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%3CSPAN%3E%2F*!%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%E2%80%BB%40brief%20%E3%80%8CHello%20world%E3%80%8D%E3%81%AE%E5%8D%B0%E5%88%B7%E3%82%92%E6%8B%85%E5%BD%93%E3%81%99%E3%82%8B%E3%82%BF%E3%82%B9%E3%82%AF%E3%81%A7%E3%81%99%E3%80%82%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E*%2F%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%E9%9D%99%E7%9A%84%3C%2FSPAN%3E%20%3CSPAN%3Evoid%3C%2FSPAN%3E%20%3CSPAN%3Etask1%3C%2FSPAN%3E%3CSPAN%3E(%3C%2FSPAN%3E%3CSPAN%3Evoid%3C%2FSPAN%3E%3CSPAN%3E%20*pvParameters)%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3Efor%3C%2FSPAN%3E%3CSPAN%3E%20(%3B%3B)%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPRINTF(%3C%2FSPAN%3E%3CSPAN%3E%22%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%82%5Cr%5Cn%22%3C%2FSPAN%3E%3CSPAN%3E)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EvTaskSuspend(NULL)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%3CSPAN%3E%E9%9D%99%E7%9A%84%3C%2FSPAN%3E%20%3CSPAN%3Evoid%3C%2FSPAN%3E%20%3CSPAN%3Etask2%3C%2FSPAN%3E%3CSPAN%3E(%3C%2FSPAN%3E%3CSPAN%3Evoid%3C%2FSPAN%3E%3CSPAN%3E%20*pvParameters)%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3Efor%3C%2FSPAN%3E%3CSPAN%3E%20(%3B%3B)%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPRINTF(%3C%2FSPAN%3E%3CSPAN%3E%22H%5Cr%5Cn%22%3C%2FSPAN%3E%3CSPAN%3E)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EvTaskSuspend(NULL)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%3CSPAN%3E%E9%9D%99%E7%9A%84%3C%2FSPAN%3E%20%3CSPAN%3Evoid%3C%2FSPAN%3E%20%3CSPAN%3Etask3%3C%2FSPAN%3E%3CSPAN%3E(%3C%2FSPAN%3E%3CSPAN%3Evoid%3C%2FSPAN%3E%3CSPAN%3E%20*pvParameters)%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3Efor%3C%2FSPAN%3E%3CSPAN%3E%20(%3B%3B)%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPRINTF(%3C%2FSPAN%3E%3CSPAN%3E%22H%5Cr%5Cn%22%3C%2FSPAN%3E%3CSPAN%3E)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EvTaskSuspend(NULL)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%3CSPAN%3E%E9%9D%99%E7%9A%84%3C%2FSPAN%3E%20%3CSPAN%3Evoid%3C%2FSPAN%3E%20%3CSPAN%3Etask4%3C%2FSPAN%3E%3CSPAN%3E(%3C%2FSPAN%3E%3CSPAN%3Evoid%3C%2FSPAN%3E%3CSPAN%3E%20*pvParameters)%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3Efor%3C%2FSPAN%3E%3CSPAN%3E%20(%3B%3B)%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPRINTF(%3C%2FSPAN%3E%3CSPAN%3E%22H%5Cr%5Cn%22%3C%2FSPAN%3E%3CSPAN%3E)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EvTaskSuspend(NULL)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%3CSPAN%3E%E9%9D%99%E7%9A%84%3C%2FSPAN%3E%20%3CSPAN%3Evoid%3C%2FSPAN%3E%20%3CSPAN%3Etask5%3C%2FSPAN%3E%3CSPAN%3E(%3C%2FSPAN%3E%3CSPAN%3Evoid%3C%2FSPAN%3E%3CSPAN%3E%20*pvParameters)%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3Efor%3C%2FSPAN%3E%3CSPAN%3E%20(%3B%3B)%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPRINTF(%3C%2FSPAN%3E%3CSPAN%3E%22H%5Cr%5Cn%22%3C%2FSPAN%3E%3CSPAN%3E)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EvTaskSuspend(NULL)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%3CSPAN%3E%E9%9D%99%E7%9A%84%3C%2FSPAN%3E%20%3CSPAN%3Evoid%3C%2FSPAN%3E%20%3CSPAN%3Etask6%3C%2FSPAN%3E%3CSPAN%3E(%3C%2FSPAN%3E%3CSPAN%3Evoid%3C%2FSPAN%3E%3CSPAN%3E%20*pvParameters)%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3Efor%3C%2FSPAN%3E%3CSPAN%3E%20(%3B%3B)%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPRINTF(%3C%2FSPAN%3E%3CSPAN%3E%22H%5Cr%5Cn%22%3C%2FSPAN%3E%3CSPAN%3E)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EvTaskSuspend(NULL)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%3CSPAN%3E%E9%9D%99%E7%9A%84%3C%2FSPAN%3E%20%3CSPAN%3Evoid%3C%2FSPAN%3E%20%3CSPAN%3Etask7%3C%2FSPAN%3E%3CSPAN%3E(%3C%2FSPAN%3E%3CSPAN%3Evoid%3C%2FSPAN%3E%3CSPAN%3E%20*pvParameters)%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3Efor%3C%2FSPAN%3E%3CSPAN%3E%20(%3B%3B)%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EPRINTF(%3C%2FSPAN%3E%3CSPAN%3E%22H%5Cr%5Cn%22%3C%2FSPAN%3E%3CSPAN%3E)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EvTaskSuspend(NULL)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1990974%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20freeRTOS%20%E3%82%B9%E3%82%BF%E3%83%83%E3%82%AF%E3%82%B5%E3%82%A4%E3%82%BA%E3%81%AE%E8%A8%AD%E5%AE%9A%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1990974%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F243034%22%20target%3D%22_blank%22%3E%40Relas%3C%2FA%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EFreeRTOS%20%E3%81%A7%E3%81%AF%E3%80%81xTaskCreate()%20%E3%81%A7%E6%8C%87%E5%AE%9A%E3%81%95%E3%82%8C%E3%81%9F%E3%82%B9%E3%82%BF%E3%83%83%E3%82%AF%E3%82%B5%E3%82%A4%E3%82%BA%E3%81%AF%20(%E3%83%90%E3%82%A4%E3%83%88%E3%81%A7%E3%81%AF%E3%81%AA%E3%81%8F)%20%E3%83%AF%E3%83%BC%E3%83%89%E3%81%A7%E6%B8%AC%E5%AE%9A%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%80%8232%20%E3%83%93%E3%83%83%E3%83%88%E3%81%AE%E3%83%AF%E3%83%BC%E3%83%89%20%E3%82%B5%E3%82%A4%E3%82%BA%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%20LPC51U68%20%E3%81%AE%E5%A0%B4%E5%90%88%E3%80%81%E5%90%84%E3%83%AF%E3%83%BC%E3%83%89%E3%81%AF%204%20%E3%83%90%E3%82%A4%E3%83%88%E3%81%A7%E3%81%99%E3%80%82%3CBR%20%2F%3E%E3%81%9F%E3%81%A8%E3%81%88%E3%81%B0%E3%80%81configMINIMAL_STACK_SIZE%20%2B%2050%20%E3%81%A8%E6%8C%87%E5%AE%9A%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81(configMINIMAL_STACK_SIZE%20%2B%2050)%20*%204%20%E3%83%90%E3%82%A4%E3%83%88%E3%81%AE%E3%82%B9%E3%82%BF%E3%83%83%E3%82%AF%E9%A0%98%E5%9F%9F%E3%81%AB%E5%A4%89%E6%8F%9B%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%3EFreeRTOS%20%E3%81%BE%E3%81%9F%E3%81%AF%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%A9%E3%81%AB%E3%82%88%E3%82%8B%E3%82%A2%E3%83%A9%E3%82%A4%E3%83%A1%E3%83%B3%E3%83%88%E8%AA%BF%E6%95%B4%E3%81%AB%E3%82%88%E3%82%8A%E3%80%81%E3%83%AA%E3%82%AF%E3%82%A8%E3%82%B9%E3%83%88%E3%81%95%E3%82%8C%E3%81%9F%E3%82%B9%E3%82%BF%E3%83%83%E3%82%AF%E3%82%B5%E3%82%A4%E3%82%BA%E3%81%A8%E5%AE%9F%E9%9A%9B%E3%81%AB%E5%89%B2%E3%82%8A%E5%BD%93%E3%81%A6%E3%82%89%E3%82%8C%E3%81%9F%E3%82%B5%E3%82%A4%E3%82%BA%E3%81%A8%E3%81%AE%E9%96%93%E3%81%AB%E4%B8%8D%E4%B8%80%E8%87%B4%E3%81%8C%E7%94%9F%E3%81%98%E3%82%8B%E5%8F%AF%E8%83%BD%E6%80%A7%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%3EBR%3C%2FP%3E%0A%3CP%3E%E6%8E%9B%E3%81%91%E3%82%8B%3C%2FP%3E%3C%2FLINGO-BODY%3E