본문 바로가기
OldStory/WORKS

section

by Alnilam 2010. 7. 2.

GCC 링크 스크립트에서 코드나 데이터의 메모리상의 위치를 section 이름을 사용하여 정의 한다.

 어셈블리 코드에서는 section를 이름 뒤에 콜론(:)를 붙여 간단하게 정의 할 수 있다. 
그러면 c언어내에서도 section를 정의 할 수 있지 않을까? 

다음과 같이  attribute를 사용하여 정의 할 수 있다.

 __attribute__((__section__(".my_buffer")))  static int MyBuffer[0x10000];

링크 스크립트를 다음과 같이 작성 했다면 MyBuffer를 sram 메모리에 위치 시킬 수 있다.

MEMORY
{
 sram  : ORIGIN = 0x300000, LENGTH = 16K
 sdram   : ORIGIN = 0x20000000, LENGTH = 64M
}

SECTIONS
{
 startup : {
   *(.startup) 
 } >sdram
 
 .my_buffer : {
   __my_buffer_beg__ = .;
   *(.my_buffer)
   . = 0x10000;
   __my_buffer_end__ = .;
 } > sram
...

'OldStory > WORKS' 카테고리의 다른 글

ATMEL USB 예제 소스  (0) 2010.07.08
VPATH  (0) 2010.07.06
어셈블러 확장자  (0) 2010.07.01
main함수 없이 프로그램 짜기  (0) 2010.06.30
startup code  (0) 2010.06.29