컴파일러마다 링커마다 차이가 있겠지만 IAR 은 특이해서 정리해본다.
eeprom 변수 선언은 기본적인 Form 은 변수 선언 앞에 __eeprom 이라는 keyword 를 사용해야 한다.
그리고 eeprom 변수는 반드시 __no_init 과 같이 써야 한다.
그래서 초기화 하는 __eeprom 변수는 다른 방식의 초기화 하는 방법을 써야 한다.
근데 이렇게 선언한다면
Error[Ta004]: __eeprom variable must be __no_init
이렇게 Error 가 난다.
EEPROM 영역에다가 변수를 초기화 하여 선언할 때, (예를 들어 const 변수로 선언 등등)
코드에서 선언을 하고 ICF 파일을 편집해서 기록해야 한다.
1. 코드
2. ICF 파일 편집
로 일단 영역을 잡아주고