/* unlock the main FLASH operation * * @return 0 for success, -1 for error */ static int32_t flash_unlock(void) { fmc_unlock(); if (RESET != (FMC_CTL & FMC_CTL_LK)) { return -1; } return 0; }
/*! \brief initialize the HID device \param[in] pudev: pointer to USB device instance \param[in] config_index: configuration index \param[out] none \retval USB device operation status */ usbd_status_enum iap_init (void *pudev, uint8_t config_index) { /* initialize Tx endpoint */ usbd_ep_init(pudev, &(configuration_descriptor.HID_ReportINEndpoint)); /* initialize Rx endpoint */ usbd_ep_init(pudev, &(configuration_descriptor.HID_ReportOUTEndpoint)); /* unlock the internal flash */ fmc_unlock(); /* prepare receive Data */ usbd_ep_rx(pudev, IAP_OUT_EP, report_buf, IAP_OUT_PACKET); return USBD_OK; }