HS08 Port H register stacking problem
The pshh asm instruction should follow psha to be consistent with portRESTORE_CONTEXT and the pxPortInitialiseStack function’s context restore unstacking order. For example, this incorrect order caused obvious issues with the H:X register pair (HS08 parameter passing convention only) being passed the correct 16-bit pointer address through pvParameters during the first call to the created task after the scheduler is started. The code in question is shown below.
#define portSAVE_CONTEXT()
{
extern volatile void * pxCurrentTCB;
extern volatile unsigned portBASE_TYPE uxCriticalNesting;
__asm( "pshh" ); /* Save H context */
__asm( "lda uxCriticalNesting" );
__asm( "psha" );
HS08 Port H register stacking problem
Where did you get the code from? There is not an official HS08 port as far as I know. I cannot find the code you highlight in the download. ???
HS08 Port H register stacking problem
Here’s the link:
http://forums.freescale.com/attachments/freescale/8BITCOMM/2709/1/FreeRTOS_HC(S)
HS08 Port H register stacking problem
Can you write on that forum or to the author of the port?