본문으로 바로가기

[C] _AT_ 키워드

category 프로그래밍/C 2018. 8. 1. 22:59
728x90
반응형

오늘은 C언어 에서 사용되는 _AT_ 키워드에 대해 알아보겠습니다.


_AT_ 키워드는 메모리의 절대 번지를 변수에 저장하는 것입니다.


보통은 펌웨어, 임베디드에 많이 쓰인다고 합니다. KEIL 컴파일러에서 사용됩니다.


예제를 한번 살펴보겠습니다.


 

 

 



=================================================


struct link  {

  struct link idata *next;

  char        code  *test;

};


struct link idata list _at_ 0x40;     /* list at idata 0x40 */

char xdata text[256]   _at_ 0xE000;   /* array at xdata 0xE000 */

int xdata i1           _at_ 0x8000;   /* int at xdata 0x8000 */

char far ftext[256]    _at_ 0x02E000; /* array at xdata 0x03E000 */


void main ( void ) {

  link.next = (void *) 0;

  i1        = 0x1234;

  text [0]  = 'a';

  ftext[0]  = 'f';

}


=================================================


link 구조체가 있습니다.


link 구조체 list, char형 배열 text, int형 변수 i1, char형 배열 ftest를 선언합니다.


변수명 앞에 xdata, idata, far이 붙어있는데, 이것은 KEIL 컴파일러의 메모리 타입이라고 보시면됩니다.


변수 선언과 동시에 _at_ 키워드로 주소 번지를 초기화 시킵니다.


그리고 각각의 변수에 값을 초기화 합니다.


 

 

 



더 자세한 내용은 아래의 링크를 참고하시기바랍니다.


http://www.keil.com/support/man/docs/c51/c51_ap_at.htm






728x90
반응형