Firmware burn function implementation

This commit is contained in:
maddiebaka
2024-02-22 18:39:20 -05:00
parent ca0ab73cb2
commit 9ddc7ff418
2 changed files with 7 additions and 4 deletions

View File

@@ -25,14 +25,16 @@ uint16_t addressPage = 0;
bool receiveBlockHandler(void *blk_id, size_t idSize, byte *data, size_t dataSize) { bool receiveBlockHandler(void *blk_id, size_t idSize, byte *data, size_t dataSize) {
unsigned int id = *((int *) blk_id); unsigned int id = *((int *) blk_id);
unsigned long page = (id - 1) * DATA_LEN; //unsigned long page = (id - 1) * DATA_LEN;
addressPage += page; //addressPage += page;
for (int i = 0; i < dataSize; i++) { for (int i = 0; i < dataSize; i++) {
unsigned long index = i + addressPage; unsigned long index = i + addressPage;
programData(data[i], index); programData(data[i], index);
//programData(id, i); //programData(id, i);
} }
addressPage += DATA_LEN;
return true; return true;
} }
@@ -144,6 +146,7 @@ void loop() {
switch (cmd) { switch (cmd) {
case CMD_WRITE: case CMD_WRITE:
setDataPinsOut(); setDataPinsOut();
addressPage = 0;
Serial.println("Burn new ROM: Waiting for an xmodem transfer.."); Serial.println("Burn new ROM: Waiting for an xmodem transfer..");
if (xmodem.receive() == true) { if (xmodem.receive() == true) {
delay(1000); delay(1000);
@@ -172,7 +175,7 @@ void loop() {
//cmd = NULL; //cmd = NULL;
break; break;
case CMD_ERASE: case CMD_ERASE:
//eraseROM(); eraseROM();
cmd = NULL; cmd = NULL;
break; break;

View File

@@ -81,7 +81,7 @@ void writeByte(byte data, unsigned long address) {
digitalWrite(OE, HIGH); digitalWrite(OE, HIGH);
digitalWrite(PGM, HIGH); digitalWrite(PGM, HIGH);
delayMicroseconds(10); delayMicroseconds(20);
digitalWrite(PGM, LOW); digitalWrite(PGM, LOW);
delayMicroseconds(3); delayMicroseconds(3);