| |||
| Home > 기본 링커 기능 사용 > 명령 행 옵션을 사용하여 단순 이미지 만들기 > 유형 2, 로드 영역 하나와 연속되지 않는 실행 영역 | |||
이 유형의 이미지는 하나의 로드 영역과 실행 뷰에 있는 세 개의 실행 영역으로 구성됩니다. RW 실행 영역은 RO 실행 영역과 연속되지 않습니다. 이 방식은 예를 들어, 시작할 때 RW 데이터가 ROM에서 RAM으로 복사되는 ROM 기반 임베디드 시스템(Figure 3.4 참조)에 사용됩니다.
이 유형의 이미지에는 다음 명령을 사용하십시오.
armlink --ro-base 0x0 --rw-base 0xA000
로드 뷰에서 단순 로드 영역은, 예를 들어 ROM에 연속적으로 배치된 RO 및 RW 출력 섹션으로 구성됩니다. 여기서 RO 영역은 루트 영역이며 RW 영역은 루트 영역이 아닙니다. 로드 타임에 ZI 출력 섹션은 없습니다. 이것은 런타임에 만들어집니다.
실행 뷰에서 첫 번째 실행 영역에는 RO 출력 섹션이 포함되고 두 번째 실행 영역에는 RW 및 ZI 출력 섹션이 포함됩니다.
RO 출력 섹션이 포함된 영역의 실행 주소는 로드 주소와 같으므로 RO 출력 섹션은 이동할 필요가 없습니다. 즉 RO 출력 섹션은 루트 영역입니다.
RW 출력 섹션이 포함된 영역의 실행 주소는 로드 주소와 다르므로 RW 출력 섹션은 로드 주소에서(단일 로드 영역에서) 실행 주소로(두 번째 실행 영역으로) 이동됩니다. ZI 실행 영역과 ZI 출력 섹션은 RW 실행 영역과 연속적으로 배치됩니다.
armlink 옵션인 --ro-base 를
사용하여 RO 출력 섹션의 로드 및 실행 주소를 지정할 수 있고, address--rw-base 를
사용하여 RW 출력 섹션의 실행 주소를 지정할 수 있습니다. exec_address--ro-base 옵션을
사용하여 주소를 지정하지 않으면 armlink는 기본값 0x8000을
사용합니다. 임베디드 시스템의 경우 --ro-base 값에 일반적으로 0x0이
사용됩니다. --rw-base 옵션을 사용하여 주소를 지정하지 않으면 유형 1, 로드 영역 하나와 연속되는 실행 영역에서와 마찬가지로 기본적으로
RO 바로 위에 RW가 배치됩니다.
RW 및 ZI 출력 섹션의 실행 영역은 로드 영역을 오버로드할 수 없습니다.