sw: experimental improved dfu performance
Signed-off-by: Sean Cross <sean@xobs.io>
This commit is contained in:
parent
4c3f0f2402
commit
d72925fdeb
@ -73,7 +73,7 @@ static struct toboot_state {
|
|||||||
|
|
||||||
static dfu_state_t dfu_state = dfuIDLE;
|
static dfu_state_t dfu_state = dfuIDLE;
|
||||||
static dfu_status_t dfu_status = OK;
|
static dfu_status_t dfu_status = OK;
|
||||||
static unsigned dfu_poll_timeout_ms = 100;
|
static unsigned dfu_poll_timeout_ms = 1;
|
||||||
|
|
||||||
static uint32_t dfu_buffer[DFU_TRANSFER_SIZE/4];
|
static uint32_t dfu_buffer[DFU_TRANSFER_SIZE/4];
|
||||||
static uint32_t dfu_buffer_offset;
|
static uint32_t dfu_buffer_offset;
|
||||||
|
@ -32,13 +32,17 @@ static void gpioWrite(int pin, int val) {
|
|||||||
do_mirror |= 1 << pin;
|
do_mirror |= 1 << pin;
|
||||||
else
|
else
|
||||||
do_mirror &= ~(1 << pin);
|
do_mirror &= ~(1 << pin);
|
||||||
bbspi_do_write(do_mirror);
|
// bbspi_do_write(do_mirror);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int gpioRead(int pin) {
|
static int gpioRead(int pin) {
|
||||||
return !!(bbspi_di_read() & (1 << pin));
|
return !!(bbspi_di_read() & (1 << pin));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void gpioSync(void) {
|
||||||
|
bbspi_do_write(do_mirror);
|
||||||
|
}
|
||||||
|
|
||||||
#define SPI_ONLY_SINGLE
|
#define SPI_ONLY_SINGLE
|
||||||
|
|
||||||
enum ff_spi_quirks {
|
enum ff_spi_quirks {
|
||||||
@ -161,11 +165,13 @@ void spiBegin(struct ff_spi *spi) {
|
|||||||
gpioWrite(spi->pins.hold, 1);
|
gpioWrite(spi->pins.hold, 1);
|
||||||
}
|
}
|
||||||
gpioWrite(spi->pins.cs, 0);
|
gpioWrite(spi->pins.cs, 0);
|
||||||
|
gpioSync();
|
||||||
}
|
}
|
||||||
|
|
||||||
void spiEnd(struct ff_spi *spi) {
|
void spiEnd(struct ff_spi *spi) {
|
||||||
(void)spi;
|
(void)spi;
|
||||||
gpioWrite(spi->pins.cs, 1);
|
gpioWrite(spi->pins.cs, 1);
|
||||||
|
gpioSync();
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint8_t spiXfer(struct ff_spi *spi, uint8_t out) {
|
static uint8_t spiXfer(struct ff_spi *spi, uint8_t out) {
|
||||||
|
Loading…
Reference in New Issue
Block a user