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