/* Sends the command to read either a 16- or 32-bit data word from remote CPU system address to a write-protected local CPU address. */
uint16_t IPCLtoRDataRead_Protected(volatile tIpcController *psController, uint32_t ulAddress, void *pvData, uint16_t usLength, uint16_t bBlock, uint32_t ulResponseFlag)
/* Sends the command to read either a 16- or 32-bit data word from remote CPU system address to a write-protected local CPU address. */
uint16_t IPCLtoRDataRead_Protected(volatile tIpcController *psController, uint32_t ulAddress, void *pvData, uint16_t usLength, uint16_t bBlock, uint32_t ulResponseFlag)
{
    uint16_t status;
    tIpcMessage sMessage;
    sMessage.ulcommand = IPC_DATA_READ_PROTECTED;
    sMessage.uladdress = ulAddress;
    sMessage.uldataw1 = (ulResponseFlag & 0xFFFF0000)|(uint32_t)usLength;
    sMessage.uldataw2 = (uint32_t)pvData;
    IpcRegs.IPCSET.all |= (ulResponseFlag & 0xFFFF0000);
    status = IpcPut (psController, &sMessage, bBlock);
    return status;
}