After some investigation into the NVIC I conclude the following.
If an new interrupt has a higher priority then the interrupt that is currently being processed, it interrupts the current flow. (Nesting).
If the IRQ is dissabled however, no matter what the priority of the incoming interrupt is, it is pended.
If a new interrupt has a lower priority then the interrupt that is currently being processed, it is pended.
You can set priority of individual interrupts or to an entire group of interrupts (of which there are 4).
Priority is given to the lowest interrupt number if priorities are the same.
So interrupts are not silently discarded (as long as the same interrupt doesn't fire multiple times).
Am I right?
Thanks in advance!
Melchior
I've read some old posts explaining that all Tickers use the same internal hardware timer and they all have the same priority:
I am using several Tickers in my program and want to give them highest priority over everything else.
So for instance, in the following code the OneMilliSecondTimer is called every one millisecond. The ReceiveMessagesCAN2HS is called every time a message comes in on the CAN bus. As you can see in the scope trace picture below, when the program is in the ReceiveMessageCAN2HS routine (top yellow trace) the Ticker function is not called (bottom purple trace).