인라인 어셈블리에서 전역 변수를 사용하려고합니다.Greenhills 컴파일러의 인라인 어셈블리에서 전역 변수를 사용하는 방법?
asm ("LDR R0, g_TsInitStackPointerAddress");
여기서 g_TsInitStackPointerAddress는 전역 변수입니다. 컴파일 중 오류를 표시하지 않습니다.
[elxr]의 범위의 출력 (에러) 재배치 타입 R_ARM_POOL을 수행하는 동안 (부호) 0x1001326 12 비트에 맞지 않았다 (4)에서 g_TsInitStackPointerAddress + 0x0으로 ((공통) + 0xb6)에
여기 내 함수 이름 InitStack입니다 0x10013e0 InitStack +에서가 0x20 (drv.o (는 .text) + 0x1a4)를 해결하고 이름은 DRV입니다 파일. 오류를 이해할 수 없습니다. 사용
프로세서 : 코어 텍스 R4
컴파일러 : ("DCD g_TsInitStackPointerAddress g_TsInitStackPointerAddress_a"); 그린힐
에서 그 변수를 할게요 그 함수 내에서이 문장을 지정 그것은 당신의 변수가 너무 작은 것 같다? R0 레지스터의 크기와 변수의 크기를 확인해야합니다. – RedX