diff options
Diffstat (limited to 'support/gdb')
| -rw-r--r-- | support/gdb/gpio/gpio.gdb | 12 | ||||
| -rw-r--r-- | support/gdb/i2c/test.gdb | 112 | 
2 files changed, 124 insertions, 0 deletions
diff --git a/support/gdb/gpio/gpio.gdb b/support/gdb/gpio/gpio.gdb new file mode 100644 index 0000000..4376cfd --- /dev/null +++ b/support/gdb/gpio/gpio.gdb @@ -0,0 +1,12 @@ +set print pretty on + +print "GPIOA registers:" +p/x *GPIOA->regs +print "GPIOB registers:" +p/x *GPIOB->regs +print "GPIOC registers:" +p/x *GPIOC->regs +print "GPIOD registers:" +p/x *GPIOD->regs +print "AFIO registers:" +p/x *(struct afio_reg_map*)0x40010000 diff --git a/support/gdb/i2c/test.gdb b/support/gdb/i2c/test.gdb new file mode 100644 index 0000000..8b71320 --- /dev/null +++ b/support/gdb/i2c/test.gdb @@ -0,0 +1,112 @@ +define i2c_sr1_flags +set $s = $arg0 +printf "SR1: " + +if (($s & (1 << 15))) +    printf "SMBALERT " +end + +if (($s & (1 << 14))) +    printf "TIMEOUT " +end + +if (($s & (1 << 12))) +    printf "PECERR " +end + +if (($s & (1 << 11))) +    printf "OVR " +end + +if (($s & (1 << 10))) +    printf "AF " +end + +if (($s & (1 << 9))) +    printf "ARLO " +end + +if (($s & (1 << 8))) +    printf "BERR " +end + +if (($s & (1 << 7))) +    printf "TXE " +end + +if (($s & (1 << 6))) +    printf "RXNE " +end + +if (($s & (1 << 4))) +    printf "STOPF " +end + +if (($s & (1 << 3))) +    printf "ADD10 " +end + +if (($s & (1 << 2))) +    printf "BTF " +end + +if (($s & (1 << 1))) +    printf "ADDR " +end + +if (($s & (1 << 0))) +    printf "SB " +end +end + +define i2c_sr2_flags +set $s = $arg0 +printf "SR2: " + +if (($s & (1 << 7))) +    printf "DUALF " +end + +if (($s & (1 << 6))) +    printf "SMBHOST " +end + +if (($s & (1 << 5))) +    printf "SMBDEFAULT " +end + +if (($s & (1 << 4))) +    printf "GENCALL " +end + + +if (($s & (1 << 2))) +    printf "TRA " +end + +if (($s & (1 << 1))) +    printf "BUSY " +end + +if (($s & (1 << 0))) +    printf "MSL " +end + +end + +define pbc +set $c = crumbs +while ($c->event) +    if ($c->event != 0) +        printf "Event: %d ", $c->event +        if ($c->event == 1) +            i2c_sr1_flags $c->sr1 +            printf "\t" +            i2c_sr2_flags $c->sr2 +        end +        printf "\n" +    end +    set $c = $c + 1 +end + +  | 
