diff --git a/quad/xsdk_workspace/real_quad/src/hw_impl_zybo_i2c.c b/quad/xsdk_workspace/real_quad/src/hw_impl_zybo_i2c.c index 85bf4f0e06563a53965d10ae7bc45e012f8b12ee..751ae4ccf5bbc741def8cea9ea0e555be8f230f0 100644 --- a/quad/xsdk_workspace/real_quad/src/hw_impl_zybo_i2c.c +++ b/quad/xsdk_workspace/real_quad/src/hw_impl_zybo_i2c.c @@ -43,7 +43,11 @@ int XIicPs_MasterRecvPolled_ours(XIicPs *InstancePtr, u8 *MsgPtr, int XIicPs_SetupMaster(XIicPs *InstancePtr, int Role); int zybo_i2c_reset(struct I2CDriver *self) { + // ensure all required memory is allocated struct ZyboI2CState *state = self->state; + if (state == NULL) return -1; + if (state->inst == NULL) return -1; + if (state->busId > 1) return -1; int i2cID = state->busId; XIicPs *inst = state->inst;