diff --git a/isd1200.c b/isd1200.c index efc4523..501b695 100644 --- a/isd1200.c +++ b/isd1200.c @@ -152,7 +152,9 @@ void isd1200_flash_read(uint32_t page, uint8_t *buffer) uint32_t offset = page * 512; - *(uint32_t *)&buf[1] = __builtin_bswap32(offset << 8); + buf[1] = (offset >> 16) & 0xFF; + buf[2] = (offset >> 8) & 0xFF; + buf[3] = offset & 0xFF; nuvoton_spi_transfer(buf, sizeof(buf)); @@ -175,7 +177,9 @@ void isd1200_flash_write(uint32_t page, uint8_t *buffer) uint32_t offset = page * 16; - *(uint32_t *)&buf[1] = __builtin_bswap32(offset << 8); + buf[1] = (offset >> 16) & 0xFF; + buf[2] = (offset >> 8) & 0xFF; + buf[3] = offset & 0xFF; memcpy(&buf[4], buffer, 16); diff --git a/spi.pio b/spi.pio index f3976d2..663ebc7 100644 --- a/spi.pio +++ b/spi.pio @@ -74,7 +74,7 @@ bitloop: out pins, 1 side 0x2 mov x, y side 0x2 in pins, 1 side 0x0 - jmp !osre byteloop side 0x0 + jmp !osre byteloop side 0x0 [31] public entry_point: ; Must set X,Y to n-2 before starting! pull ifempty side 0x1 [1] ; Block with CSn high (minimum 2 cycles)