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
+
+
+