diff --git a/src/python/adgui.py b/src/python/adgui.py index 2d09d7c9..3c84abf3 100755 --- a/src/python/adgui.py +++ b/src/python/adgui.py @@ -224,6 +224,8 @@ class adgui(QObject): self.adgui.actionDevice_Info.triggered.connect(self.devinfo.show) self.adgui.actionProgramming.triggered.connect(self.memories.show) self.memories.readSig.pressed.connect(self.read_signature) + self.memories.choose.pressed.connect(self.ask_flash_file) + self.memories.read.pressed.connect(self.flash_read) def log(self, s: str, level: int = ad.MSG_INFO): # level to color mapping @@ -439,6 +441,29 @@ class adgui(QObject): else: ad.log("Could not find signature memory", ad.MSG_ERROR) + def ask_flash_file(self): + dlg = QFileDialog(caption = "Select file", + filter = "Load files (*.elf *.hex *.eep *.srec *.bin);; All Files (*)") + if dlg.exec(): + self.flashname = dlg.selectedFiles()[0] + self.memories.filename.setText(self.flashname) + self.memories.load.setEnabled(True) + self.memories.save.setEnabled(True) + else: + self.flashname = None + self.memories.filename.setText("") + self.memories.load.setEnabled(False) + self.memories.save.setEnabled(False) + + def flash_read(self): + self.adgui.progressBar.setEnabled(True) + m = ad.avr_locate_mem(self.dev, 'flash') + if not m: + self.log("Could not find 'flash' memory", ad.MSG_ERROR) + return + amnt = ad.avr_read_mem(self.pgm, self.dev, m) + self.log(f"Read {amnt} bytes") + def main(): gui = adgui(sys.argv) diff --git a/src/python/memories.ui b/src/python/memories.ui index d717d9da..5e747c59 100644 --- a/src/python/memories.ui +++ b/src/python/memories.ui @@ -9,8 +9,8 @@ 0 0 - 786 - 531 + 783 + 521 @@ -37,10 +37,16 @@ 30 20 - 731 - 441 + 730 + 440 + + + 0 + 0 + + 0 @@ -54,7 +60,7 @@ 30 30 651 - 76 + 81 @@ -181,6 +187,251 @@ Flash + + + + 560 + 50 + 101 + 251 + + + + background-color: rgb(255, 255, 255); + + + QFrame::Box + + + QFrame::Raised + + + 2 + + + Buffer + + + Qt::AlignCenter + + + + + + 40 + 30 + 481 + 191 + + + + File: + + + + false + + + + 370 + 60 + 83 + 25 + + + + Load → + + + + + false + + + + 370 + 120 + 83 + 25 + + + + ← Save + + + + + + 10 + 80 + 321 + 91 + + + + Format: + + + + + 10 + 30 + 141 + 23 + + + + Auto (load only) + + + true + + + + + + 10 + 50 + 141 + 23 + + + + ELF (load only) + + + + + + 170 + 20 + 107 + 23 + + + + Intel Hex + + + + + + 170 + 40 + 141 + 23 + + + + Motorola S-Record + + + + + + 170 + 60 + 107 + 23 + + + + Raw Binary + + + + + + + 10 + 40 + 271 + 25 + + + + + + + 290 + 40 + 41 + 25 + + + + … + + + + + + + 570 + 330 + 83 + 25 + + + + Clear + + + + + + 40 + 230 + 481 + 121 + + + + Device: + + + + + 370 + 40 + 83 + 25 + + + + Read → + + + + + + 370 + 80 + 83 + 25 + + + + ← Program + + + + + + 90 + 60 + 83 + 25 + + + + color: rgb(255, 39, 39); + + + Erase + + +