Firmware burn function implementation
This commit is contained in:
@@ -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;
|
||||||
|
|
||||||
|
@@ -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);
|
||||||
|
Reference in New Issue
Block a user