[t:/]$ 지식_

PSPR / PXA255, 일반적인 Sleep

2005/07/06

맨날 보는 Sleep. 실제로 Idle 외에 잘 써본 적은 없지만... 정리.

PSPR 레지스터에 복귀 번지를 박아놓고 이 값이 있는 가를 슬립아웃때 체크하여 복귀루틴을 짠다. 이를테면 램에다가 레지스터 상태들을 싸그리 저장하고 PSPR 에 복귀 번지를 저장하고 슬립으로 들어간다.

기능 레지스터가 아닌 r0.. 내부 레지스터들은 어셈영역에서 저장한다.

슬립 아웃 (일반적인 리셋시) PSPR 이 0 이 아니라면 복귀 번지가 있는 것으로 판단하여 그 번지로 뛴다.

여기는 슬립 아웃에 의한 시스템 복귀로 판단하여 (사실상 코드가 램에서 셀프리프레쉬에 의하여 살아있다는 스스로의 증거이므로) 램에서 레지스터들을 다시 복구해주고 램이 훼손되지 않았는가 간단한 체크를 한 후 시스템을 재개하면 된다.









[t:/] is not "technology - root". dawnsea, rss