10.07.2015 Views

PDF version - ARM Information Center

PDF version - ARM Information Center

PDF version - ARM Information Center

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

프로세서 예외 처리IOPort1Active첫 번째 포트에서 인터럽트가 발생했는지 여부를 나타내는비트 마스크입니다. 그렇지 않으면 두 번째 포트에서 인터럽트가 발생했다고 가정합니다.IOPort1, IOPort2 읽으려는 두 개의 데이터 레지스터에 대한 오프셋입니다. 데이터 레지스터를 읽으면 해당 포트의 인터럽트가 지워집니다.R9R10첫 번째 포트에서 데이터를 전송할 대상 메모리 위치를 가리킵니다.두 번째 포트에서 데이터를 전송할 대상 메모리 위치를 가리킵니다.R11, R12 전송할 마지막 주소를 가리킵니다. 이 주소는 첫 번째 포트의경우 R11이고 두 번째 포트의 경우 R12입니다.일반적인 전송을 처리하는 전체 시퀀스에서는 아홉 개의 명령어를 사용합니다.조건부 복귀 다음에 배치되는 코드는 전송이 완료되었다는 신호를 보내는 데 사용됩니다.예제 6-5 FIQ 처리기LDR sp, [R8, #IOStat] ; Load status register to find which port; caused the interrupt.TST sp, #IOPort1ActiveLDREQ sp, [R8, #IOPort1] ; Load port 1 data.LDRNE sp, [R8, #IOPort2] ; Load port 2 data.STREQ sp, [R9], #4 ; Store to buffer 1.STRNE sp, [R10], #4 ; Store to buffer 2.CMP R9, R11 ; Reached the end?CMPLE R10, R12 ; On either channel?SUBSNE pc, lr, #4; Return; Insert transfer complete code here.로드 명령어를 로드 바이트 명령어로 대체하면 바이트 전송을 수행할 수 있습니다. 조건부 로드 명령어와 조건부 저장 명령어의 주소 모드를 서로 바꾸면 메모리에서 I/O 장치로의 전송을 수행할 수 있습니다.6-16 Copyright © 2002-2008 <strong>ARM</strong> Limited. All rights reserved. <strong>ARM</strong> DUI 0203IKNon-ConfidentialUnrestricted Access

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!