📄 wait.c
字号:
Int _WAIT(void)
{
unsigned int state,flashStatus,old;
old=_RD(BADDR2WADDR(0x0));
while(1)
{
flashStatus=_RD(BADDR2WADDR(0x0));
if( (old&0x40) == (flashStatus&0x40) )break;
if( flashStatus&0x20 ) { //DQ5==1
old=_RD(BADDR2WADDR(0x0));
flashStatus=_RD(BADDR2WADDR(0x0));
if( (old&0x40) == (flashStatus&0x40) ) return 0;
else return 1;
}
//printf(".");
old=flashStatus;
} //printf("!\n");
return 1;
}
Flash中内置了一个状态寄存器(Status Register,SR)来指示Flash的当前工作状态和各种操作是否成功。要读取SR的当前值需要向CUI发送读状态寄存器命令(Read Status Register),命令码为0x70,SR中的内容将在DQ[7:0]上输出。The Read Status Register (0x70)command causes subsequent reads to output data from the SR until another command is issued. The SR bits are output on DQ[7:0].
CUI Command Codes and Descriptions
Code(HEX) Device Mode
FF Read Array
40 Program Set-up
20 Erase Set-up
D0 Erase Confirm
Program/Erase Resume
Unlock Block
B0 Program Suspend
Erase Suspend
70 Read Status Register
50 Clear Status Register
90 Read Identifier
60 Block Lock Set-up
Block Unlock Set-up
Block Lock-Down Set-up
01 Lock-Block
2F Lock-Down
98 CFI Query
C0 Protection Program Set-up
10 Alternative Program Set-up
00 Invalid / Reserved
to be continued...
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -