mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LPC-H2148 OpenOCD(rev 1454) mit Olimex ARM-USB-OCD


Autor: Oliver B. (building21)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuch schon seit Wochen OpenOCD für mein eigenes Projekt auf dem 
Olimex LPC-H2148 zum laufen zu bekommen. Bisher konnten mir keine Hilfen 
durch Google und diversen Foren weiterhelfen, daher nun diesen Beitrag.

Als Betriebsystem nutze ich nen Archlinux mit 2.6er Kernel.
LibUSB ist eingerichtet und die UDEV-Reglen auch angepasst.
Mein Projekt basiert auf dem LPC-H2148 Headerboard von Olimex. Dies ist 
über den Olimex ARM-USB-OCD mit dem PC verbunden. Das Headerboard wird 
derweil auch über USB mit Strom versorgt.

Leider schlägt die OpenOCD-Konfiguration anscheint immer fehl. Ich nutze 
aus Absicht nicht die interface/arm-usb-ocd.cfg und 
target/lpc2148_2mhz.cfg, weil bei denen der selbe Fehler auftritt.
Alle wichtigen Ausgaben und Dateien hab denk ich hinzugefügt. Falls 
etwas fehlen sollte lade ich das gern hoch.

Danke für die Hilfe.

MfG building21




Die Konsolenausgabe bei debug_level 3:
./openocd -f openocd_lpc2148.script.test
Open On-Chip Debugger 1.0 (2009-04-05-14:17) svn:exportiert           


BUGS? Read http://svn.berlios.de/svnroot/repos/openocd/trunk/BUGS


