tree 580eac6074c975944902e3b7c1075057262588df
parent 55da9591c02546e6b189a8dadf3923e7ef80bd1f
author Simon Beaudoin <simon.beaudoin.0935@gmail.com> 1597077999 -0400
committer GitHub <noreply@github.com> 1597077999 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJfMXnvCRBK7hj4Ov3rIwAAdHIIACnACtN80kjVh3bkn9Zg/Jzo
 5UEAiFSINf0Gh6l9he/4weajXzDj81eZCOU2+GEv16yDA3Kv2P02ch/3W7+rkLb3
 IMUS301uO47HDKG/ltGnUfgFnWnSQlQA75KvuXbI2mFOmqMIw6UDHP9qmoUzIg4/
 BI3pP5xR/IPLoh2/3LCKX41vQVGtqDBdu+LtN/ACPJe9O49dLPyP2awhnHnv9RuO
 AIXw01Ydk76NGDlr9ZEZr3MPmaWNk+SP9KzybT1ppmTbAgofV0nKi8Sqv7k35nWV
 x6XzsboXchUO6dgaDPMEvqio+Di+Fukd2W26O+lEMSCYlChB6M3R2KYE+0UAMEM=
 =Mu2k
 -----END PGP SIGNATURE-----
 

Fix race condition when tracing is enabled (#95)

* Update port.c

I discovered a very snicky and tricky race condition scenario when integrating tracealyzer code into our project.

A little background  on CortexR5 : When the IRQ line (comming from the interrupt controller, to which every peripheral IRQ lines connect) of the processor rises and the IRQ Enable bit in the status register of the CPU permits it, the CPU traps into interrupt mode. Several things happen. First, the CPU finishes the instruction it was performing. Second, it places the content of the CPSR register into the SPSR_irq register. And third, the mode of the CPU is changed to IRQ_Mode and /!\ THE IRQ ENABLE BIT IN CPSR_irq IS AUTOMATICALLY CLEARED /!\. The reason is to ensure that upon landing into IRQ code, we find ourselves automatically in a critical section because we cannot be interrupted again because the bit is cleared. The programmer can, if he wants, re-enable IRQs inside IRQ code itself to allow interrupt nesting. But it has to be wanted and meditated. 


Now, inside portASM.S, at the end of 'FreeRTOS_IRQ_Handler' assembly function, a call to 'vTaskSwitchContextConst' is made if the variable 'ulPortYieldRequired' was set by someone while executing the interrupt. Before branching to that function, a 'CPSID	i' instruction was placed to ensure that interrupts are disabled in case someone re-enabled it. Inside 'vTaskSwitchContext', there is the macro 'traceTASK_SWITCHED_OUT' that gets populated when tracing is enabled. 

The bug is right there.. If the macro is populated and inside that macro there is a matching call to 'ulPortSetInterruptMask' and 'vPortClearInterruptMask', a race condition can occure is there is a OS Tick timer interrupt waiting at the interrupt controller's door. Upon calling 'vTaskSwitchContext', the interrupts are not masked in the interrupt controller, the only barrier against the CPU servicing that tick interrupt while already performing the function is that the IRQ Enable bit cleared. 'ulPortSetInterruptMask' 
does what's its supposed to do, but doesn't take into account the IRQ Enable bit in CPSR. Wheter or not the bit was cleared, the function sets it at the end. When calling the matching 'vPortClearInterruptMask', the function clears the interrupt mask in the interrupt controller. Because the IRQ Enable bit (that was cleared) has been set no matter what in 'ulPortSetInterruptMask', the CPU services the OS Tick Interrupt right away. 

The bug is there : instead of completing the 'vTaskSwitchContext' function, the CPU re-enters the switch context path right after 'traceTASK_SWITCHED_OUT' thus corrupting the CPU state and eventually triggering either an undefined instruction, data or instruction abort.

* Update port.c

Error on my part, this is the right inline asm code to retreive CPSR register

* Update port.c

Forgot an * while writing comment..