34 #include "usbd_mscuser.h"
36 #include "usbd_core.h"
38 #include "usbd_mscuser.h"
39 #include "usbd_rom_api.h"
67 #define USBMSGBUFFSIZE 1024
89 #define USBROMBUFFSIZE 0x2000
166 memmove(ptr, data, bytes);
174 char *ptr = (
char *) buffer;
175 int strbytes, rsvd,
bytes;
305 bool checked =
false;
309 usbDebug(
"DFU Utility and programming algorithm have different versions\n");
318 uint8_t *bwPollTimeout)
342 *pBuff = (uint8_t *)
dfuIn;
345 else if (length != 0) {
348 addr = pOutHdr->
addr;
349 size = pOutHdr->
size;
393 *pBuff = (uint8_t *)
dfuIn;
397 *pBuff = (uint8_t *)
dfuIn;
406 uint8_t *pBuf = (uint8_t *) *pBuff;
435 ptrCurr = (uint8_t *)
dfuOut;
450 inPktSizeIdx += length;
472 inPktSizeIdx += length;
489 usbDebug(
"Bad programming algorithm state\n");
491 length =
dfu_rd(block_num, pBuff, length);
500 USB_INTERFACE_DESCRIPTOR *pIntfDesc,
513 if ((pIntfDesc == 0) ||
519 dfu_param.
intf_desc = (uint8_t *) pIntfDesc;
540 USB_INTERFACE_DESCRIPTOR *pIntfDesc;
547 if ((
LPC_SCU->SFSUSB & (1 << 4)) == 0) {
574 NVIC_EnableIRQ(USB0_IRQn);
575 NVIC_EnableIRQ(USB1_IRQn);
612 sprintf(
tmpStr,
"Number of memory regions : %d\n", dfuprog_regions->
num_regions);
614 for (i = 0; i < dfuprog_regions->
num_regions; i++) {
615 sprintf(
tmpStr,
"Region #%d @ 0x%p, size %p bytes\n", i,
703 else if ((progSize < dfuprog_regions->buffer_size) ||
718 NVIC_DisableIRQ(SysTick_IRQn);
727 NVIC_DisableIRQ(SysTick_IRQn);
759 while (*tmp !=
'\0') {
787 usbDebug(
"LPC18xx/43xx DFUSec programming API tool\n");
788 usbDebug(
"Build date: " __DATE__
":" __TIME__
"\n");