Skip to content

Commit 2af7ee1

Browse files
committed
v 1.2.0 final fixes
1 parent bea384c commit 2af7ee1

2 files changed

Lines changed: 20 additions & 15 deletions

File tree

SPIFlash.cpp

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ void SPIFlash::_endProcess(void) {
215215
_chipDeselect();
216216
delay(3);
217217
}
218-
218+
/*
219219
//Writes a page of data into a page buffer
220220
bool SPIFlash::_writePage(uint16_t page_number, uint8_t *data_buffer) {
221221
if(!_notBusy() || page_number >= 4096 || !_writeEnable())
@@ -241,7 +241,7 @@ bool SPIFlash::_writePage(uint16_t page_number, uint8_t *data_buffer) {
241241
// Erase Security Register and Program Security register
242242
243243
return true;
244-
}
244+
}*/
245245

246246
//Prints hex/dec formatted data from page reads - for debugging
247247
void SPIFlash::_printPageBytes(uint8_t *data_buffer, uint8_t outputType) {
@@ -452,21 +452,27 @@ bool SPIFlash::writeBytes(uint16_t page_number, uint8_t offset, uint8_t *data_bu
452452
bool SPIFlash::writePage(uint16_t page_number, uint8_t *data_buffer, bool errorCheck) {
453453
uint8_t temp_buffer[256];
454454
char buffer[80];
455-
_writePage(page_number, data_buffer);
455+
uint32_t address = _getAddress(page_number);
456+
457+
_beginWrite(address);
458+
for (uint16_t i = 0; i < 256; i++)
459+
_writeNextByte(data_buffer[i]);
460+
_endProcess();
456461

457462
if (errorCheck)
458463
{
459-
readPage(page_number, temp_buffer);
460-
for(int a=0; a<256; ++a) {
461-
if(!temp_buffer[a] == data_buffer[a])
464+
_beginRead(address);
465+
uint8_t j;
466+
for (j = 0; j < 256; j++)
467+
{
468+
if (data_buffer[j] != _readNextByte())
469+
{
462470
return false;
463-
else
464-
{
465-
sprintf(buffer, "Writing page (%04x) done", page_number);
466-
Serial.println(buffer);
467-
return true;
468-
}
471+
}
469472
}
473+
sprintf(buffer, "Writing page (%04x) done", page_number);
474+
Serial.println(buffer);
475+
return true;
470476
}
471477
else
472478
{
@@ -524,7 +530,7 @@ bool SPIFlash::eraseBlock32K(uint16_t page_number) {
524530
return true;
525531
}
526532

527-
//Erases one 32k block containing the page to be erased. The blocks are numbered 0 - 15 containing 256 pages each.
533+
//Erases one 64k block containing the page to be erased. The blocks are numbered 0 - 15 containing 256 pages each.
528534
// Page 0-255 --> Block 0; Page 256-511 --> Block 1;......Page 3840-4095 --> Block 15
529535
bool SPIFlash::eraseBlock64K(uint16_t page_number) {
530536
if(!_notBusy() || !_writeEnable())

SPIFlash.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ class SPIFlash {
3333
bool readBytes(uint16_t page_number, uint8_t offset, uint8_t *data_buffer),
3434
readPage(uint16_t page_number, uint8_t *data_buffer),
3535
writeByte(uint16_t page_number, uint8_t offset, uint8_t data, bool errorCheck = true),
36-
writeBytes(uint16_t page_number, uint8_t offset, uint8_t *data_buffer, bool errorCheck),
36+
writeBytes(uint16_t page_number, uint8_t offset, uint8_t *data_buffer, bool errorCheck = true),
3737
writePage(uint16_t page_number, uint8_t *data_buffer, bool errorCheck = true),
3838
eraseSector(uint16_t page_number),
3939
eraseBlock32K(uint16_t page_number),
@@ -61,7 +61,6 @@ class SPIFlash {
6161
_writeNextByte(uint8_t c),
6262
_writeEnable(void),
6363
_writeDisable(void),
64-
_writePage(uint16_t page_number, uint8_t *data_buffer),
6564
_getJedecId(uint8_t *b1, uint8_t *b2, uint8_t *b3);
6665
uint8_t _readNextByte(void),
6766
_addressCheck(uint32_t address);

0 commit comments

Comments
 (0)