From 9ddc7ff41869978dc2e2f849ba4e0a92161e2923 Mon Sep 17 00:00:00 2001 From: maddiebaka Date: Thu, 22 Feb 2024 18:39:20 -0500 Subject: [PATCH] Firmware burn function implementation --- NORFlasherFirmware.ino | 9 ++++++--- ROMWireProtocol.cpp | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/NORFlasherFirmware.ino b/NORFlasherFirmware.ino index 7c50908..0a7d8aa 100644 --- a/NORFlasherFirmware.ino +++ b/NORFlasherFirmware.ino @@ -25,14 +25,16 @@ uint16_t addressPage = 0; bool receiveBlockHandler(void *blk_id, size_t idSize, byte *data, size_t dataSize) { unsigned int id = *((int *) blk_id); - unsigned long page = (id - 1) * DATA_LEN; - addressPage += page; + //unsigned long page = (id - 1) * DATA_LEN; + //addressPage += page; for (int i = 0; i < dataSize; i++) { unsigned long index = i + addressPage; programData(data[i], index); //programData(id, i); } + addressPage += DATA_LEN; + return true; } @@ -144,6 +146,7 @@ void loop() { switch (cmd) { case CMD_WRITE: setDataPinsOut(); + addressPage = 0; Serial.println("Burn new ROM: Waiting for an xmodem transfer.."); if (xmodem.receive() == true) { delay(1000); @@ -172,7 +175,7 @@ void loop() { //cmd = NULL; break; case CMD_ERASE: - //eraseROM(); + eraseROM(); cmd = NULL; break; diff --git a/ROMWireProtocol.cpp b/ROMWireProtocol.cpp index 3bb714a..302c34a 100644 --- a/ROMWireProtocol.cpp +++ b/ROMWireProtocol.cpp @@ -81,7 +81,7 @@ void writeByte(byte data, unsigned long address) { digitalWrite(OE, HIGH); digitalWrite(PGM, HIGH); - delayMicroseconds(10); + delayMicroseconds(20); digitalWrite(PGM, LOW); delayMicroseconds(3);