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) {
|
||||
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;
|
||||
|
||||
|
@@ -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);
|
||||
|
Reference in New Issue
Block a user