xflash: remove some duplication
This commit is contained in:
parent
5ae8bad0ba
commit
86e753fe37
|
|
@ -90,13 +90,18 @@ void w25x20cl_wr_status_reg(uint8_t val)
|
|||
}
|
||||
#endif
|
||||
|
||||
void xflash_rd_data(uint32_t addr, uint8_t* data, uint16_t cnt)
|
||||
static void xflash_send_cmdaddr(uint8_t cmd, uint32_t addr)
|
||||
{
|
||||
_CS_LOW();
|
||||
_SPI_TX(_CMD_RD_DATA); // send command 0x03
|
||||
_SPI_TX(cmd); // send command 0x03
|
||||
_SPI_TX(((uint8_t*)&addr)[2]); // send addr bits 16..23
|
||||
_SPI_TX(((uint8_t*)&addr)[1]); // send addr bits 8..15
|
||||
_SPI_TX(((uint8_t*)&addr)[0]); // send addr bits 0..7
|
||||
}
|
||||
|
||||
void xflash_rd_data(uint32_t addr, uint8_t* data, uint16_t cnt)
|
||||
{
|
||||
_CS_LOW();
|
||||
xflash_send_cmdaddr(_CMD_RD_DATA, addr);
|
||||
while (cnt--) // receive data
|
||||
*(data++) = _SPI_RX();
|
||||
_CS_HIGH();
|
||||
|
|
@ -105,10 +110,7 @@ void xflash_rd_data(uint32_t addr, uint8_t* data, uint16_t cnt)
|
|||
void xflash_page_program(uint32_t addr, uint8_t* data, uint16_t cnt)
|
||||
{
|
||||
_CS_LOW();
|
||||
_SPI_TX(_CMD_PAGE_PROGRAM); // send command 0x02
|
||||
_SPI_TX(((uint8_t*)&addr)[2]); // send addr bits 16..23
|
||||
_SPI_TX(((uint8_t*)&addr)[1]); // send addr bits 8..15
|
||||
_SPI_TX(((uint8_t*)&addr)[0]); // send addr bits 0..7
|
||||
xflash_send_cmdaddr(_CMD_PAGE_PROGRAM, addr);
|
||||
while (cnt--) // send data
|
||||
_SPI_TX(*(data++));
|
||||
_CS_HIGH();
|
||||
|
|
@ -117,10 +119,7 @@ void xflash_page_program(uint32_t addr, uint8_t* data, uint16_t cnt)
|
|||
void xflash_page_program_P(uint32_t addr, uint8_t* data, uint16_t cnt)
|
||||
{
|
||||
_CS_LOW();
|
||||
_SPI_TX(_CMD_PAGE_PROGRAM); // send command 0x02
|
||||
_SPI_TX(((uint8_t*)&addr)[2]); // send addr bits 16..23
|
||||
_SPI_TX(((uint8_t*)&addr)[1]); // send addr bits 8..15
|
||||
_SPI_TX(((uint8_t*)&addr)[0]); // send addr bits 0..7
|
||||
xflash_send_cmdaddr(_CMD_PAGE_PROGRAM, addr);
|
||||
while (cnt--) // send data
|
||||
_SPI_TX(pgm_read_byte(data++));
|
||||
_CS_HIGH();
|
||||
|
|
@ -129,10 +128,7 @@ void xflash_page_program_P(uint32_t addr, uint8_t* data, uint16_t cnt)
|
|||
void xflash_erase(uint8_t cmd, uint32_t addr)
|
||||
{
|
||||
_CS_LOW();
|
||||
_SPI_TX(cmd); // send command 0x20
|
||||
_SPI_TX(((uint8_t*)&addr)[2]); // send addr bits 16..23
|
||||
_SPI_TX(((uint8_t*)&addr)[1]); // send addr bits 8..15
|
||||
_SPI_TX(((uint8_t*)&addr)[0]); // send addr bits 0..7
|
||||
xflash_send_cmdaddr(cmd, addr);
|
||||
_CS_HIGH();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue