펌웨어 · 과목 11
MCU 펌웨어
레지스터 한 비트가 핀을 켜고, 타이머를 돌리고, 모터를 움직입니다. 임베디드 개발의 본체입니다.
목표: 데이터시트만 보고 MCU의 주변장치를 설정해 원하는 동작을 만들 수 있다.
다음 과목 통신 프로토콜RTOS펌웨어 설계와 품질센서와 신호처리
지도에서 보기 →개발 환경
STM32CubeIDE, 컴파일러, 디버거를 갖추고 LED 하나를 켭니다.
레지스터 제어와 HAL
레지스터를 직접 다루는 방법과 HAL을 쓰는 방법, 언제 무엇을 쓸지.
GPIO
입력과 출력, 푸시풀과 오픈드레인, 내부 풀업 설정을 레지스터 수준에서 봅니다.
클럭 트리
HSE, PLL, 프리스케일러. 클럭이 어디서 와서 어떻게 나뉘는지 따라갑니다.
타이머
정확한 주기의 인터럽트와 입력 캡처로 시간을 재는 방법.
인터럽트와 NVIC
우선순위 설정, 처리 루틴을 짧게 유지하는 이유, 공유 변수 다루기.
ADC
단일 변환, 연속 변환, 타이머에 맞춘 샘플링.
DMA 활용
ADC 값과 UART 데이터를 CPU 없이 메모리로 옮깁니다.
워치독과 저전력 모드
프로그램이 멈추면 리셋하는 워치독, 배터리 기기를 위한 슬립 모드.
Flash와 EEPROM 쓰기
설정값을 전원이 꺼져도 남게 저장하는 방법과 쓰기 횟수 제한.
부트로더
펌웨어를 스스로 업데이트하는 구조와 메모리 분할.