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