The Tick Handler for the RL78 Demo version of FreeRTOS doesn’t appear to be correct i..e why would it be calling the vTaskSwitchContext() function for each tick (see the first call below)?? Secondly since vTaskSwitch function is declared as type ‘void’ it won’t be returning a function value however the code below is testing for a zero value return (cmpw ax, #0x00).
Or am I misssing something rather fundamental?? I appreciate all the insight that you can provide!!!!
This is installed as the interval timer interrupt handler.
RSEG CODE:CODE
vPortTickISR:
portSAVE
CONTEXT ; Save the context of the current task.
call _vTaskSwitchContext ; Call the timer tick function.
cmpw ax, #0x00
skz
call _vTaskSwitchContext ; Call the scheduler to select the next task.
portRESTORECONTEXT ; Restore the context of the next task to run.
reti
void vTaskSwitchContext( void )
My environment is as follows:
IAR EW for RL78 Version 2.21.2
IAR EW Version 7.4.1.4269
FreeRTOS Version 8.2.3
RTSDemo – YRPBRL78G13 (YRPBRL78G13 is #defined).