EmbDev.net

Forum: ARM programming with GCC/GNU tools OpenOCD parallel port


von Thomas F. (thomas_f)


Rate this post
useful
not useful
Hi ,

I am trying to get OpenOCD to work with LPC2138 with a parallel port 
wiggler.

H-JTAG(also works with giveio.sys) works perfectly with my setup , I 
need to set it with
nTRST --> output inverted
nSRST-->"no sysrst"
TCK Speed MAX/1.

I replicated this by using
parport_cable wiggler_ntrst_inverted
jtag_speed 8 in the openOCD_lpc2138_wiggler.cfg.

When I try compiling and flashing I get :
Programming with OPENOCD
openocd_go_flash.cmd
Info:    openocd.c:93 main(): Open On-Chip Debugger (2007-09-05 09:00 
CEST)
Error:   lpc2000.c:384 lpc2000_flash_bank_command(): unknown LPC2000 
variant
Error:   flash.c:180 handle_flash_bank_command(): 'lpc2000' driver 
rejected flash bank at 0x00000000
Error:   jtag.c:1301 jtag_examine_chain(): number of discovered devices 
in JTAG chain (2) doesn't match configuration (1)
Error:   jtag.c:1302 jtag_examine_chain(): check the config file and 
ensure proper JTAG communication (connections, speed, ...)
Error:   jtag.c:1440 jtag_init(): trying to validate configured JTAG 
chain anyway...
Warning: arm7_9_common.c:734 arm7_9_assert_reset(): srst resets test 
logic, too
Error:   arm_jtag.c:38 arm_jtag_set_instr_error_handler(): setting the 
new JTAG instruction failed, debugging is likely to be broken

Any newbie errors I am making ?

Regards
Thomas

von Martin T. (mthomas) (Moderator)


Rate this post
useful
not useful
As far as I know H-JTAG installs it's own direct port-access driver but 
I have not used H-JTAG since several months

It seems that the configuration is outdated. "reject flash bank" does 
not look good. Could you try with a configuration files from the openocd 
target library: interface/parport.cfg and target/lpc2148.cfg? Also try 
to increase the debug-level.

von Thomas F. (thomas_f)


Rate this post
useful
not useful
Hello Martin,

I am using your example from here :
http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/openocd_intro/lpc2138_openocd_jtag_20061013.zip
Let me try the configuration file from the source you mentioned.

Thomas

von Thomas F. (thomas_f)


Attached files:

Rate this post
useful
not useful
I managed to get get OpenOCD to flash the program for me,with a few 
issues.

1) JTAG cannot detect the board unless I manually reset the board once 
after power up.After this it works fine,till I power off the board.Then 
I need to do the "manual reset once",once again.

2) After loading the firmware in ROM ,the board executes the program 
,but I get the following message :

Programming with OPENOCD
openocd_go_flash.bat
Open On-Chip Debugger (2008-03-22 12:00 CET) svn: r520
URL: http://svn.berlios.de/svnroot/repos/openocd/trunk/
Info:    jtag.c:1329 jtag_examine_chain(): JTAG device found: 0x4f1f0f0f 
(Manufacturer: 0x787, Part: 0xf1f0, Version: 0x4)
Info:    target.c:240 target_init_handler(): executing reset script 
'openocd_lpc2148_flash.script'
Info:    options.c:50 configuration_output_handler(): dcc downloads are 
disabled
User:    target.c:784 target_arch_state(): target state: halted
User:    armv4_5.c:340 armv4_5_arch_state(): target halted in ARM state 
due to debug request, current mode: System
cpsr: 0x8000005f pc: 0x0000103c
Info:    options.c:50 configuration_output_handler(): flash 'lpc2000' 
found at 0x00000000
Info:    options.c:50 configuration_output_handler(): erased sectors 0 
through 26 on flash bank 0 in 0.156250s
Info:    options.c:50 configuration_output_handler(): wrote 36488 byte 
from file main.bin in 3.640625s (9.787554 kb/s)
Warning: arm7_9_common.c:724 arm7_9_poll(): DBGACK set, but the target 
did not end up in the halted stated 1
User:    target.c:365 target_process_reset(): Timed out waiting for 
reset
Press any key to continue . . .

I then exit this using "Stop Tools".Meanwhile the program is already 
executing on the board
I have attached the OpenOCD files from my setup.

von Thomas F. (thomas_f)


Rate this post
useful
not useful
Hi ,

Just managed to get OpenOCD working for debugging partially.
i.e. I am able to single step through the code. Now my problem is when I 
read the value of a variable ( by parking the mouse over it) , I get :
for example

741-data-evaluate-expression ptr
741^error,msg="Cannot access memory at address 0x40005660"

Any suggestions on what I might be doing wrong ?

von Martin T. (mthomas) (Moderator)


Rate this post
useful
not useful
Did you try with the gdb command set mem inaccessible-by-default off ?
See 
http://openocd.berlios.de/doc/html/GDB-and-OpenOCD.html#GDB-and-OpenOCD 
for further information.

von Thomas F. (thomas_f)


Rate this post
useful
not useful
I tried this :

target remote localhost:3333
set mem inaccessible-by-default off
monitor soft_reset_halt
monitor sleep 500
monitor arm7_9 force_hw_bkpts enable
symbol-file lpcspi.elf
load
thbreak main
continue

It now seems to work as expected.Will do more trials and revert back.
Thanks for sharing your knowledge and the results of your efforts.

Thomas

Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
No account? Register here.