2012-05-17 2 views
3

Ada 인터럽트 핸들러를 사용할 때 코드 작업에 필요한 특정 작업을 지금까지 격리했습니다.Ada 인터럽트 핸들러

사용 Ada.Interrupts :

protected Int_Handler is --a protected object to handle interrupts 
    procedure Handler_1; --A procedure which handles interrupts from your first device (with a body, of course) 
    pragma Interrupt_Handler (Handler_1); --To tell the compiler this is an interrupt handler 
    --Later in the program: 
begin 
    Attach_Handler (Int_Handler.Handler_1'access, Serial_1); 

는 가정 내가 여기에 추가해야 다른 인터럽트 관련 코드가,이 모두 정확하고 나는 레지스터에 인터럽트를 활성화 한? 특히, 레지스터와 직접적으로 상호 작용하여 핸들러 코드를 '링크'할 필요가 있습니까? 아니면 레지스터의 레코드 표현을 설정하고, 필요한 설정을 직접 출력하고, 찢을 수 있습니까?

감사합니다.

+0

뭐든지 정의 구현에 의존하는 것입니다; "tick-address"(레지스터 및 하드웨어 인터럽트)는 전적으로 플랫폼에 따라 다릅니다. IMHO ... – paulsm4

+0

@ paulsm4 : 정의 : "최적화, 목록 제어 등에 대한 지침을 제공하는 언어 정의 pragma가 있습니다. 구현은 추가 (구현 정의) pragma를 지원할 수 있습니다." [Ada LRM 2.8] (http://www.adaic.org/resources/add_content/standards/05rm/html/RM-2-8.html) –

답변