반응형
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 |