projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altos/stm32f4: Add start of stm32f413 USB support
[fw/altos]
/
altoslib
/
AltosDebug.java
diff --git
a/altoslib/AltosDebug.java
b/altoslib/AltosDebug.java
index 76c13d57a399187079d9d4f0820eaedf4a36fa22..57e97a18fe36cd50e92479b47ab05583d30625b2 100644
(file)
--- a/
altoslib/AltosDebug.java
+++ b/
altoslib/AltosDebug.java
@@
-3,7
+3,8
@@
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
@@
-15,7
+16,7
@@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_
2
;
+package org.altusmetrum.altoslib_
13
;
import java.io.*;
import java.io.*;
@@
-52,17
+53,14
@@
public class AltosDebug {
public static final byte GET_CHIP_ID = 0x68;
public static final byte GET_CHIP_ID = 0x68;
- AltosLink link;
+
private
AltosLink link;
boolean debug_mode;
boolean debug_mode;
- void ensure_debug_mode() {
+ void ensure_debug_mode()
throws InterruptedException
{
if (!debug_mode) {
link.printf("D\n");
if (!debug_mode) {
link.printf("D\n");
- try {
- link.flush_input();
- } catch (InterruptedException ie) {
- }
+ link.flush_input();
debug_mode = true;
}
}
debug_mode = true;
}
}
@@
-81,13
+79,16
@@
public class AltosDebug {
}
public void close() {
}
public void close() {
- link.close();
+ try {
+ link.close();
+ } catch (InterruptedException ie) {
+ }
}
/*
* Write target memory
*/
}
/*
* Write target memory
*/
- public void write_memory(int address, byte[] bytes, int start, int len) {
+ public void write_memory(int address, byte[] bytes, int start, int len)
throws InterruptedException
{
ensure_debug_mode();
// dump_memory("write_memory", address, bytes, start, len);
link.printf("O %x %x\n", len, address);
ensure_debug_mode();
// dump_memory("write_memory", address, bytes, start, len);
link.printf("O %x %x\n", len, address);
@@
-95,7
+96,7
@@
public class AltosDebug {
link.printf("%02x", bytes[start + i]);
}
link.printf("%02x", bytes[start + i]);
}
- public void write_memory(int address, byte[] bytes) {
+ public void write_memory(int address, byte[] bytes)
throws InterruptedException
{
write_memory(address, bytes, 0, bytes.length);
}
write_memory(address, bytes, 0, bytes.length);
}
@@
-112,7
+113,11
@@
public class AltosDebug {
int i = 0;
int start = 0;
while (i < length) {
int i = 0;
int start = 0;
while (i < length) {
- String line = link.get_reply().trim();
+ String line = link.get_reply();
+ if (line == null)
+ throw new IOException("No reply");
+
+ line = line.trim();
if (!AltosLib.ishex(line) || line.length() % 2 != 0)
throw new IOException(
String.format
if (!AltosLib.ishex(line) || line.length() % 2 != 0)
throw new IOException(
String.format
@@
-132,7
+137,7
@@
public class AltosDebug {
/*
* Write raw bytes to the debug link using the 'P' command
*/
/*
* Write raw bytes to the debug link using the 'P' command
*/
- public void write_bytes(byte[] bytes) throws IOException {
+ public void write_bytes(byte[] bytes) throws IOException
, InterruptedException
{
int i = 0;
ensure_debug_mode();
while (i < bytes.length) {
int i = 0;
ensure_debug_mode();
while (i < bytes.length) {
@@
-147,7
+152,7
@@
public class AltosDebug {
}
}
}
}
- public void write_byte(byte b) throws IOException {
+ public void write_byte(byte b) throws IOException
, InterruptedException
{
byte[] bytes = { b };
write_bytes(bytes);
}
byte[] bytes = { b };
write_bytes(bytes);
}
@@
-257,12
+262,12
@@
public class AltosDebug {
return true;
}
return true;
}
- public AltosRomconfig romconfig() {
+ public AltosRomconfig romconfig()
throws InterruptedException
{
try {
try {
- byte[] bytes = read_memory(0xa0, 10);
- return new AltosRomconfig(bytes, 0);
+ byte[] bytes = read_memory(0x00, 0x200);
+ AltosHexfile hexfile = new AltosHexfile (bytes, 0x00);
+ return new AltosRomconfig(hexfile);
} catch (IOException ie) {
} catch (IOException ie) {
- } catch (InterruptedException ie) {
}
return new AltosRomconfig();
}
}
return new AltosRomconfig();
}
@@
-277,4
+282,4
@@
public class AltosDebug {
public AltosDebug (AltosLink link) {
this.link = link;
}
public AltosDebug (AltosLink link) {
this.link = link;
}
-}
\ No newline at end of file
+}