[ABOV]테이블 등 초기값을 갖는 특정 데이터를 Flash 영역에 저장

2024년 01월 12일 by 진아사랑해

    [ABOV]테이블 등 초기값을 갖는 특정 데이터를 Flash 영역에 저장 목차
반응형

프로그램을 하다 보면 초기값을 가지는 특정 데이터가 RAM 영역이 아니라 Flash(ROM) 영역에 저장될 필요가 있습니다.

이 경우에 어떻게 해야 하는지 알아보겠습니다.

unsigned int AT103_11K_Table[]=
{
//--------50.1~60---------- // 279~219(61개)
800,800,800,795,795,795,         // 6

...

}

이렇게 선언을 하고 컴파일 후 map 파일을 보시면

    AT103_11K_Table                          0x2000001c   Data        2668  main.o(.data)

RAM 영역에 선언되어 있습니다.

 

Flash 영역에 선언하기 위해서는 const를 사용하시면 됩니다.

const unsigned int AT103_11K_Table[]=
{
//--------50.1~60---------- // 279~219(61개)
800,800,800,795,795,795,         // 6
...

}

컴파일 후에 다시 map 파일을 열어보시면

AT103_11K_Table                          0x0000394c   Data        2668  main.o(.constdata)

이렇게 되어 있습니다.

 

같은 DATA 타입으로 나오지만은 주소가 Flash(ROM) 영역으로 변경되어 있고

.data에서 .constdata로 변경되어 있습니다.

 

반응형