OldStory/WORKS
section
Alnilam
2010. 7. 2. 15:22
반응형
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
...
반응형