2013-03-01 1 views
7

하나의 섹션 내용을 두 개의 인접하지 않은 메모리 영역에 쓰도록 링커 스크립트를 작성하려고합니다.gnu 불연속 메모리 영역의 링커 섹션

나는 이것에 대해이 메일 목록에있는 오래 된 스레드를 발견했다 : "LD 링커 스크립트와 비 연속 메모리 영역" http://sourceware.org/ml/binutils/2012-01/msg00188.html

나는이 문제에 대한 C28x 컴파일러의 기능을 알고 이를 spliting한다 여러 메모리 세그먼트의 섹션 : (또는 함수 포함)

섹션 {.text : {* (. text)} >> FLASH1 | FLASH3은}

여기에 설명 : http://processors.wiki.ti.com/index.php/C28x_Compiler_-_Understanding_Linking

나는 성공없이 시도 할 수 있습니다. 현재 수동으로 주먹 메모리 영역을 채워야합니다. 코드 마녀의 일부를 검색하기가 어렵습니다 앞으로는 변경되지 않고 첫 번째 메모리 영역을 완전히 채우고 채울 것입니다.

GNU 링커에서 그런 기능이 구현 되었습니까? 아니면 누구든지 더 좋은 아이디어가 있습니까 어떻게이 문제를 해결할 수 있습니까?

답변

1

가장 쉬운 방법은 (아마도 유일한 방법은) 섹션을 두 섹션으로 분할 한 다음 첫 번째 메모리 영역에 한 섹션을 할당하고 두 번째 섹션을 두 번째 메모리 영역에 할당하는 것이라고 생각합니다.

당신은 아마 이미 보았다하지만 링크 스크립트의 매우 간결한 설명입니다 : http://www.math.utah.edu/docs/info/ld_3.html

+0

나는 이것이 아주 오래된 질문 알지만, 수동으로하지 않고 두 개의 섹션으로 분할 할 수있는 좋은 방법이 X를 섹션 A에 매핑하고 Y를 섹션 B로 매핑 하시겠습니까? 전체 프로그램을 .text, .data 및 .bss 형식으로 배치하는 세 개의 인접하지 않은 메모리가 있으며 분할 된 상태로 유지 관리하는 데 도움이됩니다. – rjp

관련 문제