./../
  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  ´ÙÀ½




Copyright 2003-2026 ¨Ï ±èÁ¾È£. All rights reserved. kimjongho.co.kr kimjongho.kr kimjongho.net kimjongho.com