projects
/
bertos.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Disable CS in dflash_cmd function and remove where is unneeded. Add comments.
[bertos.git]
/
drv
/
dataflash.c
diff --git
a/drv/dataflash.c
b/drv/dataflash.c
index 2c185083658ca34428418472312d7f0b52c8acf1..67bd9ade86e56638a4dbc0cdcc5df7e35d0c4ae3 100644
(file)
--- a/
drv/dataflash.c
+++ b/
drv/dataflash.c
@@
-183,6
+183,12
@@
static uint8_t dataflash_stat(void)
stat = spi_sendRecv(DFO_READ_STATUS);
stat = spi_sendRecv(0x00);
stat = spi_sendRecv(DFO_READ_STATUS);
stat = spi_sendRecv(0x00);
+ /*
+ * Note: this function could be call one more time
+ * to check register status (es. check if memory has been
+ * teminate one operation), and so we don't disable CS to
+ * allow fast reading of register status.
+ */
return stat;
}
return stat;
}
@@
-195,6
+201,8
@@
static uint8_t dataflash_stat(void)
static uint8_t dataflash_cmd(dataflash_t page_addr, dataflashOffset_t byte_addr, DataFlashOpcode opcode)
{
static uint8_t dataflash_cmd(dataflash_t page_addr, dataflashOffset_t byte_addr, DataFlashOpcode opcode)
{
+ uint8_t stat;
+
send_cmd(page_addr, byte_addr, opcode);
CS_TOGGLE();
send_cmd(page_addr, byte_addr, opcode);
CS_TOGGLE();
@@
-205,7
+213,15
@@
static uint8_t dataflash_cmd(dataflash_t page_addr, dataflashOffset_t byte_addr,
*/
while(!(dataflash_stat() & BUSY_BIT));
*/
while(!(dataflash_stat() & BUSY_BIT));
- return (dataflash_stat());
+ stat = dataflash_stat();
+
+ /*
+ * Data flash has been terminate a sent command, and so
+ * disable CS.
+ */
+ CS_DISABLE();
+
+ return (stat);
}
}
@@
-234,6
+250,7
@@
static uint8_t dataflash_read_byte(dataflash_t page_addr, dataflashOffset_t byte
spi_sendRecv(0x00); //Send 8 don't care bit.
data = spi_sendRecv(0x00); //Read byte.
spi_sendRecv(0x00); //Send 8 don't care bit.
data = spi_sendRecv(0x00); //Read byte.
+
CS_DISABLE();
return data;
CS_DISABLE();
return data;
@@
-293,8
+310,6
@@
static void dataflash_write_block(dataflashOffset_t byte_addr, DataFlashOpcode o
static void dataflash_loadPage(dataflash_t page_addr)
{
dataflash_cmd(page_addr, 0x00, DFO_MOV_MEM_TO_BUFF1);
static void dataflash_loadPage(dataflash_t page_addr)
{
dataflash_cmd(page_addr, 0x00, DFO_MOV_MEM_TO_BUFF1);
-
- CS_DISABLE();
}
/**
}
/**
@@
-306,7
+321,6
@@
void dataflash_flush(void)
{
dataflash_cmd(previous_page, 0x00, DFO_WRITE_BUFF1_TO_MEM_E);
{
dataflash_cmd(previous_page, 0x00, DFO_WRITE_BUFF1_TO_MEM_E);
- CS_DISABLE();
page_modified = false;
kprintf("\n::=> Flush page:... <%ld>\n", previous_page);
page_modified = false;
kprintf("\n::=> Flush page:... <%ld>\n", previous_page);