본문 바로가기
프로그래밍/임베디드

[AVR] Avr Studio Flash Memory 사용법

by JR2 2021. 1. 4.

LCD에서 Font를 사용하거나, 엄청난 양의 변수(배열)이 선언이 필요할 때,

Flash Memory에 변수를 저장한다.

 

다만 Flash Memory에 저장한 뒤는 값을 수정 할 수 없다.

 

아래는 Codevision의 Flash Memory 사용법이다.

 

flash unsigned int A[5] = { 0, 1, 3, 6, 7 };

 

변수 선언 앞에 flash라는 단어만 붙혀주면 된다.

저장된 변수를 읽어올 때도 기존과 동일하게 사용하면 된다.

 

아래는 Atmel Studio의 Flash Memory 사용법이다.

 

#include <avr/pgmspace.h>

PROGMEM const unsigned int A[5] = { 0, 1, 2, 3, 4 };

int main(void)
{
	for(int i = 0; i < 5 ; i++)
    {
		printf("%d", pgm_read_byte(&LOGO[i]));
    }
}

avr/pgmspace.h을 선언해야한다.

 

변수 선언 앞에 PROGMEM const를 붙혀줘야한다.

 

변수를 읽어올 때는 pgm_read_byte(&변수명) 을 통해서 읽어와야한다.

 

댓글