2.1.109. --split_ldm

이 옵션은 LDMSTM 명령어를 두 개 이상의 LDM 또는 STM 명령어로 분할하도록 컴파일러에 지시합니다.

--split_ldm을 선택한 경우 LDM 또는 STM 명령어에 대한 레지스터 전송의 최대 수는 다음과 같이 제한됩니다.

이러한 제한 이상의 레지스터 전송이 필요한 곳에서는 여러 개의 LDM 또는 STM 명령어가 사용됩니다.

Note

이 옵션은 향후 제공되지 않을 예정이며 다음 릴리스에서 제거됩니다.

사용법

--split_ldm 옵션을 사용하여 다음과 같은 ARM 시스템에서 인터럽트 지연을 줄일 수 있습니다.

  • 캐시 또는 작성 버퍼가 없는 시스템(예: 캐시가 없는 ARM7TDMI)

  • 대기 상태가 없는 32비트 메모리를 사용하는 시스템

Note

--split_ldm을 사용하면 코드 크기가 커지고 성능이 약간 저하됩니다.

제한

  • --split_ldm을 사용할 경우 인라인 어셈블러 LDMSTM 명령어는 기본적으로 분할됩니다. 그러나 이후에 컴파일러에서 분할된 명령어를 LDM 또는 STM으로 다시 결합할 수 있습니다.

  • VFP FLDM 또는 FSTM 명령어는 --split_ldm을 사용할 경우 분할되지 않습니다.

  • --split_ldm을 사용하여 코드를 빌드해도 일부 타겟 하드웨어는 혜택을 받지 못합니다. 예를 들면 다음과 같습니다.

    • 캐시된 시스템 또는 작성 버퍼가 있는 프로세서의 경우 별다른 이점이 없습니다.

    • 메모리 대기 상태가 0이 아닌 시스템 또는 주변 장치가 느린 시스템의 경우 이점이 없습니다. 이런 시스템의 인터럽트 지연은 가장 느린 메모리 또는 주변 장치 액세스에 필요한 주기 수에 따라 결정됩니다. 일반적으로 이것은 다중 레지스터 전송으로 발생한 지연보다 훨씬 깁니다.

추가 참고

Copyright © 2007 ARM Limited. All rights reserved.ARM DUI 0348AK
Non-Confidential