move uf2 led blink fast to ghostfat

This commit is contained in:
hathach 2018-09-28 13:37:01 +07:00
parent 89c547f0cc
commit 50dec0e77a
2 changed files with 9 additions and 20 deletions

View File

@ -46,23 +46,11 @@
static uint32_t _fl_addr = FLASH_CACHE_INVALID_ADDR;
static uint8_t _fl_buf[FLASH_PAGE_SIZE] __attribute__((aligned(4)));
static bool _first_flush = true;
void flash_flush(void)
{
if ( _fl_addr == FLASH_CACHE_INVALID_ADDR ) return;
if ( _first_flush )
{
_first_flush = false;
// disable softdevice
sd_softdevice_disable();
led_blink_fast(true);
}
if ( memcmp(_fl_buf, (void *) _fl_addr, FLASH_PAGE_SIZE) != 0 )
{
nrf_nvmc_page_erase(_fl_addr);
@ -72,7 +60,7 @@ void flash_flush(void)
_fl_addr = FLASH_CACHE_INVALID_ADDR;
}
void flash_write (uint32_t dst, const void *src, int len)
void flash_write (uint32_t dst, void const *src, int len)
{
uint32_t newAddr = dst & ~(FLASH_PAGE_SIZE - 1);

View File

@ -280,6 +280,13 @@ int write_block(uint32_t block_no, uint8_t *data, bool quiet/*, WriteState *stat
} else {
// logval("write block at", bl->targetAddr);
NRF_LOG_DEBUG("Write block at %x", bl->targetAddr);
static bool first_write = true;
if ( first_write ) {
first_write = false;
led_blink_fast(true);
}
flash_write(bl->targetAddr, bl->data, bl->payloadSize);
}
@ -299,13 +306,7 @@ int write_block(uint32_t block_no, uint8_t *data, bool quiet/*, WriteState *stat
state->numWritten++;
}
if (state->numWritten >= state->numBlocks) {
// wait a little bit before resetting, to avoid Windows transmit error
// https://github.com/Microsoft/uf2-samd21/issues/11
if (!quiet) {
}
// flush last blocks if needed
// flush last blocks
flash_flush();
uf2_write_complete(state->numBlocks);