$URL: svn://svn.berlios.de/openocd/trunk/src/openocd.c $
Debug: 6 0 command.c:91 script_command(): script_command - telnet_port
Debug: 7 0 command.c:108 script_command(): script_command - telnet_port, argv[0]=ocd_telnet_port
Debug: 8 0 command.c:108 script_command(): script_command - telnet_port, argv[1]=4444           
Debug: 10 0 command.c:91 script_command(): script_command - gdb_port                            
Debug: 11 0 command.c:108 script_command(): script_command - gdb_port, argv[0]=ocd_gdb_port     
Debug: 12 0 command.c:108 script_command(): script_command - gdb_port, argv[1]=3333             
Debug: 14 0 command.c:91 script_command(): script_command - tcl_port                            
Debug: 15 0 command.c:108 script_command(): script_command - tcl_port, argv[0]=ocd_tcl_port     
Debug: 16 0 command.c:108 script_command(): script_command - tcl_port, argv[1]=6666             
Debug: 18 0 command.c:91 script_command(): script_command - interface                           
Debug: 19 0 command.c:108 script_command(): script_command - interface, argv[0]=ocd_interface   
Debug: 20 0 command.c:108 script_command(): script_command - interface, argv[1]=ft2232          
Debug: 22 0 command.c:91 script_command(): script_command - ft2232_device_desc                  
Debug: 23 0 command.c:108 script_command(): script_command - ft2232_device_desc, argv[0]=ocd_ft2232_device_desc
Debug: 24 0 command.c:108 script_command(): script_command - ft2232_device_desc, argv[1]=Olimex OpenOCD JTAG A 
Debug: 26 0 command.c:91 script_command(): script_command - ft2232_layout                                      
Debug: 27 0 command.c:108 script_command(): script_command - ft2232_layout, argv[0]=ocd_ft2232_layout          
Debug: 28 0 command.c:108 script_command(): script_command - ft2232_layout, argv[1]=olimex-jtag                
Debug: 30 1 command.c:91 script_command(): script_command - ft2232_vid_pid                                     
Debug: 31 1 command.c:108 script_command(): script_command - ft2232_vid_pid, argv[0]=ocd_ft2232_vid_pid        
Debug: 32 1 command.c:108 script_command(): script_command - ft2232_vid_pid, argv[1]=0x15ba                    
Debug: 33 1 command.c:108 script_command(): script_command - ft2232_vid_pid, argv[2]=0x0003                    
Debug: 35 1 command.c:91 script_command(): script_command - jtag_khz                                           
Debug: 36 1 command.c:108 script_command(): script_command - jtag_khz, argv[0]=ocd_jtag_khz                    
Debug: 37 1 command.c:108 script_command(): script_command - jtag_khz, argv[1]=2000                            
Debug: 38 1 jtag.c:2606 handle_jtag_khz_command(): handle jtag khz                                             
User : 39 1 command.c:383 command_print(): 2000 kHz                                                            
Debug: 41 1 command.c:91 script_command(): script_command - jtag_nsrst_delay                                   
Debug: 42 1 command.c:108 script_command(): script_command - jtag_nsrst_delay, argv[0]=ocd_jtag_nsrst_delay    
Debug: 43 1 command.c:108 script_command(): script_command - jtag_nsrst_delay, argv[1]=200                     
Debug: 45 1 command.c:91 script_command(): script_command - jtag_ntrst_delay                                   
Debug: 46 1 command.c:108 script_command(): script_command - jtag_ntrst_delay, argv[0]=ocd_jtag_ntrst_delay    
Debug: 47 1 command.c:108 script_command(): script_command - jtag_ntrst_delay, argv[1]=200                     
Debug: 49 1 command.c:91 script_command(): script_command - reset_config                                       
Debug: 50 1 command.c:108 script_command(): script_command - reset_config, argv[0]=ocd_reset_config            
Debug: 51 1 command.c:108 script_command(): script_command - reset_config, argv[1]=trst_and_srst               
Debug: 52 1 command.c:108 script_command(): script_command - reset_config, argv[2]=srst_pulls_trst             
Debug: 53 1 jtag.c:1853 jim_newtap_cmd(): Creating New Tap, Chip: lpc2148, Tap: cpu, Dotted: lpc2148.cpu, 8 params
Debug: 54 1 jtag.c:1872 jim_newtap_cmd(): Processing option: -irlen                                               
Debug: 55 1 jtag.c:1872 jim_newtap_cmd(): Processing option: -ircapture                                           
Debug: 56 1 jtag.c:1872 jim_newtap_cmd(): Processing option: -irmask                                              
Debug: 57 1 jtag.c:1872 jim_newtap_cmd(): Processing option: -expected-id                                         
Debug: 58 1 jtag.c:1985 jim_newtap_cmd(): Created Tap: lpc2148.cpu @ abs position 0, irlen 4, capture: 0x1 mask: 0xf
Debug: 59 1 target.c:3961 jim_target(): Target command params:                                                      
Debug: 60 1 target.c:3962 jim_target(): target create lpc2148.cpu arm7tdmi -endian little -chain-position lpc2148.cpu -variant arm7tdmi-s_r4                                                                                                                                        
Debug: 62 2 command.c:91 script_command(): script_command - bank                                                                          
Debug: 63 2 command.c:108 script_command(): script_command - bank, argv[0]=ocd_flash_bank                                                 
Debug: 64 2 command.c:108 script_command(): script_command - bank, argv[1]=lpc2000                                                        
Debug: 65 2 command.c:108 script_command(): script_command - bank, argv[2]=0x0                                                            
Debug: 66 2 command.c:108 script_command(): script_command - bank, argv[3]=0x7d000                                                        
Debug: 67 2 command.c:108 script_command(): script_command - bank, argv[4]=0                                                              
Debug: 68 2 command.c:108 script_command(): script_command - bank, argv[5]=0                                                              
Debug: 69 2 command.c:108 script_command(): script_command - bank, argv[6]=0                                                              
Debug: 70 2 command.c:108 script_command(): script_command - bank, argv[7]=lpc2000_v2                                                     
Debug: 71 2 command.c:108 script_command(): script_command - bank, argv[8]=14765                                                          
User : 72 2 command.c:494 command_run_line():                                                                                             
Debug: 74 2 command.c:91 script_command(): script_command - init                                                                          
Debug: 75 2 command.c:108 script_command(): script_command - init, argv[0]=ocd_init                                                       
Debug: 76 3 openocd.c:137 handle_init_command(): target init complete                                                                     
Debug: 77 3 ft2232.c:1540 ft2232_init_ftd2xx(): 'ft2232' interface using FTD2XX with 'olimex-jtag' layout (15ba:0003)                     
Debug: 78 296 ft2232.c:1651 ft2232_init_ftd2xx(): current latency timer: 2                                                                
Debug: 79 297 ft2232.c:2079 olimex_jtag_init(): 80 08 1b                                                                                  
Debug: 80 298 ft2232.c:2122 olimex_jtag_init(): 82 09 0f                                                                                  
Debug: 81 298 ft2232.c:294 ft2232_speed(): 86 02 00                                                                                       
Debug: 82 299 openocd.c:144 handle_init_command(): jtag interface init complete                                                           
Debug: 83 299 jtag.c:2201 jtag_init_inner(): Init JTAG chain                                                                              
Debug: 84 299 jtag.c:390 jtag_call_event_callbacks(): jtag event: JTAG controller reset (RESET or TRST)                                   
Debug: 85 299 jtag.c:1450 jtag_reset_callback(): -                                                                                        
Debug: 86 300 jtag.c:390 jtag_call_event_callbacks(): jtag event: JTAG controller reset (RESET or TRST)                                   
Debug: 87 300 jtag.c:1450 jtag_reset_callback(): -                                                                                        
Info : 88 302 jtag.c:1570 jtag_examine_chain(): JTAG tap: lpc2148.cpu tap/device found: 0x9f3f1f0f (Manufacturer: 0x787, Part: 0xf3f1, Version: 0x9)                                                                                                                                
Error: 89 302 jtag.c:1594 jtag_examine_chain(): JTAG tap: lpc2148.cpu             got: 0x9f3f1f0f (mfg: 0x787, part: 0xf3f1, ver: 0x9)    
Error: 90 302 jtag.c:1603 jtag_examine_chain(): JTAG tap: lpc2148.cpu expected 1 of 1: 0x9f3f1f1f (mfg: 0x78f, part: 0xf3f1, ver: 0x9)    
Error: 91 302 jtag.c:2216 jtag_init_inner(): trying to validate configured JTAG chain anyway...                                           
Debug: 92 302 jtag.c:390 jtag_call_event_callbacks(): jtag event: JTAG controller reset (RESET or TRST)                                   
Debug: 93 302 jtag.c:1450 jtag_reset_callback(): -                                                                                        
Debug: 94 305 openocd.c:150 handle_init_command(): jtag init complete                                                                     
Error: 95 307 embeddedice.c:197 embeddedice_build_reg_cache(): unknown EmbeddedICE version (comms ctrl: 0x80000000)                       
Debug: 96 307 embeddedice.c:401 embeddedice_write_reg(): 12: 0x00000000                                                                   
Debug: 97 307 embeddedice.c:401 embeddedice_write_reg(): 20: 0x00000000
Debug: 98 307 openocd.c:153 handle_init_command(): jtag examine complete
Debug: 99 307 openocd.c:159 handle_init_command(): flash init complete
Debug: 100 307 openocd.c:163 handle_init_command(): mflash init complete

