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.
portSAVECONTEXT ; Save the context of the current task.
call _vTaskSwitchContext ; Call the timer tick function.
cmpw ax, #0x00
call _vTaskSwitchContext ; Call the scheduler to select the next task.
portRESTORECONTEXT ; Restore the context of the next task to run.
void vTaskSwitchContext( void )
My environment is as follows:
IAR EW for RL78 Version 2.21.2
IAR EW Version 188.8.131.5269
FreeRTOS Version 8.2.3
RTSDemo - YRPBRL78G13 (YRPBRL78G13 is #defined).
Where did you get that code from? When I look in the FreeRTOS
distribution for the IAR RL78 port I find the following code:
; FreeRTOS tick handler. This is installed as the interval timer interrupt
portSAVE_CONTEX ; Save the context of the current task.
call xTaskIncrementTick ; Call the timer tick function.
cmpw ax, #0x00
call vTaskSwitchContext ; Call the scheduler to select the next task.
portRESTORE_CONTEXT ; Restore the context of the next task to run.
Thanks for the prompt response!!
It appears that I accidentally changed the function name, xTaskIncrementTic, with an Edit operation.
Sorry to bother you , I should have compared with the original source before posting the original topic