반응형
PROGMEM이란?
PROGMEM은 AVR 마이크로컨트롤러(예: Arduino)에서 RAM이 아닌 플래시 메모리에 상수 데이터를 저장하기 위해 사용되는 키워드이다.
예시
const uint8_t myArray[4] PROGMEM = {1, 2, 3, 4};
장점
1. RAM 절약
- PROGMEM을 사용하면 상수 데이터를 플래시 메모리에 저장하므로, RAM 사용량을 크게 줄일 수 있다.
- 이는 RAM이 제한적인 임베디드 환경에서 매우 유리하다.
2. 큰 데이터 구조 저장 가능
- 큰 배열이나 문자열과 같은 데이터 구조를 플래시 메모리에 저장할 수 있어, 메모리 자원을 효율적으로 사용할 수 있다.
단점
1. 읽기 복잡성
- PROGMEM으로 저장된 값은 직접 읽을 수 없으며, pgm_read_* 함수를 사용해야 하므로 코드가 복잡해질 수 있다.
2. 접근 속도 저하
- 플래시 메모리에서 값을 읽는 것은 RAM에서 읽는 것보다 느리다.
- 따라서 성능이 중요한 부분에서는 사용하기에 적합하지 않을 수 있다.
3. 타입과 범위 제한
- PROGMEM으로 저장할 수 있는 타입은 제한적이며, 전역 변수처럼 정의해야 하므로 스코프 관리가 어려울 수 있다.
반응형
'언어 > C, C++' 카테고리의 다른 글
[C++] #define, constexpr, PROGEM 비교 (0) | 2024.10.27 |
---|---|
[C++] constexpr (0) | 2024.10.25 |
[C++] #define (0) | 2024.10.24 |
[C, C++] 모든 타입 정리 (0) | 2024.04.24 |
[C++] constexpr이란? const와 constexpr의 차이 ( const vs constexpr ) (0) | 2024.01.08 |
댓글