[C] 임베디드 시스템에서 volatile 키워드를 사용하는 이유
MCU 프로그래밍을 하다 보면 레지스터를 제어하기 위해 같은 주소에 여러번 값을 여러번 쓰는 경우가 빈번하고, 이런 경우 코드를 보면 앞에 volatile 키워드를 사용하는 경우를 볼 수 있다. 처음 이런 코드를 보면 언뜻 C언어를 배울 때 배웠던 volatile 키워드의 용법과 연결이 되지 않는다. 그래서 volatile이 왜 쓰이는지 같이 살펴보도록 하자. volatile? 우선 volatile 키워드가 무엇인지 알아보자. 변수를 선언할 때 앞에 volatile을 붙이면 컴파일러는 해당 변수를 최적화에서 제외하여 항상 메모리에 접근하도록 한다. 즉, volatile 변수를 참조할 경우 레지스터에 로드된 값을 사용하지 않고 매번 메모리를 참조한다. volatile [type] [variable_name..
C
2019. 7. 16. 14:44