Programming/Firmware (펌웨어)
[Firmware] 펌웨어 기초 - MCU
MOONCO
2024. 9. 21. 18:07
Firmware 란?
운영체제(OS) 없이, 기기(Hardware)를 직접 다루는 프로그램을 코딩하는 분야
특정 목적에 특화된 (Embedded) 개발분야에 자주이용한다
MCU 란?
Micro Controller Unit
작은 CPU, 주로 PCB(Printed Circut Board)에 붙여 전자회로와 같이 구성한다
Board 예시 - STM32
STMicro 사에서 제작한, MCU + PCB + 전자회로가 합쳐진 기기
실제 예시를 보고싶다면, 해당 제품을 검색해보길 추천한다.
개발기초
Firmware를 개발하려면, 주로 2가지 문서를 보게된다
Datasheet
Board의 전반적인 구성, 기능, 작동방식이 나와 있다.
(전원, Clock 설정등, 전자 전기 기초지식이 부족하다면 이해가 어려울 수 있으나, 필수적이다)
Reference Manual
Board의 특정 Register를 어떻게 사용하는지 나와 있다.
Register의 특정부분을 1과 0으로 설정하여, Board의 여러가지 기능을 제어한다
(실제 코딩을 할때, 이 문서를 참조해야한다)
정말 간략한 예시코드
// 임의로 적은 것이므로, 실제코드와는 다름 (구조는 같음)
#define CLOCK_FRQ 400000
#define LED1 0x01
int main(void)
{
LD_CFGR |= (0x01 << LED1); // LED1의 pin을 출력모드(1)로 설정
PORTC |= (0x01 << LED1); // LED1 켜기
while(1) {
// Blink 깜빡이는 코드
}
}
반응형