chiark / gitweb /
show debugp in debug section
authorian <ian>
Mon, 8 May 2006 02:15:24 +0000 (02:15 +0000)
committerian <ian>
Mon, 8 May 2006 02:15:24 +0000 (02:15 +0000)
detpic/crashread

index f999bf863efbbf12efa8395a245bed8964a6e85d..ce7b86e1f3e9d5fc7303929eeb08170056500685 100755 (executable)
@@ -40,7 +40,7 @@ proc recv {n} {
        set c [read $p 1]
        binary scan $c c* d
        if {![llength $d]} { error "comms eof" }
-       lappend l $d
+       lappend l [expr {$d & 0x0ff}]
        incr n -1
     }
     return $l
@@ -249,6 +249,7 @@ while {[gets $m l] >= 0} {
            set sv symbolsbylockind($lockind)
        } else {
            set sv symbols
+           set smap($sym) $addr
        }
        lappend $sv [list $addr $sym]
     } elseif {$inblk==3} {
@@ -308,12 +309,13 @@ lappend sections {0x00000f00 {=SFRs=} 0}
 #lappend sections {0x00000f60 {==========SFRs,ACS===========} 0}
 
 lappend sections [list 0x1000 =END= 0]
-foreach tosort {sections symbols symbolsbylockind(program)} {
-    set $tosort [lsort [set $tosort]]
-}
-
-addendlast symbolsbylockind(program) 0x8000 (end)
 
+proc sortthings {} {
+    foreach tosort {sections symbols symbolsbylockind(program)} {
+       upvar #0 $tosort ts
+       set ts [lsort [set ts]]
+    }
+}
 set readcursor -1
 
 set ms [expr {
@@ -416,6 +418,18 @@ proc show {sym} {
     }
 }
 
+if {[info exists smap(misc:\ debugp)] && [info exists smap(misc:\ debug)]} {
+    set debugpval [readbytes $smap(misc:\ debugp) 1]
+#    puts y1-$debugpval
+#    puts y2-$smap(misc:\ debug)
+    set debugpaddr [format 0x%08x [expr {$debugpval+$smap(misc:\ debug)}]]
+#    puts y3-$debugpaddr
+    lappend symbols [list $debugpaddr [list "" (debugp)]]
+}
+
+sortthings
+addendlast symbolsbylockind(program) 0x8000 (end)
+
 set stkptr {panic: psave_stkptr}
 set stack {panic: panic_stack}