The difference between an embos interrupt and a zero latency interrupt are the interrupt priority level and the usage of OS _enterinterrupt ()/os_leaveinterrupt () or Os_enternestableinterrupt ()/os_leavenestableinterrupt ().
Example of an embos interrupt function:
void Os_com_isrhandler (void int Dummy; Os_enternestableinterrupt (); Dummy = Us_rhr; // call Embos API functions here Span style= "color: #000000;" > Os_leavenestableinterrupt ();} void Uart_init (void * os_arm_isrsetprio ( 140); Set prio > Os_arm_enableisr (Isr_id_usart);}
Example of a Zero latency interrupt function:
void Os_com_isrhandler (void) { int Dummy; = us_rhr; // never call Embos API functions here }void uart_init (void) { Os_arm_installisrhandler (Isr_id_usart, (OS_ISR _handler*) os_com_isrhandler); Os_arm_isrsetprio ( ); Set Prio < Os_arm_enableisr (Isr_id_usart);}
The difference between an embos interrupt and a zero latency interrupt