Die OpenOCD-Konfigurationsdatei:
debug_level 3

#daemon configuration
telnet_port 4444
gdb_port 3333
tcl_port 6666

interface ft2232
ft2232_device_desc "Olimex OpenOCD JTAG A"
ft2232_layout olimex-jtag
ft2232_vid_pid 0x15ba 0x0003
# 2MHz
jtag_khz 2000

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 {
   set _CPUTAPID 0x9f3f1f1f
}

jtag_nsrst_delay 200
jtag_ntrst_delay 200
reset_config trst_and_srst srst_pulls_trst

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 (i.e. select
  # "User Flash Mode" where interrupt vectors are _not_ remapped,
  # and reside in flash instead).
  #
  # See section 7.1 on page 32 ("Memory Mapping control register") in
  # "UM10139: Volume 1: LPC214x User Manual", Rev. 02 -- 25 July 2006.
  # http://www.standardics.nxp.com/support/documents/microcontrollers/pdf/user.manual.lpc2141.lpc2142.lpc2144.lpc2146.lpc2148.pdf
  mwb 0xE01FC040 0x01
}

# flash bank lpc2000 <base> <size> 0 0 <target#> <variant> <clock> [calc_checksum]
flash bank lpc2000 0x0 0x7d000 0 0 0 lpc2000_v2 14765

Kommandos mit denen OpenOCD gebaut wurde:
   ./bootstrap 
   mkdir build
   cd build
   ../configure --prefix=$(targetdir) --enable-ft2232_ftd2xx -with-ftd2xx-linux-tardir=$(libdir/libftd2xx0.4.16/
   make all install

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.