Index: firmware/App/Services/Reservoirs.c =================================================================== diff -u -rb607a94701f5844f2e850783239d1cb2df87fcd5 -r09cde48e11d32be58fe9e1e7c88ada33cff664f5 --- firmware/App/Services/Reservoirs.c (.../Reservoirs.c) (revision b607a94701f5844f2e850783239d1cb2df87fcd5) +++ firmware/App/Services/Reservoirs.c (.../Reservoirs.c) (revision 09cde48e11d32be58fe9e1e7c88ada33cff664f5) @@ -499,8 +499,12 @@ *************************************************************************/ void setHDOperationMode( U32 mode, U32 subMode ) { + // thread protection for queue operations + _disable_IRQ(); hdModes.hdMode = (HD_OP_MODE_T)mode; hdModes.hdSubMode = subMode; + // release thread protection + _enable_IRQ(); } /*********************************************************************//** @@ -514,7 +518,8 @@ *************************************************************************/ void getHDOperationMode( HD_MODE_SUB_MODE_T* mode ) { - memcpy( mode, &hdModes, sizeof( HD_MODE_SUB_MODE_T ) ); + mode->hdMode = hdModes.hdMode; + mode->hdSubMode = hdModes.hdSubMode; } /*********************************************************************//**