/** Handler for the CMD_LOAD_ADDRESS command, loading the given device address into a * global storage variable for later use, and issuing LOAD EXTENDED ADDRESS commands * to the attached device as required. */ static void V2Protocol_LoadAddress(void) { Endpoint_Read_Stream_BE(&CurrentAddress, sizeof(CurrentAddress), NO_STREAM_CALLBACK); Endpoint_ClearOUT(); Endpoint_SelectEndpoint(AVRISP_DATA_IN_EPNUM); Endpoint_SetEndpointDirection(ENDPOINT_DIR_IN); if (CurrentAddress & (1UL << 31)) MustLoadExtendedAddress = true; Endpoint_Write_Byte(CMD_LOAD_ADDRESS); Endpoint_Write_Byte(STATUS_CMD_OK); Endpoint_ClearIN(); }
/** Handler for the CMD_LOAD_ADDRESS command, loading the given device address into a * global storage variable for later use, and issuing LOAD EXTENDED ADDRESS commands * to the attached device as required. */ static void V2Protocol_LoadAddress(void) { Endpoint_Read_Stream_BE(&CurrentAddress, sizeof(CurrentAddress), NULL); Endpoint_ClearOUT(); if ( use_libusb == true ) { Endpoint_SelectEndpoint(AVRISP_DATA_IN_EPNUM__LIBUSB); } else { Endpoint_SelectEndpoint(AVRISP_DATA_IN_EPNUM__DEFAULT); } Endpoint_SetEndpointDirection(ENDPOINT_DIR_IN); if (CurrentAddress & (1UL << 31)) MustLoadExtendedAddress = true; Endpoint_Write_8(CMD_LOAD_ADDRESS); Endpoint_Write_8(STATUS_CMD_OK); Endpoint_ClearIN(); }