태그: volatile
3편
-
C++ volatile: 하드웨어 레지스터와 시그널 핸들러용 키워드, 스레드 동기화에 못 쓰는 이유
volatile이 변수를 레지스터에 캐싱하는 최적화를 막아 하드웨어 레지스터, 시그널 핸들러, 메모리 매핑 I/O에서 매번 실제 메모리를 읽게 하는 원리를 설명합니다. 원자성을 보장하지 않아 스레드 동기화에는 쓸 수 없는 이유와 atomic과의 차이도 다룹니다.
-
C++ volatile의 정확한 의미: MMIO 레지스터, ISR 공유 변수, std::atomic과의 차이
C++ volatile의 의미, 메모리 맵 I/O(MMIO), 인터럽트 서비스 루틴(ISR), volatile vs std::atomic 차이, 자주 하는 실수, 프로덕션 패턴까지. 릴리스 빌드에서 사라지는 하드웨어 접근 문제 해결.
-
임베디드 C++의 volatile: MMIO 레지스터 접근, ISR 공유 변수, 릴리스 빌드에서 사라지는 읽기
임베디드 C++에서 volatile 사용법. Memory-Mapped I/O로 하드웨어 레지스터 접근, ISR과 공유하는 변수, UART·GPIO·DMA 폴링, -O2 빌드에서 접근이 최적화로 사라지는 문제, volatile과 std::atomic의 차이를 다룹니다.