+
+ // XXX FAKE WRITE
+ if ( ctx->state == DFU_STATE_dfuMANIFEST )
+ {
+ uint8_t data[] = { 0x10, 0x20, 0x30, 0x40 };
+ flash_program_longword((uintptr_t)&_app_rom, data);
+ }
+ /*
+
+ uint32_t *position = &_app_rom + 0x100;
+ for ( ; position < &_app_rom + 0x200; position++ )
+ //for ( ; position < &_app_rom + 0x800; position++ )
+ {
+ if ( *position != 0xFFFFFFFF )
+ {
+ while( 1 )
+ {
+ GPIOA_PTOR |= (1<<5);
+ for (uint32_t d = 0; d < 7200000; d++ );
+ }
+ }
+ }*/
+
+ // Check to see if vector table was flashed correctly
+ // Return a flash error if it was not
+ if (_app_rom == 0xffffffff && ctx->state == DFU_STATE_dfuMANIFEST)
+ st.bStatus = DFU_STATUS_errPROG;
+ //}
+ /*
+ if (ctx->state == DFU_STATE_dfuMANIFEST)
+ {
+ uint8_t *addr = (uint8_t*)_app_rom;
+ //while (*(addr++) != 0x80);
+ //st.bStatus = DFU_STATUS_errPROG;
+ st.bStatus = (uint8_t)((uint32_t)(&_app_rom) >> 16);
+ }
+ */
+