isymexport를 사용하여 한 프로젝트에서 다른 프로젝트로 심볼을 내보냅니다.

기술노트 95375

아키텍처:

ARM

컴포넌트:

linker

업데이트:

2021-06-30 오전 3:21

소개

const 데이터를 외부 플래시(예: 외부 플래시)에 배치하고 나중에 별도의 프로젝트의 데이터를 사용하려고 합니다. 본 기술 노트에 설명된 방법을 사용하면 상수 데이터의 심볼 이름을 사용할 수 있습니다(즉, 절대 배치된 심볼을 사용하지 않고 주소를 사용하여 데이터에 액세스할 필요가 없음). 또한 연속 데이터를 플래시에 다시 다운로드하고 프로젝트에서 재구축할 필요가 없습니다.

해결방법

IAR Absolute Symbol Exporter, "isymexport"를 사용합니다. 다음 단계별 지침을 수행하시기 바랍니다:

A1. 연속 데이터 라이브러리(const data library)를 위한 프로젝트를 생성하십시오.

A2. 타겟 디바이스를 구성 (예: Cortex-M3).

A3. 프로그램과는 별도의 주소 범위를 사용하도록 링커를 구성합니다.

A4. General Options -> Library Configuration -> Library: 에서 None 을 선택

A5. Linker -> Library options. 옵션의 기본 프로그램 진입점(default program entry)을 기존의 심볼(existing symbol)로 설정하십시오.

A6. Build Actions -> Post-build 에 라이브러리 심볼 내보내기 명령줄을 추가합니다:

$TOOLKIT_DIR$\bin\isymexport.exe "$TARGET_PATH$" "$PROJ_DIR$\const_lib.symbols" --edit "$PROJ_DIR$\const_data_lib.edit"

 

B1. 프로그램에 대한 프로젝트를 생성.

B2. 타겟 디바이스를 구성 (예: Cortex-M3).

B3. 프로그램과는 별도의 주소 범위를 사용하도록 링커를 구성합니다.

B4. Options -> Linker -> Library -> Additional libraries 에서 내보냈던 라이브러리 심볼을 추가합니다:

$PROJ_DIR$\const_lib.symbols

 

C1. ARM flash loader를 위한 IAR Embedded Workbench가 const data 가 위치한 flash를 지원하는 경우, const data library를 타겟 디바이스에 (한번이라도 필요한 경우) Options -> Debugger -> Download extra image -> Path에 출력 파일을 추가하는 것으로 다운로드 할 수 있습니다:

$PROJ_DIR$\Debug\Exe\const_lib.out

참고사항

  • 다음 예제를 확인하시기 바랍니다: Example project (ARM 8.11).
  • 설정해야 하는 다양한 프로젝트 옵션을 보여주는 다음 스크린샷도 참고하시기 바랍니다.
  • 라이브러리에서 const 데이터 변수는 __root로 표시되어 링크에서 데이터를 강제로 보관합니다.
  • 심볼은 "const_lib.symbols" 파일에 저장됩니다. 사용할 엄격한 이름/확장자명은 없으며 ".symbols" 는 예일 뿐입니다

모든 제품 이름은 해당 소유자의 상표 또는 등록 상표입니다.

죄송하지만, 당사 사이트에서는 Internet Explorer를 지원하지 않습니다.보다 편안한 사이트를 위해 Chrome, Edge, Firefox 등과 같은 최신 브라우저를 사용해 주시길 부탁드립니다.