Hallo, ich habe openocd unter intel-OS X folgendermaßen compiliert: ./configure --enable-ft2232_libftdi --prefix=/usr/local/arm Vorher habe ich natürlich die libftdi und die libusb compiliert. Nach einem aufruf von "openocd -f OCD_FLASH_ARM7.cfg -d" erhalte ich folgende Fehlermeldung bzw. Debugausgabe: ==================================== Info: openocd.c:86 main(): Open On-Chip Debugger (2007-04-26 16:40 CEST) Debug: jtag.c:1389 jtag_init(): - Debug: ft2232.c:1420 ft2232_init_libftdi(): 'ft2232' interface using libftdi with 'usbjtag' layout (0403:6010) Debug: ft2232.c:1462 ft2232_init_libftdi(): current latency timer: 2 Debug: ft2232.c:1625 usbjtag_init(): 80 18 1b Debug: ft2232.c:252 ft2232_speed(): 86 00 00 Debug: jtag.c:279 jtag_call_event_callbacks(): jtag event: TRST asserted Debug: jtag.c:1180 jtag_reset_callback(): - Debug: jtag.c:279 jtag_call_event_callbacks(): jtag event: TRST asserted Debug: jtag.c:1180 jtag_reset_callback(): - Debug: jtag.c:1274 jtag_examine_chain(): JTAG device found: 0x3f0f0f0f (Manufacturer: 0x787, Part: 0xf0f0, Version: 0x3 Debug: jtag.c:279 jtag_call_event_callbacks(): jtag event: TRST asserted Debug: jtag.c:1180 jtag_reset_callback(): - Debug: openocd.c:104 main(): jtag init complete Debug: embeddedice.c:228 embeddedice_read_reg_w_check(): 4 Debug: jtag.c:279 jtag_call_event_callbacks(): jtag event: TRST released Debug: jtag.c:1180 jtag_reset_callback(): - Debug: arm7_9_common.c:657 arm7_9_assert_reset(): target->state: unknown Debug: jtag.c:279 jtag_call_event_callbacks(): jtag event: SRST asserted Debug: jtag.c:1180 jtag_reset_callback(): - Debug: jtag.c:279 jtag_call_event_callbacks(): jtag event: TRST asserted Debug: jtag.c:1180 jtag_reset_callback(): - Debug: jtag.c:279 jtag_call_event_callbacks(): jtag event: SRST asserted Debug: jtag.c:1180 jtag_reset_callback(): - Debug: arm7_9_common.c:723 arm7_9_deassert_reset(): target->state: reset Debug: jtag.c:279 jtag_call_event_callbacks(): jtag event: SRST released Debug: jtag.c:1180 jtag_reset_callback(): - Debug: openocd.c:108 main(): target init complete Debug: openocd.c:112 main(): flash init complete Debug: openocd.c:116 main(): NAND init complete Debug: openocd.c:120 main(): pld init complete Debug: gdb_server.c:1347 gdb_init(): gdb service for target arm7tdmi at port 3333 Debug: arm7_9_common.c:872 arm7_9_halt(): target->state: reset Debug: embeddedice.c:228 embeddedice_read_reg_w_check(): 1 Debug: jtag.c:279 jtag_call_event_callbacks(): jtag event: TRST released Debug: jtag.c:1180 jtag_reset_callback(): - Debug: embeddedice.c:228 embeddedice_read_reg_w_check(): 1 Debug: embeddedice.c:228 embeddedice_read_reg_w_check(): 1 Debug: embeddedice.c:228 embeddedice_read_reg_w_check(): 1 Debug: embeddedice.c:228 embeddedice_read_reg_w_check(): 1 Debug: embeddedice.c:228 embeddedice_read_reg_w_check(): 1 Debug: embeddedice.c:228 embeddedice_read_reg_w_check(): 1 Debug: embeddedice.c:228 embeddedice_read_reg_w_check(): 1 Debug: embeddedice.c:228 embeddedice_read_reg_w_check(): 1 Debug: embeddedice.c:228 embeddedice_read_reg_w_check(): 1 Debug: embeddedice.c:228 embeddedice_read_reg_w_check(): 1 Debug: embeddedice.c:228 embeddedice_read_reg_w_check(): 1 Debug: embeddedice.c:228 embeddedice_read_reg_w_check(): 1 Debug: embeddedice.c:228 embeddedice_read_reg_w_check(): 1 Debug: embeddedice.c:228 embeddedice_read_reg_w_check(): 1 Debug: embeddedice.c:228 embeddedice_read_reg_w_check(): 1 Debug: embeddedice.c:228 embeddedice_read_reg_w_check(): 1 Debug: embeddedice.c:228 embeddedice_read_reg_w_check(): 1 Debug: embeddedice.c:228 embeddedice_read_reg_w_check(): 1 Debug: embeddedice.c:228 embeddedice_read_reg_w_check(): 1 Debug: embeddedice.c:228 embeddedice_read_reg_w_check(): 1 Debug: embeddedice.c:228 embeddedice_read_reg_w_check(): 1 Debug: embeddedice.c:228 embeddedice_read_reg_w_check(): 1 Debug: embeddedice.c:228 embeddedice_read_reg_w_check(): 1 Debug: embeddedice.c:228 embeddedice_read_reg_w_check(): 1 ==================================== Mein cfg-File sieht so aus: ==================================== telnet_port 4444 gdb_port 3333 #reset the target on startup (reset | attach) daemon_startup reset #interface configuration interface ft2232 jtag_speed 0 #use maximum speed reset_config srst_only jtag_device 4 0x1 0xF 0xE #ft2232_device_desc "Dual RS232 A" ft2232_layout usbjtag #ft2232_vid_pid 0x00 0x00 #we use an arm7tdmi little endian system and request an #immediate halt after reset of the processor target arm7tdmi little run_and_halt 0 arm7tdmi_r4 run_and_halt_time 0 30 #flash instructions target_script 0 reset ARM7_Flash.script working_area 0 0x40000000 0x4000 nobackup flash bank at91sam7 0 0 0 0 0 ==================================== und das .script so: ==================================== arm7_9 dcc_downloads enable #armv4_5 core_mode arm wait_halt sleep 10 #Disable watchdog and enable main oscillator #otherwise flashing takes forever and ever #Taken from Martin Thomas and the script "openocd_at91sam7_ecr.script" mww 0xfffffd44 0x00008000 # disable watchdog mww 0xfffffd08 0xa5000001 # enable user reset mww 0xfffffc20 0x00000601 # CKGR_MOR : enable the main oscillator sleep 10 mww 0xfffffc2c 0x00481c0e # CKGR_PLLR: 96.1097 MHz sleep 10 # stabilize ! mww 0xfffffc30 0x00000007 # PMC_MCKR : MCK = PLL / 2 ~= 48 MHz sleep 10 # stabilize ! mww 0xffffff60 0x003c0100 # MC_FMR: flash mode (FWS=1,FMCN=60) #erase the flash flash erase 0 0 15 sleep 10 #write data to the flash flash write 0 ../Release/ledtest.hex 0x0 sleep 10 reset sleep 10 shutdown ==================================== Leider habe ich wie gesagt obigen Fehler und weiß leider auch nicht mehr weiter! Hat vielleicht jemand von euch eine Idee? Danke für die Hilfe Andreas
Hallo Andreas, das sind eigentlich keine Fehlermeldungen, sondern nur die ganz normale Debug Ausgabe. Der OpenOCD ist als Daemon designed, d.h. er sollte im Hintergrund laufen, während der User via Telnet oder GDB auf ihn zugreift. Das .cfg File konfiguriert den OpenOCD allerdings so, dass gleich nach dem Start ein Reset durchgeführt wird, in dessen Folge das Target angehalten werden soll. Sobald das Target anhält soll das Skript ausgeführt werden, das dann das Flash beschreibt und den OpenOCD wieder beenden soll. Allerdings scheint das Anhalten fehlzuschlagen - der OpenOCD läuft einfach weiter, die Debug Ausgabe zeit, dass der OpenOCD das Target immer wieder nach seinem Zustand frägt. Du könntest eine Verbindung via Telnet zu localhost port 4444 aufbauen, und versuchen, das Target via "halt" anzuhalten, und dann die Befehle des Skripts via Telnet eingeben. Gruß, Dominic
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.