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) {
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;

View File

@@ -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);