CMake와 VSCode로 배우는 C/C++ 실무 빌드
홍영기
₩99,000
얼리버드
50%
₩49,500초급 / C, C++, Linux, VSCode, cmake, gdb
New
New
CMakeLists.txt, 복붙해 쓰면서도 왜 돌아가는지 몰라 막막하셨나요? VSCode에서 직접 고치고 빌드하며 타겟 설계부터 패키징, 크로스 빌드와 원격 디버깅까지 내 것으로 만듭니다.
초급
C, C++, Linux

RTOS 코드가 가끔 멈추는데, 어디서부터 봐야 할지 막막하셨나요? STM32 보드에서 실제로 벌어지는 고장 40가지를 일부러 재현하고, 화면 숫자·디버거·로그 같은 증거로 원인을 찾아 고치는 과정을 끝까지 함께합니다.
태스크 분할, 우선순위, 주기 대기(vTaskDelay와 vTaskDelayUntil)를 증상과 숫자로 판단
ISR 우선순위와 FromISR API 제약을 지켜 인터럽트와 RTOS를 안전하게 연결
큐, 알림, 이벤트 그룹, 뮤텍스를 데이터 흐름에 맞게 고르고 교착·우선순위 역전 피하기
DMA·UART 비동기 처리에서 버퍼 소유권과 완료 시점을 올바르게 다루기
스택·힙·로그·워치독으로 고장의 증거를 모으고 재발 막기
CubeIDE 디버거(중단점, 콜스택, Live Expressions)로 원인을 직접 추적
가끔 멈추는 RTOS 코드를 감이 아니라 증거로 진단하고 고치는 힘. 화면의 숫자, 디버거, 로그로 원인을 좁히고, 고친 뒤에는 같은 조건에서 다시 확인하는 습관이 남습니다.
실습 코드는 C 언어로 작성한 FreeRTOS 프로젝트이고, stm32 보드(STM32F429I-DISC1)에서 돌리며, 결과는 lvgl로 그린 LCD 화면의 숫자로 확인합니다. rtos를 처음 배우는 강의가 아니라, 동작은 하는데 가끔 멈추는 코드를 다루는 강의입니다.
한 줄 요약
STM32 보드에서 일부러 재현한 실무 고장 40가지를 하나씩 증거로 추적하고 고칩니다. 태스크 설계, 인터럽트와 DMA, 큐와 동기화, 메모리 진단, 견고성까지. 40개 장, 약 14시간 30분.
제작 방식 안내
이 강의는 AI 기반 제작 공정으로 만들었습니다. 나레이션은 강사 본인의 목소리를 학습한 음성 합성이며, 대본·그래픽 제작에도 AI 도구를 활용했습니다. 기획과 내용 검수는 강사가 직접 했고, 모든 실습 결과는 실제 STM32 보드와 STM32CubeIDE에서 실행해 확인한 화면입니다.
RTOS 고장은 대부분 이렇게 찾아옵니다. 매번 멈추면 차라리 쉽습니다. 몇 시간에 한 번, 특정 순서로 눌렀을 때만, 로그를 넣으면 사라지는 고장은 코드를 아무리 다시 읽어도 보이지 않습니다.
그래서 많은 개발자가 지연 시간을 늘리고, 우선순위를 바꾸고, 대기를 무한으로 바꿔 봅니다. 증상은 잠시 사라지지만 왜 고쳐졌는지 설명할 수 없는 수정은 다른 곳에서 다시 터집니다.
이 강의의 목표는 원인을 증거로 설명할 수 있는 수정입니다.
"우선순위 역전이 뭔가요?" "ISR 안에서는 왜 FromISR API를 써야 하나요?" "스택이 넘친 걸 어떻게 알아내나요?" "워치독이 있는데 왜 시스템이 멈춘 채로 남나요?"
책으로 외운 답은 꼬리 질문 하나에 무너집니다. 이 강의에서는 이 고장들을 보드에서 직접 일으키고, 숫자로 원인을 확인한 뒤 고칩니다. 면접장에서 "제가 재현해 보니 이렇게 됐습니다"라고 답할 수 있게 됩니다.
각 장은 실무에서 실제로 만나는 고장 하나를 다룹니다. 고장이 든 빌드와 고친 빌드를 같은 보드에서 차례로 실행하고, 두 결과를 숫자로 비교합니다.
STEP 1
고장 빌드로 증상을 화면에 띄웁니다
STEP 2
LCD 숫자, 디버거, 로그로 원인을 좁힙니다
STEP 3
고친 빌드와 나란히 놓고 확인합니다
01 프로젝트 구성과 부팅 순서, 초기화 전 인터럽트
02 GUI 태스크와 작업 태스크의 경계
03 우선순위, 주기 대기, 소프트웨어 타이머
04 큐, 알림, 이벤트 그룹으로 데이터 넘기기
05 ISR 우선순위, FromISR API, DMA·UART 완료 시점
06 뮤텍스, 우선순위 역전, 잠금 순서와 교착
07 스택·힙 측정과 로그가 바꾸는 시간
08 센서 실패, 재시도, 무한 대기, 워치독
09 장시간 기록의 카운터 넘침
10 PC 시험과 장시간 시험의 합격 기준
모든 고장을 STM32F429I-DISC1과 LVGL 화면 하나에서 재현합니다. 실행할 때마다 같은 숫자가 나와서 고치기 전과 후를 그대로 비교할 수 있습니다.
STM32CubeIDE의 실제 소스, 중단점, 콜스택, Live Expressions로 원인을 직접 따라갑니다.
두 빌드를 나란히 비교합니다
레지스터는 RM0090·PM0214 원문으로
다른 해법과 견주어 봅니다
보드 화면의 숫자로 고장 전후를 비교합니다
CubeIDE 디버거로 원인이 된 줄을 짚습니다
1번 수업 · 같은 소스인데 동료 PC 빌드만 화면이 깨진다
5번 수업 · 고장 빌드와 수정 빌드를 같은 보드에서 나란히
37번 수업 · 워치독이 있어도 멈춘 채 리셋되지 않는 고장
30번 수업 · 보드에서 잰 값으로 그린 타이밍 도해
16번 수업 · 교착의 네 조건과 끊을 고리
16번 수업 · 실제 제품에서 교착이 드러나는 모습
29번 수업 · 스택 끝을 넘으면 이웃 메모리를 덮는다
38번 수업 · 카운터가 넘쳐도 뺄셈은 맞는다
26번 수업 · 부하가 큰 제품에서만 가끔 나는 타임아웃
25번 수업 · 완료 통지로 송신 태스크를 깨우는 구조
2008년부터 삼성전자, LG전자, SK하이닉스, 현대모비스 등 기업과 기관에서 개발자들을 가르쳐 왔습니다. 이 강의는 현장에서 다뤄 온 RTOS 고장 유형을 보드 하나에서 누구나 재현할 수 있게 다시 구성한 것입니다.
태스크와 큐는 만들 수 있지만, 가끔 멈추는 문제 앞에서 어디부터 봐야 할지 막막했던 분을 위한 강의입니다. 1편(FreeRTOS 프로그래밍)에서 API를 익혔다면, 2편에서는 그 API가 실무에서 어떻게 고장 나는지를 다룹니다.
임베디드 직무를 준비하고 있다면, 1편으로 API를 익히고 2편으로 그 API가 실무에서 어떻게 고장 나는지를 겪어 보세요. 현업 개발자가 몇 년에 걸쳐 하나씩 만나는 고장을 40개 장, 약 14시간 30분에 모았습니다.
STM32F429I-DISC1 (LCD 내장)
STM32CubeIDE 2.2.0
STM32CubeMX (2번 수업), PuTTY (시리얼 로그 수업)
C 언어, FreeRTOS, LVGL
모든 장의 실행 화면과 디버거 화면이 영상에 들어 있습니다
보면서 원인과 수정 과정을 따라올 수 있습니다
관련 기술: FreeRTOS · rtos · stm32 · C · lvgl
Q. 1편을 듣지 않아도 되나요?
FreeRTOS로 태스크, 큐, 세마포어를 한 번이라도 써 보셨다면 바로 들으셔도 됩니다. 각 장 앞부분에서 필요한 배경을 짧게 다시 짚습니다. FreeRTOS가 처음이라면 1편을 먼저 권합니다.
Q. 아직 취업 전인데 들어도 되나요?
FreeRTOS로 태스크와 큐를 한 번이라도 써 봤다면 충분합니다. 오히려 취업 전에 듣는 편이 이득입니다. 면접에서 자주 묻는 우선순위 역전, ISR 처리, 스택 넘침, 교착을 모두 보드에서 직접 재현하고 고쳐 보기 때문입니다.
Q. 보드가 꼭 있어야 하나요?
아닙니다. 실행 결과와 디버거 화면을 모두 영상으로 보여 드립니다. 직접 재현해 보고 싶다면 STM32F429I-DISC1 보드를 준비하시면 됩니다.
Q. 나레이션은 AI 음성인가요?
네. 강사 본인의 목소리를 학습한 음성 합성입니다. 대본과 실습 내용은 강사가 직접 기획하고 검수했으며, 실습 화면은 실제 보드에서 실행한 결과입니다.
학습 대상은
누구일까요?
FreeRTOS를 써 봤지만 가끔 멈추는 문제의 원인을 못 찾는 개발자
동작은 하는데 왜 그렇게 짜야 하는지 설명하지 못하는 RTOS 사용자
인터럽트·DMA와 RTOS를 함께 쓰다가 막힌 개발자
우선순위 역전, 교착, 원자성을 증거로 설명하고 싶은 분
FreeRTOS 프로그래밍(1편)을 듣고 실전으로 넘어가려는 수강생
선수 지식,
필요할까요?
C 언어 포인터와 구조체
FreeRTOS 기본 API(태스크, 큐, 세마포어) 사용 경험
STM32CubeIDE 기본 사용
커리어인증
3,594
명
수강생
263
개
수강평
281
개
답변
4.7
점
강의 평점
7
개
강의
인하대학교에서 전자공학을 전공하고, 임베디드 소프트웨어 개발자로 일했습니다.
2008년부터 18년 동안 현장 강의를 해 왔습니다. 삼성전자, LG전자, SK하이닉스, 현대모비스, LIG D&A, 서울대학교 등 기업과 기관에서 개발자들을 가르쳤고, 그 경험을 강의 교재로 정리했습니다.
『RTOS』(2008), 『리눅스 쉘』(2018), 『FreeRTOS』(2019), 『Cortex-M』(2022), 『부트로더 기반 임베디드 시스템』(2023)
유튜브 가일스쿨(https://www.youtube.com/@guileschool): 임베디드와 개발 강의
맥 자동화도 15년째 연구하고 있습니다. Keyboard Maestro와 AppleScript로 반복 작업을 줄이는 방법을 가르치고, Final Cut Pro 자동화 플러그인 Greenlight를 직접 개발해 판매하고 있습니다. 직접 만든 도구들은 깃허브(https://github.com/guileschool)에 공개하고 있습니다.
유튜브 캡틴맥봇(https://www.youtube.com/@captainmacbot): 맥에서 AI와 자동화를 쓰는 법
강의 요청 및 기타 문의는 guileschool@gmail.com으로 보내 주세요.
전체
43개 ∙ (14시간 42분)
해당 강의에서 제공:
1. 강좌 소개
01:30
4. 잘못된 프로젝트 조합
25:47
5. 생성 코드에 넣은 기능이 사라짐
18:59
6. 초기화 순서가 다른 시작 코드
17:54
지식공유자님의 다른 강의를 만나보세요!
같은 분야의 다른 강의를 만나보세요!