I am a little confused about what HAL_INTERRUPT_ACKNOWLEDGE is intended to do. The reference manual for eCos says that it is used if the interrupt controller requires you to acknowledge an interrupt. The reason I am confused is that an interrupt service routine for a device may need to clear a status flag in a peripheral status register even if there is no interrupt controller. Is the intent that each interrupt service routine handle this clearing of the flag in the peripheral status register on its own, in addition to calling HAL_INTERRUPT_ACKNOWLEDGE for handling anything that has to do with the interrupt controller? It seems this is the case, but why is there this special function in the HAL for handling the interrupt controller acknowledgement? Why isn't this just handled directly by each device's interrupt service routine without going through this interface?
The hal_clock_reset() function makes it quite clear to me that each ISR handles any status flags itself, because this is the only way the ISR for the real time clock could be made generic as it is in the kernel by calling hal_clock_reset() in addition to calling HAL_INTERRUPT_ACKNOWLEDGE(). Thanks. -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
