2017-09-21 15 views
2

ARMv7A mcu (Cortex-A8)에 대해 인터럽트를 활성화 하려다가 시도 할 때 사용자 모드에서 CPSR 레지스터의 I 비트를 변경할 수 없다는 것을 알았습니다. 나는 조금 주위를 읽었고 이것은 내가 USR 모드에 있기 때문에 일어나는 것처럼 보인다.ARMV7A 프로세서 용 사용자 모드에서 인터럽트 활성화

SWI를 호출하고 SWI 처리기에서 SPSR을 변경하는 유일한 해결책은 무엇입니까?

+4

프로세서의 I 비트를 변경하려면 권한 모드에 있어야합니다. – Gaurav

답변

1

실제로 사용자 모드에서는 인터럽트를 사용하거나 사용하지 않도록 설정할 수 없습니다. 권한 모드에서만 수행 할 수 있습니다.

인터럽트가 비활성화 된 상태에서 사용자 모드로 전환하는 것은 드문 경우입니다. 일반적으로 인터럽트가 비활성화 된 코드는 매우 적은 양으로 실행됩니다. 인터럽트가 다음 인터럽트 처리를 지연시키기 때문에. 사용자 모드에서 인터럽트 처리기의 일부를 실행하는 경우 먼저 인터럽트를 다시 활성화하기 전에 수행해야 할 작업을 수행 한 다음 사용자 모드로 전환하십시오.