Hardware Interrupts
Thread Scheduling 4-23
Example 4-3. Constructing a Minimal ISR on C6000 Platform
Example 4-4. HWI Example on C55x Platform
;
; ======== myclk.s62 ========
;
.include "hwi.h62" ; macro header file
IEMASK .set 0
CCMASK .set c62_PCC_DISABLE
.text
;
; ======== myclkisr ========
;
global _myclkisr
_myclkisr:
; save all C run-time environment registers
HWI_enter C62_ABTEMPS, C62_CTEMPS, IEMASK, CCMASK
b _TSK_itick ; call TSK itick (C function)
mvkl tiret, b3
mvkh tiret, b3
nop 3
tiret:
; restore saved registers and call DSP/BIOS scheduler
HWI_exit C62_ABTEMPS, C62_CTEMPS, IEMASK, CCMASK
.end
;
; ======== _DSS_isr ========
;
_DSS_isr:
HWI_enter C55_AR_T_SAVE_BY_CALLER_MASK,
C55_ACC_SAVE_BY_CALLER_MASK,
C55_MISC1_SAVE_BY_CALLER_MASK,
C55_MISC2_SAVE_BY_CALLER_MASK,
C55_MISC3_SAVE_BY_CALLER_MASK,
0FFF7h,0
; macro has ensured āCā convention,
; including SP alignment!
call _DSS_cisr
HWI_exit C55_AR_T_SAVE_BY_CALLER_MASK,
C55_ACC_SAVE_BY_CALLER_MASK,
C55_MISC1_SAVE_BY_CALLER_MASK,
C55_MISC2_SAVE_BY_CALLER_MASK,
C55_MISC3_SAVE_BY_CALLER_MASK,
0FFF7h,0