Dump firmware feature, up to 64K
This commit is contained in:
@@ -21,11 +21,14 @@ byte cmd = NULL;
|
||||
|
||||
XModem xmodem;
|
||||
|
||||
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;
|
||||
for (int i = 0; i < dataSize; i++) {
|
||||
unsigned long index = i + page;
|
||||
unsigned long index = i + addressPage;
|
||||
programData(data[i], index);
|
||||
//programData(id, i);
|
||||
}
|
||||
@@ -35,14 +38,17 @@ bool receiveBlockHandler(void *blk_id, size_t idSize, byte *data, size_t dataSiz
|
||||
|
||||
void blockLookupHandler(void *blk_id, size_t idSize, byte *send_data, size_t dataSize) {
|
||||
//uint8_t blkId = blk_id;
|
||||
uint16_t id = *((uint16_t *) blk_id);
|
||||
//uint16_t id = *((uint16_t *) blk_id);
|
||||
// TODO: This was close to working
|
||||
//byte id = *((byte *) blk_id);
|
||||
unsigned long page = (id - 1) * DATA_LEN;
|
||||
uint8_t id = *((uint8_t *) blk_id);
|
||||
//unsigned long page = (id - 1) * DATA_LEN;
|
||||
//addressPage += page;
|
||||
for (int i = 0; i < dataSize; i++) {
|
||||
unsigned long index = i + page;
|
||||
unsigned long index = i + addressPage;
|
||||
send_data[i] = readData(index);
|
||||
}
|
||||
|
||||
addressPage += DATA_LEN;
|
||||
}
|
||||
|
||||
void setup() {
|
||||
@@ -166,7 +172,7 @@ void loop() {
|
||||
//cmd = NULL;
|
||||
break;
|
||||
case CMD_ERASE:
|
||||
eraseROM();
|
||||
//eraseROM();
|
||||
cmd = NULL;
|
||||
break;
|
||||
|
||||
@@ -186,6 +192,7 @@ void loop() {
|
||||
|
||||
void dumpROM() {
|
||||
setDataPinsIn();
|
||||
addressPage = 0;
|
||||
|
||||
struct XModem::bulk_data container;
|
||||
|
||||
|
Reference in New Issue
Block a user