What does error CIFX_DEV_FUNCTION_FAILED (0x800C0025) mean?
This error occurs if a device does not respond to the commands from the host. It usually happens when trying to execute commands that are transmitted to the firmware using the so-called change of state mechanism.
If a change of state action (e.g. CHANNEL_INIT) is transferred to the hardware the host needs to wait for the firmware to release the change-of-state handshake bits inside the dual-port memory, before a new change-of-state command can be executed.
Â
The following functions issue a change-of-state command to the firmware:
- xChannelBusState
- xChannelHostState
- xChannelReset
- xChannelDMAState
- xChannelConfigLock
Possible Reasons:
- Timeout passed to function is too short
- Firmware does not handle the change-of-state commands anymore (crashed or bug)
- In interrupt mode an interrupt may have been lost due to reading of handshake cells, when not allowed to (e.g. debugging output)
- (theoretical issue, never observed) When using the cifX Toolkit the implementation of OS_EnterLock/OS_LeaveLock might be wrong, resulting in wrong handshake flag synchronization and possible double toggling of handshake flags
Â