2013-01-25 2 views
1

ARM AAPCS (ARM EABI) 읽기, 발견 : 레지스터 r9의 역할은 플랫폼에 따라 다릅니다. 가상 플랫폼은이 레지스터에 역할을 할당 할 수 있으며이 사용법을 문서화해야합니다. 예를 들어 위치 독립적 인 데이터 모델에서이를 정적 기반 (SB)으로 지정하거나 스레드 로컬 저장소가있는 환경에서 스레드 레지스터 (TR)로 지정할 수 있습니다. 이 레지스터를 사용하려면 보유한 값이 모든 호출에서 지속되어야합니다. 이러한 특수 레지스터가 필요없는 가상 플랫폼은 r9를 추가 호출 수신자 저장 변수 레지스터 v6으로 지정할 수 있습니다.ARM - r9 레지스터를 armcc로 유지하는 방법

내 특정 항공 전자 공학 선제 OS의 PID 홀더로 r9를 사용하고 싶습니다.하지만이를 보존하는 방법을 알 수는 없습니다. armcc C 컴파일러는 항상 가변 레지스터로 사용하므로 항상 값으로 사용됩니다. 적용 가능한 SW를 통해 변경됩니다.

아이디어가 있으십니까? armcc로 가능합니까? GCC? DIAB? ...

도움 주셔서 감사합니다. GCC를 들어, -ffixed-R9는 사용할 수 :

감사

크리스토프는

답변

0

이 시도 할 수 있습니다. GCC online documentation

그리고 윈드 리버 디아 브 컴파일러

:

"의 #pragma global_register 식별자 = 등록"

은 (모든 파일에 포함)

관련 문제