임베디드 기초 2편 - 메모리 구조와 변수 저장 원리
들어가며 1편에서 펌웨어가 플래시에 저장되고, 변수는 RAM에서 동작한다고 정리했다. 그런데 막상 “전역변수는 어디 저장돼요?”, “const는요?” 라는 질문을 받으면 정확하게 대답하기가 쉽지 않다. Flash vs RAM 다시 짚기 플래시(Flash) 비휘발성(non-volatile) — 전원을 꺼도 데이터가 유지된다 읽기는 자유롭지만, 쓰기는 Erase → Write 순서로 페이지/섹터 단위로만 가능하다 속도가 RAM보다 느리다 코드(명령어), 상수, 전역변수 초기값이 저장된다 RAM 휘발성(volatile) — 전원을 끄면 데이터가 사라진다 자유롭게 읽기/쓰기 가능하고 속도가 빠르다 실행 중 변하는 데이터(전역변수, 지역변수, 동적 할당(dynamic allocation))가 올라간다 메모리 섹션: .text / .data / .bss 링커는 빌드 결과물을 목적에 따라 여러 섹션으로 분리해서 관리한다. ...