Off the cuff, did you update your ftdi libs? I remember
this fixing the not halting problems at one point. I'm using
libftd2xx0.4.13.tar.gz

wget http://www.ftdichip.com/Drivers/D2XX/Linux/libftd2xx0.4.13.tar.gz

Oddly, I don't use the 'halt' command I use

# stop
reset halt

OR

# Wait for target to enter debug mode. Default time is 5ms?
wait_halt

which may not make any difference if halt is
an alias for the same command(s).

If I get some time today I'll hook something up
and play with the halt command.

 -K




mgross wrote:
> On Fri, Dec 26, 2008 at 12:08:46PM -0800, K wrote:
>>
>> I have been working to get v1257 up and running, with some
>> success.
>>
>>> sudo /home/kwilson/PSAS/LPCDEV/LPC/2148/OCD/bin/openocd --version
>> Open On-Chip Debugger 1.0 (2008-12-19-11:49) svn:1257
>>
>> I noticed this in your output:
>> current mode: System
>>
>> and I have
>>
>> current mode: Supervisor
>>
>> So, I have attached my cfg and runscript, It may be a script
>> problem. I think I ran into this before and Dave C. showed me
>> a fix:
>>
>> # Force ARM7 into supervisor mode
>> reg cpsr 0x13
> 
> Hay thanks!  This part helped a lot.  I setting the cpsr to 0x13 got
> rid of the error messages.  note: Before I got your email I was able
> to program the thing using svn rev 260 of openocd.
> 
> My next problem is I no longer am able to get the lpc-p2148 to enter
> the halt state.  It keepis running the lpc-p2148 demo program.
> 
> Attempts to halt result in 
> 
> gr...@mgross-test:~$ telnet localhost 4444
> Trying 127.0.0.1...
> Connected to localhost.
> Escape character is '^]'.
> Open On-Chip Debugger
>> halt
> timed out while waiting for target halted
> Runtime error, file "command.c", line 456:
>     
> 
> jumper one is off.
> 
> Thanks for your help.
> 
> --mgross
> 
> 
> 
>> # mww: Memory word write
>> # Set the MEMMAP reg to point to flash (avoids problems while trying to
>> #flash)
>> mww 0xE01FC040 1
>>
>> Of course, these may have fixed a different issue, or two, but it's
>> worth a try if you haven't.
>>
>> I do see some differences between your config and mine:
>>
>> There are 'sub'-config files in the openocd configuration and
>> I source the one for the olimex jtag. I don't know if it matters...
>>
>> #----------- JTAG Interface Type
>> source [find interface/olimex-arm-usb-ocd.cfg]
>> jtag_speed  15       # JTAG clock divider
>>
>> You have a version 17 steps ahead of mine though...
>>
>> Luck,
>>  -K
>>
>>
>>
>> mgross wrote:
>>> I'm attempting to get back into the lpc2148 efforts again, and I'm
>>> rebuilding my toolchain and I see that openocd has changed a lot.
>>>
>>> I'm running svn:1274, and it sort of works but I'm getting 
>>> target state: halted
>>> target halted in Thumb state due to watchpoint, current mode: System
>>> cpsr: 0xffffffff pc: 0xffffffef
>>> Error: invalid mode value encountered
>>> Error: cpsr contains invalid mode value - communication failure
>>> target state: halted
>>> target halted in Thumb state due to watchpoint, current mode: System
>>> cpsr: 0xffffffff pc: 0xffffffef
>>>
>>> That repeat.
>>>
>>> Does anyone have any ideas on what could be going on?
>>>
>>> Thanks for any ideas.
>>>
>>> Thanks,
>>>
>>> --mgross
>>>
>>>
>>> FWIW my openocd.cfg is:
>>>
>>> #daemon configuration
>>> telnet_port 4444
>>> gdb_port 3333
>>>
>>>
>>> interface ft2232
>>> ft2232_device_desc "Olimex OpenOCD JTAG"
>>> ft2232_layout olimex-jtag
>>> ft2232_vid_pid 0x15ba 0x0003
>>>
>>> if { [info exists CHIPNAME] } { 
>>>    set  _CHIPNAME $CHIPNAME    
>>> } else {         
>>>    set  _CHIPNAME lpc2148
>>> }
>>>
>>> if { [info exists ENDIAN] } {   
>>>    set  _ENDIAN $ENDIAN    
>>> } else {         
>>>    set  _ENDIAN little
>>> }
>>>
>>> if { [info exists CPUTAPID ] } {
>>>    set _CPUTAPID $CPUTAPID
>>> } else {
>>>   # force an error till we get a good number
>>>    set _CPUTAPID 0xffffffff
>>> }
>>>
>>> #delays on reset lines
>>> jtag_nsrst_delay 200
>>> jtag_ntrst_delay 200
>>>
>>> # NOTE!!! LPCs need reset pulled while RTCK is low. 0 to activate 
>>> # JTAG, power-on reset is not enough, i.e. you need to perform a
>>> # reset before being able to talk to the LPC2148, attach is not
>>> # possible.
>>>
>>> #use combined on interfaces or targets that can't set TRST/SRST
>>> separately
>>> reset_config trst_and_srst srst_pulls_trst
>>>
>>> #jtag scan chain
>>> jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf
>>> -expected-id $_CPUTAPID
>>>
>>> set _TARGETNAME [format "%s.cpu" $_CHIPNAME]
>>> target create $_TARGETNAME arm7tdmi -endian $_ENDIAN -chain-position
>>> $_TARGETNAME -variant arm7tdmi-s_r4
>>> $_TARGETNAME configure -work-area-virt 0 -work-area-phys 0x40000000
>>> -work-area-size 0x4000 -work-area-backup 0
>>> $_TARGETNAME configure -event reset-init {
>>>         # Force target into ARM state
>>>         soft_reset_halt
>>>         #do not remap 0x0000-0x0020 to anything but the flash
>>>         mwb 0xE01FC040 0x01 
>>>         
>>> }
>>> #working_area 0 0x40000000 0x80000 nobackup
>>>
>>> #flash bank lpc2000 <base> <size> 0 0 <target#> <variant>
>>> flash bank lpc2000 0x0 0x7d000 0 0 0 lpc2000_v2 14765
>>>
>>> --mgross
>>>
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> psas-avionics mailing list
>>> psas-avionics@lists.psas.pdx.edu
>>> http://lists.psas.pdx.edu/mailman/listinfo/psas-avionics
> 
>> #!/usr/bin/expect
>>
>>
>>
>> set timeout 20 ;# just in case.
>>
>> set host localhost ;# 127.0.0.0
>>
>> set port 4444 ;# openocd port
>>
>> set cwd [pwd]
>>
>> spawn telnet "$host" "$port";
>>
>> expect ">"  ;# prompt
>>
>> send "script $cwd/oocd_flash_lpc2148.script\r";
>>
>> interact;
>>
>>
>>
> 
>> # Configuration for the LPC2148
>> #
>>
>> if { [info exists CHIPNAME] } {
>>    set  _CHIPNAME $CHIPNAME
>> } else {
>>    set  _CHIPNAME lpc2148
>> }
>>
>> if { [info exists ENDIAN] } {
>>    set  _ENDIAN $ENDIAN
>> } else {
>>    set  _ENDIAN little
>> }
>>
>> if { [info exists CPUTAPID ] } {
>>    set _CPUTAPID $CPUTAPID
>> } else {
>>   # force an error till we get a good number
>>    set _CPUTAPID 0x4f1f0f0f
>> }
>>
>> #delays on reset lines
>> jtag_nsrst_delay 200
>> jtag_ntrst_delay 200
>>
>>
>> # NOTE!!! LPCs need reset pulled while RTCK is low. 0 to activate 
>> # JTAG, power-on reset is not enough, i.e. you need to perform a
>> # reset before being able to talk to the LPC2148, attach is not
>> # possible.
>>
>> #use combined on interfaces or targets that can't set TRST/SRST separately
>> reset_config trst_and_srst srst_pulls_trst
>>
>> #jtag scan chain
>> jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id 
>> $_CPUTAPID
>>
>> set _TARGETNAME [format "%s.cpu" $_CHIPNAME]
>> target create $_TARGETNAME arm7tdmi -endian $_ENDIAN -chain-position 
>> $_TARGETNAME -variant arm7tdmi-s_r4
>> $_TARGETNAME configure -work-area-virt 0 -work-area-phys 0x40000000 
>> -work-area-size 0x4000 -work-area-backup 0
>> $_TARGETNAME configure -event reset-init {
>>         # Force target into ARM state
>>         soft_reset_halt
>>         #do not remap 0x0000-0x0020 to anything but the flash
>>         mwb 0xE01FC040 0x01
>>
>> }
>>
>>
>> #flash bank lpc2000 <base> <size> 0 0 <target#> <variant>
>> #flash bank lpc2000 0x0 0x7d000 0 0 0 lpc2000_v2 14765
>>
>>
>> #----------- Daemon Configuration
>>
>> telnet_port     4444
>> gdb_port        3333
>>
>>
>> # Tell gdb that you can use us to program the device (requires GDB >=6.7 and 
>> libexapt)
>> gdb_memory_map    enable
>> gdb_flash_program enable
>>
>> #----------- JTAG Interface Type
>> source [find interface/olimex-arm-usb-ocd.cfg]
>> jtag_speed  15       # JTAG clock divider: No PLL means must be at least 15 
>> (which is 1/16th clock speed)
>>
>>
>> # Time to wait before halting
>> #                 [JTAG #]  [wait in ms]
>> #run_and_halt_time 0         30
>> #run_and_halt_time 0         1000
>>
>> # Force everything to use hardware breakpoints since we're debugging from 
>> flash
>> #arm7_9 force_hw_bkpts enable
>> gdb_breakpoint_override enable
>>
>> #-------- Working area (debugging, on-the-fly coding)
>>
>> # RAM to use when writing to flash (temporary copy)
>> # locatations from memory map-ram starts at  0x4000 0000
>> #working_area  [target#]  [address]    [size]   ['backup'|'nobackup']
>> #working_area   0          0x40000000   0x8000   nobackup
>>
>> #-------- Flash configuration
>>
>> #LPC2148 @ 12MHz / 0x80000 from 512*1024...plus/minus 1 issue, lets not push 
>> it.
>> # 0x0008 0000 is reserved address...
>> #flash bank [driver] [base] [size]  [chip_width] [bus_width] [target#] 
>> [variant]  [freq] [cksum]
>> flash  bank lpc2000  0      0x80000 0            0           0         
>> lpc2000_v2 12000  calc_checksum
>>
> 
>>  
>> Here is my openocd_flash_lpc2148.script (much historical kruft, sorry)
>> Output follows script...
>>
>> # open ocd (on chip debugger) script to flash lpc2148
>> # 'info .../OCD/src/openocd/doc/openocd.info'
>>
>> # 3 is most. 0 is least info.
>> debug_level 1
>>
>> # stop
>> reset halt
>>
>> # log file
>> log_output write_flash.log
>>
>> # pause...500mS
>> sleep 500
>>
>> # current state
>> poll
>>
>> # Force ARM7 into supervisor mode
>> reg cpsr 0x13
>>
>> # mww: Memory word write
>> # Set the MEMMAP reg to point to flash (avoids problems while trying to
>> #flash)
>> mww 0xE01FC040 1
>>
>> ###
>> # * arm7_9 dcc_downloads <ENABLE|DISABLE> Enable the use of the debug
>> #     communications channel (DCC) to write larger (>128 byte) amounts
>> #     of memory. DCC downloads offer a huge speed increase, but might be
>> #     potentially unsafe, especially with targets running at a very low
>> #     speed. This command was introduced with OpenOCD rev. 60.
>> arm7_9 dcc_downloads enable
>>
>> # Wait for target to enter debug mode. Default time is 5ms.
>> wait_halt
>>
>> # pause
>> sleep 10
>>
>> # current state
>> poll
>>
>> # identify the flash
>> flash probe 0
>>
>> # erase first bank only:
>> flash erase_sector 0 0 26
>>
>> # pause
>> sleep 20
>>
>> # memory display halfword <from address> [COUNT]
>> mdh 0x0 30
>>
>> # pause
>> sleep 20
>>
>> ###
>> # * flash write_image [ERASE] <FILE> [OFFSET] [TYPE] Write the image
>> #     <FILE> to the current target's flash bank(s). A relocation
>> #     [OFFSET] can be specified and the file [TYPE] can be specified
>> #     explicitly as `bin' (binary), `ihex' (Intel hex), `elf' (ELF file)
>> #     or `s19' (Motorola s19). Flash memory will be erased prior to
>> #     programming if the `erase' parameter is given.
>>
>> flash write_image multiEp.hex 0x0 ihex
>> #flash write_image race_test.hex 0x0 ihex
>> #flash write_image serial_dave.hex 0x0 ihex
>> #flash write_image serial.hex 0x0 ihex
>>
>> #flash erase write_image serial.hex 0x0
>> #flash write_image serial.elf 0x0 elf
>> #flash write_image serial.hex 0x0 ihex
>> #flash write_image serial.bin 0x0 bin
>>
>> # pause
>> sleep 20
>>
>> # memory display halfword <from address> [COUNT]
>> mdh 0x0 30
>>
>> # pause
>> sleep 20
>>
>> # can't verify because of 0x14 reserved chksum address (LPC SPEC)
>> #verify_image serial.hex 0x0 bin
>>
>> # memory display halfword <from address> [COUNT]
>> mdh 0x0 30
>>
>> # pause
>> sleep 20
>>
>> #reset run_and_halt
>> reset
>>
>> # pause
>> sleep 10
>>
>> # stop the open ocd daemon.
>> #shutdown
>>
>>
>> =================
>>> script 
>>> /home/kwilson/PSAS/PSASGIT/node-usb/target/examples/oocd_flash_lpc2148.script
>>  srst pulls trst - can not reset into halted mode. Issuing halt after reset.
>>  target state: halted
>>  target halted in Thumb state due to debug-request, current mode: Supervisor
>>  cpsr: 0xa00000f3 pc: 0x7fffd2c0
>>  target state: halted
>>  target halted in Thumb state due to debug-request, current mode: Supervisor
>>  cpsr: 0xa00000f3 pc: 0x7fffd2c0
>>  cpsr (/32): 0x00000013
>>              dcc downloads are enabled
>>              target state: halted
>>              target halted in ARM state due to debug-request, current mode: 
>> Supervisor
>>              cpsr: 0x00000013 pc: 0x7fffd2c0
>>              flash 'lpc2000' found at 0x00000000
>>              erased sectors 0 through 26 on flash bank 0 in 0.724949s
>>              0x00000000: ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff 
>> ffff ffff ffff ffff ffff ffff 
>>              0x00000020: ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff 
>> ffff ffff ffff ffff 
>>              No flash at address 0x7fd00000
>>
>>              wrote 9176 byte from file multiEp.hex in 2.188057s (4.095386 
>> kb/s)
>>   0x00000000: f018 e59f f018 e59f f018 e59f f018 e59f f018 e59f 5f84 b920 
>> fff0 e51f f014 e59f 
>>   0x00000020: 0040 0000 00e4 0000 00e0 0000 00e4 0000 00e4 0000 00d8 0000 
>> 00dc 0000 
>>   0x00000000: f018 e59f f018 e59f f018 e59f f018 e59f f018 e59f 5f84 b920 
>> fff0 e51f f014 e59f 
>>   0x00000020: 0040 0000 00e4 0000 00e0 0000 00e4 0000 00e4 0000 00d8 0000 
>> 00dc 0000 
>>
> 

_______________________________________________
psas-avionics mailing list
psas-avionics@lists.psas.pdx.edu
http://lists.psas.pdx.edu/mailman/listinfo/psas-avionics

Reply via email to