Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

맛만 볼게요

[TMS320C6748_LCDK] 중첩 인터럽트 본문

임베디드/L13x_C674x

[TMS320C6748_LCDK] 중첩 인터럽트

여기우리집 2023. 3. 3. 10:27

Isr() {

    unsigned int saveIRP = 0;
    unsigned char savePGIE = 0;
    unsigned int saveITSR = 0;

 

    // IRP 백업
    saveIRP = IRP;

    // PGIE 백업
    savePGIE = (CSR & 0x2);

    // ITSR 백업
    saveITSR = ITSR;
//    IntGlobalEnable();
    _enable_interrupts();

    다른 isr 혹은 isr을 사용하는 루틴();

    _disable_interrupts();
//    IntGlobalDisable();

    // PGIE 복구
    CSR |= (savePGIE & 0x2);

    // ITSR 복구
    ITSR = saveITSR;

    // IRP 복구
    IRP = saveIRP;

}

 

 

인터럽트 잠시 멈출 시

레지스터 백업 후 global enable 후

다른 인터럽트 실행 되어야 함.

 

멈춘 인터럽트 resume 시

반드시 global disable 후

레지스터 복구 해야 함.

Comments