/* Writes a 16/32-bit data word to a write-protected remote CPU system address */
uint16_t IPCLtoRDataWrite_Protected(volatile tIpcController *psController, uint32_t ulAddress, uint32_t ulData, uint16_t usLength, uint16_t bBlock, uint32_t ulResponseFlag)
/* Writes a 16/32-bit data word to a write-protected remote CPU system address */
uint16_t IPCLtoRDataWrite_Protected(volatile tIpcController *psController, uint32_t ulAddress, uint32_t ulData, uint16_t usLength, uint16_t bBlock, uint32_t ulResponseFlag)
{
    uint16_t status;
    tIpcMessage sMessage;
    sMessage.ulcommand = IPC_DATA_WRITE_PROTECTED;
    sMessage.uladdress = ulAddress;
    sMessage.uldataw1 = ulResponseFlag |(uint32_t)usLength;
    sMessage.uldataw2 = ulData;
    status = IpcPut (psController, &sMessage, bBlock);
    return status;
}