This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
I rewrited openocd config for launchxl-rm46 board, because config in repo is invalid.
adapter_khz 1500 source [find interface/cmsis-dap.cfg] #source [find interface/xds110.cfg] transport select jtag set CHIPNAME rm46 set DAP_TAPID 0x2B95502F set JRC_TAPID 0x2B95502F adapter_khz 1500 if { [info exists CHIPNAME] } { set _CHIPNAME $CHIPNAME } else { set _CHIPNAME tms570 } if { [info exists ENDIAN] } { set _ENDIAN $ENDIAN } else { set _ENDIAN big } # TMS570 has an ICEpick-C on which we need the router commands. source [find target/icepick.cfg] # Main DAP # DAP_TAPID should be set before source-ing this file if { [info exists DAP_TAPID] } { set _DAP_TAPID $DAP_TAPID } jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_DAP_TAPID -disable jtag configure $_CHIPNAME.cpu -event tap-enable "icepick_c_tapenable $_CHIPNAME.jrc 0" # ICEpick-C (JTAG route controller) # JRC_TAPID should be set before source-ing this file if { [info exists JRC_TAPID] } { set _JRC_TAPID $JRC_TAPID } set _JRC_TAPID2 0x0B7B302F set _JRC_TAPID3 0x0B95502F set _JRC_TAPID4 0x0B97102F set _JRC_TAPID5 0x0D8A002F set _JRC_TAPID6 0x2B8A002F set _JRC_TAPID7 0x2D8A002F set _JRC_TAPID8 0x3B8A002F set _JRC_TAPID9 0x3D8A002F jtag newtap $_CHIPNAME jrc -irlen 6 -ircapture 0x1 -irmask 0x3f \ -expected-id $_JRC_TAPID \ -expected-id $_JRC_TAPID2 \ -expected-id $_JRC_TAPID3 \ -expected-id $_JRC_TAPID4 \ -expected-id $_JRC_TAPID5 \ -expected-id $_JRC_TAPID6 \ -expected-id $_JRC_TAPID7 \ -expected-id $_JRC_TAPID8 \ -expected-id $_JRC_TAPID9 \ -ignore-version jtag configure $_CHIPNAME.jrc -event setup "jtag tapenable $_CHIPNAME.cpu" jtag configure $_CHIPNAME.jrc -event post-reset "runtest 100" # Cortex-R4 target set _TARGETNAME $_CHIPNAME.cpu dap create $_CHIPNAME.dap -chain-position $_CHIPNAME.cpu target create $_TARGETNAME cortex_r4 -endian $_ENDIAN \ -dap $_CHIPNAME.dap -coreid 0 -dbgbase 0x00001003 # TMS570 uses quirky BE-32 mode #$_TARGETNAME dap ti_be_32_quirks 1 gdb_breakpoint_override hard $_TARGETNAME configure -event gdb-attach { cortex_r4 dbginit reset halt wait_halt $_CHIPNAME.cpu arp_halt wait_halt } $_TARGETNAME configure -event "reset-assert" { global _CHIPNAME # assert warm system reset through ICEPick icepick_c_wreset $_CHIPNAME.jrc }
openocd run correctly, but when i try to make target halt i see
Error: Timeout waiting for halt
when i try reset halt i see
Info : JTAG tap: rm46.jrc tap/device found: 0x2b95502f (mfg: 0x017 (Texas Instruments), part: 0xb955, ver: 0x2)
Info : JTAG tap: rm46.cpu enabled
Warn : rm46.cpu: ran after reset and before halt ...
Error: Timeout waiting for halt
in procedure 'reset'
in procedure 'ocd_bouncer'
may be i have mistake?
I made halt with config modifying , but now i cannot flash , as i know openocd support Flash021 API, may be i need set banks addresses such as in different configs?
i have changed target create to
target create $_TARGETNAME cortex_r4 -endian little -dap $_CHIPNAME.dap -coreid 0
also i see strange current mode in log
target halted in ARM state due to debug-request, current mode: Undefined instruction
cpsr: 0x000001db pc: 0x00000004
Info : rm46.cpu rev 3, partnum c14, arch f, variant 1, implementor 41
D-Cache: disabled, I-Cache: disabled
Alexander,
I am trying to make openocd work with the tms570ls3137 and the tms570ls1227.
Alexander Bulychev55 said:as i know openocd support Flash021 API
Where did you read that openocd supports the Flash021 API? Because I've been looking for it, and I didn't find anything.
Alexander,
Thanks for sending the new target create line; I was able to add it here and now the target is halted at connect. Reset, however, is still full of problems (it tends to crash OpenOCD when called multiple times).
Regarding the current mode: if your device is blank, that is expected. The Flash at this address will contain all ones (0xFFFFFFFF), which is an invalid instruction and therefore the device triggers an exception. I have flashed code to the device and it can be debug well, as long as a reset is not issued.
The files I am using follow attached.
There is some mention of Flash021 API support at the discussion below:
https://forum.43oh.com/topic/7333-openocd-support-for-hercules-launchpads/
Again, unfortunately I don't have much knowledge about the device's internal JTAG ipecifications and addresses, therefore my ability to support this effort is limited.
Hope this helps,
Rafael