
ARM Cortex-M 프로세서 프로그래밍
홍영기
CORTEX-M 프로세서를 체계적으로 학습하고 싶으신가요? 임베디드 시스템의 가장 중요한 토픽 2가지 어셈블리어와 인터럽트를 확실히 정리해드립니다.
초급
ARM Architecture, Cortex, 임베디드




카카오스타일
에 관심있는 사람들도 듣는 중!




카카오스타일
에 관심있는 사람들도 듣는 중!
Configure, Generate, Build를 구분해 읽는 CMake 빌드 흐름과 버전·정책 문제 해결
VSCode(CMake Tools, clangd)에서 설정·빌드·테스트·디버깅이 이어지는 개발 루프
PUBLIC / PRIVATE / INTERFACE를 구분한 타겟 중심 설계와 멀티 모듈 구성
option, 캐시, configure_file, Generator Expression, 프리셋으로 빌드 구성 제어
find_package, FetchContent, CTest, CPack으로 이어지는 의존성·테스트·패키지 배포
툴체인 파일과 sysroot를 이용한 크로스 빌드와 VSCode 원격 디버깅
VSCode에서 설정, 빌드, 테스트, 디버깅이 한 번에 이어지는 C/C++ 개발 루프. 버튼 위치를 외우는 대신, 설정 파일과 실제 로그를 읽고 직접 고칠 수 있게 됩니다.
한 줄 요약
PC 한 대로 설정 · 빌드 · 테스트 · 디버깅 루프를 만들고, 타겟 중심 설계와 테스트·패키지 배포를 거쳐 크로스 빌드와 원격 디버깅까지 이어 갑니다. 본편 25장, 약 5시간. 장마다 연습 문제가 있습니다.
제작 방식 안내
이 강의는 AI 기반 제작 공정으로 만들었습니다. 나레이션은 강사 본인의 목소리를 학습한 음성 합성이며, 대본·그래픽 제작에도 AI 도구를 활용했습니다. 기획과 내용 검수는 20년 가까이 임베디드 현장과 기업 교육을 해 온 강사가 직접 했고, 모든 실습 결과는 실제 VSCode 환경(PC와 라즈베리파이 실물 보드)에서 실행해 확인한 화면입니다.
STEP 1
설정부터 디버깅까지 한 흐름으로
01 ~ 04장
STEP 2
라이브러리, 빌드 제어, 테스트, 패키지
05 ~ 19장 · 24 ~ 25장
STEP 3
툴체인 파일, qemu, gdbserver
20 ~ 23장 · 보드는 선택
복사해 온 CMakeLists.txt는 라이브러리가 하나 늘어나는 순간, 빌드 옵션이 갈라지는 순간, 크로스 컴파일을 시작하는 순간 무너집니다. 빌드는 되는데 왜 되는지 모르고, 안 될 때는 어디를 고쳐야 할지 모릅니다.
이 강의의 목표는 원리를 알고 설계한, 단단한 빌드입니다.
문제는 Make가 아니라 흩어진 빌드 규칙입니다. 프로젝트가 커지면 컴파일러 옵션은 여기저기 복사되고, 디렉터리마다 생긴 Makefile은 서로를 호출하며 엉킵니다.
CMake는 무엇을 빌드할지 선언하게 하고, 빌드 도구와 툴체인에 맞는 빌드 파일은 CMake가 만듭니다. LLVM, Qt, OpenCV 같은 대형 C/C++ 오픈소스와 VSCode, CLion 같은 IDE가 모두 이 방식으로 프로젝트를 이해합니다.
01 Configure / Generate / Build, 캐시, Ninja, CMake 4.x 호환
02 VSCode 개발 루프: CMake Tools, clangd, 중단점·Watch
03 정적·공유 라이브러리와 PUBLIC / PRIVATE / INTERFACE
04 add_subdirectory 멀티 모듈과 심볼 가시성
05 option, 설정 헤더, Generator Expression, function, 프리셋
06 Custom Commands로 빌드 중 코드·헤더 생성
07 install, find_package, FetchContent
08 CTest·GoogleTest 테스트와 CPack .deb 패키지
09 툴체인 파일·sysroot 크로스 빌드와 qemu 실행
10 Remote SSH 원격 개발, gdbserver 디버깅, 릴리스까지 종합 실습
설정 파일과 실제 Configure / Build 로그를 함께 읽어서, 도구 버전이 바뀌어도 같은 흐름을 찾게 합니다.
툴체인 파일, sysroot, qemu, gdbserver 원격 디버깅까지 다룹니다. 보드가 없어도 PC의 qemu로 끝까지 따라옵니다.
설정을 빼고 오류의 원인을 찾습니다
생성 파일과 바이너리, 심볼까지 확인합니다
직접 풀고 풀이로 확인합니다
VSCode 출력 창에서 CMake 빌드 과정을 그대로 읽습니다
clangd가 읽는 compile_commands.json까지 확인합니다
장비부터 준비할 필요가 없습니다. 모든 실습은 Ubuntu PC 한 대로 진행합니다. 크로스·원격 장은 PC의 qemu로 끝까지 따라 하고(20~22장), 23장에서 같은 프로젝트를 라즈베리파이 3B+ 실물 보드에 올려 원격 디버깅까지 해 봅니다. 보드가 없어도 23장은 보면서 따라오면 됩니다.
2008년부터 삼성전자, LG전자, SK하이닉스, 현대모비스 등 기업과 기관에서 개발자들을 가르쳐 왔습니다. 현장에서 수강생들이 가장 많이 막히는 지점은 의외로 코드가 아니라 빌드였습니다. 이 강의는 그 막힘을 순서대로 풀도록 구성했습니다.
CMakeLists.txt를 읽을 수는 있지만 직접 설계하기는 막막한 분, 매번 빌드 문제에 시간을 빼앗기는 분을 위한 강의입니다.
설정 파일과 로그를 읽고 직접 고치는 쪽으로
서버, 데스크톱, 라이브러리, 장비용 소프트웨어에 그대로 적용됩니다
Ubuntu 22.04 LTS
CMake 3.22, Ninja (CMake 4.x 호환 장면 포함)
gcc 11 (build-essential), gdb
VSCode + CMake Tools, clangd
aarch64-linux-gnu-gcc, qemu-user
gdbserver, gdb-multiarch, Remote - SSH
라즈베리파이 3B+ 이상은 선택 (없으면 qemu)
이 강의에서 다루지 않는 것
Windows·MSVC·Visual Studio 생성기, macOS Xcode: 실습은 리눅스 기준입니다. 원리는 같습니다
Conan·vcpkg 같은 패키지 관리자: FetchContent·find_package로 원리를 다룹니다
CI(GitHub Actions 등), CDash, 커버리지 리포트: 테스트는 CTest·GoogleTest까지 다룹니다
Yocto·Buildroot, MCU 펌웨어 굽기·디버깅: 전용 주제라 다루지 않습니다
C++20 modules, CMake 4.x 새 기능: 실습은 CMake 3.22입니다. 4.x 호환 문제만 03장에서 다룹니다
Q. 라즈베리파이가 없으면 수강이 어렵나요?
아닙니다. 모든 실습을 PC 한 대로 할 수 있습니다. 크로스 컴파일과 원격 개발(20~22장)은 PC의 qemu로 실행합니다. 23장은 라즈베리파이 3B+ 실물 보드로 같은 과정을 보여 주며, 보드가 있으면 그대로 따라 할 수 있습니다.
Q. 맥이나 윈도우에서도 따라 할 수 있나요?
CMake 문법과 빌드 흐름은 운영체제와 무관합니다. 실습은 Ubuntu 22.04 기준이라 VM 또는 WSL2를 권장합니다. Visual Studio·Xcode 생성기는 다루지 않습니다.
Q. C++ 프로젝트나 서버·데스크톱 개발에도 맞나요?
네. 특정 분야 전용이 아닌 일반 CMake 실무 강의입니다. 예제는 주로 C로 진행하지만 C/C++ 혼용 장을 포함하고, 타겟 설계, 테스트, 설치와 패키징, 프리셋은 C++ 프로젝트에 그대로 적용됩니다.
학습 대상은
누구일까요?
Makefile 기반 C/C++ 프로젝트를 CMake로 옮기려는 개발자
CMakeLists.txt를 복사해서 쓰지만 원리를 모르는 CMake 초급 사용자
VSCode를 빌드·디버깅까지 연결된 C/C++ 개발 환경으로 쓰고 싶은 개발자
라이브러리 구성부터 테스트·패키지 배포까지 하나의 흐름으로 익히고 싶은 개발자
크로스 컴파일, ABI 관리, 원격 디버깅까지 익히려는 CMake 중급 사용자
선수 지식,
필요할까요?
C 또는 C++ 기본 문법
리눅스 터미널 기본 명령
커리어인증
3,581
명
수강생
262
개
수강평
281
개
답변
4.7
점
강의 평점
6
개
강의
인하대학교에서 전자공학을 전공하고, 임베디드 소프트웨어 개발자로 일했습니다.
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으로 보내 주세요.
전체
29개 ∙ (5시간 16분)
해당 강의에서 제공:
1. 강좌 소개
03:56
3. 왜 CMake인가
12:06
4. 빌드 흐름 완전 이해
12:18
5. VSCode 개발 루프
11:13
6. 정적 라이브러리와 타겟
14:51
7. 멀티 모듈 프로젝트
12:08
8. 공유 라이브러리와 심볼 가시성
11:22
9. option·캐시·-D
12:15
10. 설정 헤더와 시스템 검사
12:02
지식공유자님의 다른 강의를 만나보세요!
같은 분야의 다른 강의를 만나보세요!
얼리버드 할인 중
₩49,500
50%
₩99,000