Using Open On-Chip Debugger 0.5.0-dev-00948-gd4cd6f0 (2011-07-30-15:55)

LM3S3N26-C5 is not detected as a Tempest device and so uses the sysresetreq
in place of the needed vectreset in stellaris.cfg.

The device class appears to be set by:

set device_class [expr (([mrw 0x400fe000] >> 16) & 0xff)]

This memory location contains the device class. Tempest is 0x04.

There is an errata where LM3S3N26 misreports itself as 0x03.

My attempt at a workaround was to define a variable:

set DEVICECLASSIS 0x04

then call a modified stellaris.cfg:


    if { [info exists DEVICECLASSIS ] } {
       set device_class $DEVICECLASSIS
    } else {
       set device_class [expr (([mrw 0x400fe000] >> 16) & 0xff)]
    }

    if {$device_class == 0 || $device_class == 1 || $device_class == 3} {
        # Sandstorm, Fury and DustDevil are able to use NVIC SYSRESETREQ
        cortex_m3 reset_config sysresetreq
    } else {
        # Tempest and newer default to using NVIC VECTRESET
        # this does mean a reset-init event handler is required to reset
        # any peripherals
        cortex_m3 reset_config vectreset
    }


The if statement doesn't seem to work properly. Changing the sysresetreq  to
vectreset by hand does resolve the issue.

Is there something wrong with my if info exists workaround syntax?
_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to