I D :
¾ÏÈ£ :
IDÀúÀå
ȸ¿ø°¡ÀÔ
³×°Ô(ÁåÀå) ÂÊÁöº¸³»±â
¸Þ¸ðÀå
°¢Á¾°è»ê±â
Ä÷¯ºü·¿
À̸ðƼÄÜ
(ÇÁ·¹ÀÓ
,
ț̢)
º¸À¯Àåºñ
¸ñ·ÏÀ¸·Î °¡±â..
MCU Task°ü¸®ÇÒ¶§ ÇÊ¿äÇÑ ¼¼¸¶Æ÷¾î(Semaphore)¿Í ¹ÂÅØ½º(Mutex)
±èÁ¾È£ |
»èÁ¦Çϱâ
ÀÚ¿ø°ü¸® ÇÒ¶§ ¹Ýµå½Ã ÀÌÇØÇϰí Ȱ¿ëÇØ¾ß ÇÒ »çÇ×À¸·Î ¿À·¡µµ·Ï ÀÏÇØ¿Ô´Ù¸é Àú¸¶´Ù °°Àº ¸ñÀû, ´Ù¸¥ ¼Ö·ù¼ÇµéÀÌ ÀÖÀ»ÅÙµ¥ ±ÔÁ¤È µÈ °ÍÀ» ¾Ë¾ÆµÎ´Â°Ô ÁÁÀ»¼ö ÀÖ¾î¼ Àû¾îµÒ.
content = r"""# STM32 FreeRTOS ¼¼¸¶Æ÷¾î(Semaphore)¿Í ¹ÂÅØ½º(Mutex) ¿Ïº® Á¤¸® ## 1. ÇÙ½É ¿ä¾à ºñ±³ | ±¸ºÐ | ¼¼¸¶Æ÷¾î (Semaphore) | ¹ÂÅØ½º (Mutex) | | :--- | :--- | :--- | | **ÁÖ¿ä ¿ëµµ** | ŽºÅ© °£ **µ¿±âÈ** (À̺¥Æ® Àü´Þ) | °øÀ¯ ÀÚ¿ø **º¸È£** (»óÈ£ ¹èÁ¦) | | **¼ÒÀ¯±Ç** | ¾øÀ½ (´©±¸³ª Give °¡´É) | ÀÖÀ½ (LockÇÑ Å½ºÅ©¸¸ Unlock °¡´É) | | **¿ì¼±¼øÀ§ »ó¼Ó** | Áö¿ø ¾È ÇÔ | **Áö¿øÇÔ** (¿ì¼±¼øÀ§ ¿ªÀü ¹æÁö) | | **ÁÖ »ç¿ëó** | ISR ➡️ ŽºÅ© µ¿±âÈ | ´ÙÁß Å½ºÅ©ÀÇ °ø¿ë ÀÚ¿ø(º¯¼ö, Åë½Å) Á¢±Ù | --- ## 2. °³³ä ÀÌÇØÇϱâ ### 🚦 ¼¼¸¶Æ÷¾î (Semaphore) - "½ÅÈ£µî / Ä«¿îÅÍ" * **¸ñÀû:** ŽºÅ© °£ÀÇ **µ¿±âÈ**(¼ø¼ Á¦¾î)³ª **ÇÑÁ¤µÈ °³¼öÀÇ ÀÚ¿ø Á¢±Ù °ü¸®**¸¦ À§ÇØ »ç¿ëÇÕ´Ï´Ù. * **Ư¡:** ¼ÒÀ¯±Ç °³³äÀÌ ¾ø¾î ÀÚ¿øÀ» ÇØÁ¦Çϴ ŽºÅ©¿Í ȹµæÇϴ ŽºÅ©°¡ ´Þ¶óµµ µË´Ï´Ù. ÀÌÁø(Binary)Çü°ú Ä«¿îÆÃ(Counting)ÇüÀÌ ÀÖ½À´Ï´Ù. ### 🔒 ¹ÂÅØ½º (Mutex) - "ÈÀå½Ç ¿¼è" * **¸ñÀû:** °øÀ¯ ÀÚ¿ø(UART, Àü¿ª º¯¼ö µî)À» **¿ÀÁ÷ ÇϳªÀÇ Å½ºÅ©¸¸ µ¶Á¡**ÇÏ¿© ¾ÈÀüÇÏ°Ô »ç¿ëÇϵµ·Ï º¸È£ÇÕ´Ï´Ù. * **Ư¡:** **¼ÒÀ¯±Ç** °³³äÀÌ ÀÖ¾î ÀÚ¿øÀ» Àá±Ù ŽºÅ©¸¸ Ç® ¼ö ÀÖ½À´Ï´Ù. ¿ì¼±¼øÀ§ »ó¼Ó ±â´ÉÀ» ÅëÇØ ³·Àº ¿ì¼±¼øÀ§ ŽºÅ©°¡ ³ôÀº ¿ì¼±¼øÀ§ ŽºÅ©¸¦ ¹æÇØÇÏ´Â ¹®Á¦¸¦ ¹æÁöÇÕ´Ï´Ù. --- ## 3. ÄÚµå ¿¹Á¦ (FreeRTOS) ### 💡 ¼¼¸¶Æ÷¾î ¿¹Á¦ (ÀÌÁø ¼¼¸¶Æ÷¾î: µ¿±âÈ) ÀÎÅÍ·´Æ®(¿¹: ¹öư)°¡ ¹ß»ýÇÏ¸é ¼¼¸¶Æ÷¾î¸¦ ÅëÇØ ´ë±â ÁßÀΠŽºÅ©¸¦ ±ú¿ì´Â ¹æ½ÄÀÔ´Ï´Ù. ```c SemaphoreHandle_t xBinarySemaphore; // 1. ¼¼¸¶Æ÷¾î »ý¼º void MX_FREERTOS_Init(void) { xBinarySemaphore = xSemaphoreCreateBinary(); } // 2. ÀÎÅÍ·´Æ® Çڵ鷯 (¹öư ÀÔ·Â) void EXTI0_IRQHandler(void) { BaseType_t xHigherPriorityTaskWoken = pdFALSE; xSemaphoreGiveFromISR(xBinarySemaphore, &xHigherPriorityTaskWoken); portYIELD_FROM_ISR(xHigherPriorityTaskWoken); } // 3. ½ÅÈ£¸¦ ±â´Ù¸®´Â ŽºÅ© void vTaskWork(void *pvParameters) { while(1) { if (xSemaphoreTake(xBinarySemaphore, portMAX_DELAY) == pdTRUE) { // ÀÎÅÍ·´Æ® ¹ß»ý ½Ã ¼öÇàÇÒ ÀÛ¾÷ } } } ```c SemaphoreHandle_t xMutex; ### 💡 ¹ÂÅØ½º ¿¹Á¦ (ÀÚ¿ø º¸È£) ¿©·¯ ŽºÅ©°¡ °øÀ¯ ÀÚ¿ø(¿¹: UART ·Î±× Ãâ·Â)À» ¾ÈÀüÇÏ°Ô »ç¿ëÇϱâ À§ÇÑ ¹æ½ÄÀÔ´Ï´Ù. // 1. ¹ÂÅØ½º »ý¼º void MX_FREERTOS_Init(void) { xMutex = xSemaphoreCreateMutex(); } // 2. °øÀ¯ ÀÚ¿øÀ» »ç¿ëÇϴ ŽºÅ© void vTaskPrint(void *pvParameters) { while(1) { // ¹ÂÅØ½º ȹµæ (´ë±â ½Ã°£ 100ms) if (xSemaphoreTake(xMutex, (TickType_t)100) == pdTRUE) { // --- °øÀ¯ ÀÚ¿ø »ç¿ë (Å©¸®Æ¼Äà ¼½¼Ç) --- printf("Resource Access Allowed\r\n"); // ------------------------------------ xSemaphoreGive(xMutex); // ¹ÂÅØ½º ¹Ýȯ } vTaskDelay(pdMS_TO_TICKS(500)); } } ```
÷¾ð ´Þ±â
À̸§ :
¾ÏÈ£ :
¹øÈ£
Àüü
ÀϹÝ
ÄÄÇ»ÅÍ ¾ð¾î
Á¦¸ñ
...(÷¾ð)
ÀÛ¼ºÀÏ
Á¢¼Ó
xxx
[°øÁö]ÀÚÀ¯°Ö·¯¸® µî·Ï ¿À·ù ¼öÁ¤ ¿Ï·á
2017-12-22
29307
xxx
[°øÁö]ÀÚ·á½Ç ´Ù¿î·Îµå ¿À·ù ó¸®
2017-12-01
29960
xxx
[°øÁö]
ºñ³, ±¤°í °Ô½Ã¹°À» ½Å°í, Â÷´Ü, »èÁ¦µË´Ï´Ù.
2005-06-26
26020
246
[ÀϹÝ]
> MCU Task°ü¸®ÇÒ¶§ ÇÊ¿äÇÑ ¼¼¸¶Æ÷¾î(Semaphore)¿Í ¹ÂÅØ½º(Mutex) <
2026-08-09(
ÀÏ
)
12
245
[ÀϹÝ]
STM32F ¸¶ÀÌÄÄ °øºÎÇÒ¶§ RAM¿¡ ¿Ã·Á¼ ½ÃÇèÇϱâ.(¼Óµµ ºü¸§)
2026-08-08(
Åä
)
16
244
[ÀϹÝ]
STM32F767°ú FreeRTOS¸¦ ÀÌ¿ëÇØ ¼³°èÇÒ¶§ Time base Source´Â?
2026-08-08(
Åä
)
13
243
[ÀϹÝ]
VSCode·Î STM32 °³¹ßÇÒ¶§ printf¿¡¼ ½Ç¼ö Ãâ·Â ¾ÈµÇ¸é
2026-07-16(¸ñ)
924
242
[ÀϹÝ]
VisualStudioÀ¸·Î ¸¸µç ÇÁ·Î±×·¥ .net ¹öÀü ¿Ã¸®±â À§ÇØ
2026-07-02(¸ñ)
1132
241
[C#]
c# winform¿¡¼ URL QR»ý¼º
2026-06-30(È)
977
240
[ÀϹÝ]
VC ÄÄÆÄÀÏÇÒ¶§ ¼Ö·ù¼Ç Æú´õ¿¡ ÄÄÆÄÀÏµÈ ÆÄÀÏÀÌ »ý¼ºµÉ¶§
2026-06-29(¿ù)
354
239
[XML]
IIS 8.0 ÀÌ»ó IP Â÷´Ü web.config ¼³Á¤
2026-06-13(
Åä
)
84
238
[ÀϹÝ]
C#.net 6ÀÌ»ó ºôÆ®ÇÒ¶§ TargetFramework Æú´õ »ý±â´Â°Å ¾ø¾Ö±â
2026-04-16(¸ñ)
400
237
[ÀϹÝ]
windowsÀÇ °¢Á¾ ¿¡µðÅÍ¿¡¼ ÇÑ±Û ÀԷ½ÿ¡ ¿Ï¼ºµÇ¾ß Ç¥±âµÇ´Â ¹®Á¦
2026-04-10(±Ý)
390
236
[ÀϹÝ]
MPLab X 6.2¿¡¼ ICD3 ¿¬°á ½ÇÆÐ°¡ ³ª¿Ã¶§
2026-04-07(È)
397
235
[ÀϹÝ]
Verolog HDL Operation (¿¬»êÀÚ)
2026-03-27(±Ý)
358
234
[ÀϹÝ]
Mac OS Sequoia¸¦ OCLP·Î ¼³Ä¡ÇßÀ»¶§ Chrome ¿À·ù ÇØ°á¹æ¹ý
2026-03-21(
Åä
)
625
233
[ÀϹÝ]
Mac OS Monterey ¹®Á¦°¡ ¹ß»ýÇ߱⠶§¹®¿¡ ÄÄÇ»Å͸¦ Á¾·áÇß½À´Ï´Ù ¸Þ¼¼Áö
2026-03-08(
ÀÏ
)
7594
232
[ÀϹÝ]
Windows 10,11 ³»Àå ÇÁ·Î±×·¥À¸·Î ·Î¿ì·¹¹ë Æ÷¸äÇϱâ
2026-02-10(È)
1097
231
[ÀϹÝ]
XBOX ÄÁÆ®·Ñ·¯ Ȩ¹öư ´·¶´õ´Ï ½ºÆÀÀÌ ÀüüȸéÀ¸·Î ¿¸±¶§ ¸·±â
2026-02-07(
Åä
)
1223
230
[ÀϹÝ]
Git pushÇÏ·Á´Âµ¥ .gitignore Àû¿ëÀÌ ¾ÈµÉ¶§
2026-02-04(¼ö)
824
229
[C#]
C# URL querystring ƯÁ¤ °ª °¡Á®¿À±â
2026-01-23(±Ý)
312
228
[C#]
C# Chromium url loadÇϴµ¥ ÃʱâÈ ÈÄ¿¡ loadÇϸé dns ¿À·ù¶ã¶§
2026-01-23(±Ý)
322
227
[ÀϹÝ]
MPLAB X IDE 6.xx Dark Thema
2025-10-15(¼ö)
1613
°Ë»ö :
Page :
ÀÌÀü
1
2
3
4
5
6
7
8
9
10
11
12
´ÙÀ½
nowmoon
Copyright 2003-2026 ¨Ï ±èÁ¾È£. All rights reserved.
kimjongho.co.kr kimjongho.kr kimjongho.net kimjongho.com