Apologizing for a naïve question... but I cannot figure out from this description, how the NVIC knows is a particular interrupt input level or pulse?
From the description, it looks like the NVIC detects only the level and latches the request.
Then, if the NVIC input goes low before handling of the request completes, it is considered "pulse" (either it goes low by itself, or the handler clears it).
If the line still is high, the request is re-latched and the loop continues.
Is this correct, or are there other documents to clarify this?
Please see https://community.arm.com/support-forums/f/armds-forum/896/cortex-nvic-interrupt-level-and-pulse-type-by-software.