Hallo Leute, ich habe folgendes problem. Ich arbeite mit AT91RM9200 Board unter Linux. Ich möchte nur mein Board testen ohne Bootloader und ohne Linux Kernel. Ich habe schon eine arm-gcc Umgebung installiert und beim Suchen nach JTAG Wiggler(von Olimex)Software habe ich Openocd gefunden. Mit der unten angegebenen Konfiguration ./ configure --enable-parport --enable-parport_ppdev habe ich Openocd installiert. config-file für AT91RM9200 Board: #daemon configuration telnet_port 4444 gdb_port 3333 #interface interface parport parport_port 0x378 parport_cable wiggler jtag_speed 0 # reset_config <signals> [combination] [trst_type] [srst_type] #reset_config trst_and_srst #jtag scan chain jtag_device 4 0x1 0xf 0xe jtag_nsrst_delay 333 jtag_ntrst_delay 333 #target configuration, what to do on a target reset target arm920t little run_and_halt 0 arm920t_r4 run_and_halt_time 0 30 daemon_startup reset # target_script 0 reset openocd.script # working_area 0 0x40000000 0x4000 nobackup #flash bank cfi 0x10000000 0x01000000 2 2 0 Mit dem Befehl openocd -d AT91.cfg starte ich Openocd. Danach bekomme ich folgende Fehlermeldung angezeigt: Info: openocd.c:82 main(): Open On-Chip Debugger (2006-08-01 12:00 CEST) Error: parport.c:333 parport_init(): cannot open device. check it exists and that user read and write rights are set Ich bin aber als root angemeldet. Die Schreib- und Leserechte sind auch eingestellt. Aber ich habe festgestellt, dass ich statt "parport" "lp0" habe. kann jemand mir bitte bitte helfen??????????? Wenn ich statt "interface parport" "interface parport0"eingebe, wird folgende Fehlermeldung angezeigt: Info: openocd.c:82 main(): Open On-Chip Debugger (2006-08-01 12:00 CEST) Info: configuration.c:50 configuration_output_handler(): Command parport_port not found Info: configuration.c:50 configuration_output_handler(): Command parport_cable not found Error: jtag.c:1223 jtag_init(): No valid jtag interface found (parport0) Error: jtag.c:1224 jtag_init(): compiled-in jtag interfaces: Error: jtag.c:1227 jtag_init(): 0: parport Error: jtag.c:1227 jtag_init(): 1: amt_jtagaccel Bin eine Frau brauche eure Hilfe ;-)
Hi, wenn du den OpenOCD via ppdev verwenden willst, solltest du auch das ppdev Modul laden, dann sollte es auch /dev/parport0 geben. Generell sollte man das lp Modul (das ist nur für Parport-Drucker zuständig) rauswerfen, da es sonst zu Problemen kommen kann. Im .cfg File ist dann auch "parport_port N" die Richtige Auswahl, also der N-te Parport (/dev/parportN). > Info: openocd.c:82 main(): Open On-Chip Debugger (2006-08-01 12:00 > CEST) Ich bin zwar notorisch nachlässig, wenn es um's Updaten der Versions-Strings geht, allerdings bin ich mir sicher, dass aktuelle Sourcen einen 2007-er String tragen. Bitte immer die aktuelle Version aus dem SVN Repository verwenden. Wie man einen Checkout macht steht auf der OpenOCD Webseite. Gruss, Dominic
> Bin eine Frau brauche eure Hilfe ;-)
Das sagen auch Typen, weil sie sonst nur wieder dumm angelabert werden
hier ;-)
Hallo Dominic, danke dir! Mal gucken ob dass so funktioniert!
Hallo Gast, > Das sagen auch Typen, weil sie sonst nur wieder dumm angelabert werden > hier ;-) Warst du auch schonmal eine Frau :-). Hast anscheinend Erfahrungen. Aber ich weis am besten, was ich bin - eine Frau - und das bleibt auch so!
Hallo Dominic, ich muss dich leider weiter nerven. Ich muss in letzter Zeit nur Fehler suchen. akt. Konfigurationsfile: --------------------------------------------------------------------- #daemon configuration telnet_port 4444 gdb_port 3333 #interface interface parport parport_port /dev/parport0 parport_cable wiggler jtag_speed 12 #use combined on interfaces or targets that can't set TRST/SRST separately #reset_config none reset_config trst_and_srst srst_pulls_trst #jtag scan chain #format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE) jtag_device 4 0x1 0xf 0xe #jtag_device 8 0x1 0x1 0xfe #jtag_device 4 0x1 0xf 0xe #jtag_device 5 0x1 0x1 0x1e #target configuration daemon_startup reset #target <type> <endianess> <reset mode> target arm9tdmi little reset_halt 0 arm920t working_area 0 0x200000 0x4000 backup run_and_halt_time 0 5000 #flash configuration #flash bank <driver> <base> <size> <chip_width> <bus_width> [driver_options ...] #flash bank cfi 0x10000000 0x800000 2 2 0 ------------------------------------------------------------------------ -- Die aktuellste Fehlermeldung lautet: ------------------------------------------------------------------------ - /usr/openocd/src # openocd -f arm9.cfg -d Info: openocd.c:86 main(): Open On-Chip Debugger (2007-03-30 12:00 CEST) Debug: jtag.c:1335 jtag_init(): - Debug: parport.c:329 parport_init(): opening /dev/parport0... Debug: parport.c:341 parport_init(): ...open Debug: parport.c:213 parport_reset(): trst: 0, srst: 0 Debug: jtag.c:278 jtag_call_event_callbacks(): jtag event: TRST asserted Debug: jtag.c:1126 jtag_reset_callback(): - Debug: bitbang.c:223 bitbang_execute_queue(): statemove end in 0 Debug: jtag.c:278 jtag_call_event_callbacks(): jtag event: TRST asserted Debug: jtag.c:1126 jtag_reset_callback(): - Debug: bitbang.c:237 bitbang_execute_queue(): scan end in 0 Debug: jtag.c:996 jtag_build_buffer(): fields[0].out_value: 0x00000001000000ff Debug: jtag.c:1027 jtag_read_buffer(): fields[0].in_value: 0x00000000000001fc Debug: jtag.c:1220 jtag_examine_chain(): JTAG device found: 0x0000007f (Manufacturer: 0x03f, Part: 0x0000, Version: 0x0 Debug: jtag.c:1220 jtag_examine_chain(): JTAG device found: 0xd9f98841 (Manufacturer: 0x420, Part: 0x9f98, Version: 0xd Debug: jtag.c:1220 jtag_examine_chain(): JTAG device found: 0x0000000f (Manufacturer: 0x007, Part: 0x0000, Version: 0x0 Debug: jtag.c:1220 jtag_examine_chain(): JTAG device found: 0x0bf030df (Manufacturer: 0x06f, Part: 0xbf03, Version: 0x0 Debug: jtag.c:1220 jtag_examine_chain(): JTAG device found: 0x0000172d (Manufacturer: 0x396, Part: 0x0001, Version: 0x0 Debug: jtag.c:1220 jtag_examine_chain(): JTAG device found: 0x4000050b (Manufacturer: 0x285, Part: 0x0000, Version: 0x4 Debug: jtag.c:1220 jtag_examine_chain(): JTAG device found: 0x01bf307f (Manufacturer: 0x03f, Part: 0x1bf3, Version: 0x0 Debug: jtag.c:1220 jtag_examine_chain(): JTAG device found: 0x20df9901 (Manufacturer: 0x480, Part: 0x0df9, Version: 0x2 Debug: jtag.c:1220 jtag_examine_chain(): JTAG device found: 0x200001b1 (Manufacturer: 0x0d8, Part: 0x0000, Version: 0x2 Debug: jtag.c:1220 jtag_examine_chain(): JTAG device found: 0xc00fc041 (Manufacturer: 0x020, Part: 0x00fc, Version: 0xc Debug: jtag.c:1220 jtag_examine_chain(): JTAG device found: 0x100df2cf (Manufacturer: 0x167, Part: 0x00df, Version: 0x1 Debug: jtag.c:1220 jtag_examine_chain(): JTAG device found: 0xb120df99 (Manufacturer: 0x7cc, Part: 0x120d, Version: 0xb Debug: jtag.c:1220 jtag_examine_chain(): JTAG device found: 0xb1200001 (Manufacturer: 0x000, Part: 0x1200, Version: 0xb Debug: jtag.c:1220 jtag_examine_chain(): JTAG device found: 0x00001001 (Manufacturer: 0x000, Part: 0x0001, Version: 0x0 Error: jtag.c:1230 jtag_examine_chain(): number of discovered devices in JTAG chain (175) doesn't match configuration (1) --------------------------------------------------------------------- Mein JTAG ist von Olimex(http://www.olimex.com/dev/pdf/arm-jtag.pdf). Ich weis nicht ob es daran liegt. Hast du vielleicht ne Ahnung, woran es liegen könnte? mfg
Hallo, zumindest der Parallel Port wurde jetzt ordnungsgemäß geöffnet, allerdings gibt es ein Problem bei der JTAG Kommunikation. Der Olimex ARM-JTAG Adapter sollte eigentlich ausreichen, zumindest funktioniert er hier einwandfrei. Problematischer sind die Parallelports der PCs, bei Laptops ist es noch deutlich schlimmer. Eventuell schafft ein kürzeres Parallelport Kabel abhilfe. Um welches Target Board handelt es sich denn? Gruss, Dominic
Hallo Dominic, ich hab das Kabel kürzer gemacht. Jetzt läuft das Programm ununterbrochen. Ist das normal? ------------------------------------------------------------------------ Debug: embeddedice.c:209 embeddedice_read_reg_w_check(): 1 Debug: bitbang.c:198 bitbang_execute_queue(): end_state: 8 Debug: bitbang.c:237 bitbang_execute_queue(): scan end in -1 Debug: jtag.c:996 jtag_build_buffer(): fields[0].out_value: 0x00000000 Debug: jtag.c:996 jtag_build_buffer(): fields[1].out_value: 0x01 Debug: jtag.c:996 jtag_build_buffer(): fields[2].out_value: 0x00 Debug: bitbang.c:237 bitbang_execute_queue(): scan end in -1 Debug: jtag.c:996 jtag_build_buffer(): fields[0].out_value: 0x00000000 Debug: jtag.c:996 jtag_build_buffer(): fields[1].out_value: 0x04 Debug: jtag.c:996 jtag_build_buffer(): fields[2].out_value: 0x00 Debug: jtag.c:1027 jtag_read_buffer(): fields[0].in_value: 0x00000000 Debug: embeddedice.c:209 embeddedice_read_reg_w_check(): 1 ------------------------------------------------------------------------ - Das Target Board ist von mir. bist echt schnell. Dankeschön. mfg!
Hey, der OpenOCD ist generell als Daemon konzipiert, d.h. er läuft (im Hintergrund), bis ein Client eine Verbindung aufbaut. Aktuell unterstützt der OpenOCD Verbindungen via Telnet (default port 4444) und GDB (default port 3333). Versuch doch einfach mal eine Verbindung via Telnet zu Port 4444, sobald der OpenOCD wie von dir beschrieben läuft. Gruss, Dominic
<offtopic> > Hallo Gast, >> Das sagen auch Typen, weil sie sonst nur wieder dumm angelabert werden >> hier ;-) > Warst du auch schonmal eine Frau :-). Hast anscheinend Erfahrungen. Zwar lange Haare, aber keine Frau :-) > Aber ich weis am besten, was ich bin - eine Frau - und das bleibt auch > so! Okay - das überzeugt mich halbwegs. Aber noch eine Frage - sind deine Socken Rosa oder Blau? :-) Btw: Bahar ist ein netter Name - vor Popstar'07 kannte ich den noch nicht - aber die kleine süße Bahar schwärm </offtopic> <ontopic> Sorry - da kann ich dir nicht weiterhelfen :-) </ontopic>
Hallo Dominic, hab gestern auch festgestellt und es klappt jetzt mit (gdb)target remote localhost:3333 Ich kann jetzt mit gdb arbeiten. Jetzt muss ich mich mit Openocd Befehle beschäftigen und versuch sie zu verstehen. Wenn ich monitor flash probe 0 eingeben, wird folgende Fehlermeldung ausgegeben: "probing failed for flash bank '#0' at 0x10000000" ich hab SPI Flash(AT45CS1282) an Pin NC0. in configfile habe ich stehen: #flash bank <driver> <base> <size> <chip_width> <bus_width> [driver_options ...] flash bank cfi 0x10000000 0x800000 2 2 0 Ich habe mir alles anders vorgestellt. Durch Fehlermeldungen werde ich noch schneller alt. Weist du woran es liegen könnte? Bin dir echt dankbar! mfg
> Okay - das überzeugt mich halbwegs. Aber noch eine Frage - sind deine > Socken Rosa oder Blau? :-) Diese Frage kannst und darfst hier gar nicht stellen. Das hat nix mit µControllern zutun. Aber du hast mich auf eine Idee gebracht. Kennt jemand ein µici, wo man die Sockenfarbe ständig ändern kann wie eine Lichtquelle? Menschen, die ein Leben lang gleiche Socken tragen!!! ne ne das war keine gute Idee... > Btw: Bahar ist ein netter Name - vor Popstar'07 kannte ich den noch > nicht - aber die kleine süße Bahar *schwärm* ich muss mich sofort aber sofort umbennen Bruder Gast. Das ist mir gar nicht aufgefallen, dass sie auch so heisst. > Sorry - da kann ich dir nicht weiterhelfen :-) Genau das wollte ich hören bzw. sehen und lesen. mfg
Hey, der OpenOCD unterstütz aktuell noch keine seriellen Flashes (Atmel Dataflash etc.). Die aktuelle SVN Revision unterstützt: - LPC2000 internes Flash - AT91SAM7 internes Flash - STR7x internes Flash - STR9x internes Flash - externe CFI kompatible Flashes nach Intel Standard - extern CFI kompatible Flashes nach Spansion/AMD Standard (brandneu, und noch nicht auf allzu vielen Devices getestet) - externe NAND Flashes an einem LPC3180 NAND Controller (lässt sich einfach auf andere NAND Controller erweitern) Gruss, Dominic
Hallo Dominic, dann kann mir Openocd auch nicht weiter helfen. Kennst du vielleicht was ähnlichens wie Openocd aber mit spi flash unterstützung? Vielleicht mach ich doch mit Uboot, wenn ich keine andere Lösung finde. Das leben ist unter linux nicht teuer aber schwer. Ich danke dir Dominic!
Hi, was du suchst ist ja nicht nur SPI Flash Unterstützung, sondern auch noch Unterstützung für den SPI Controller des AT91RM9200 - ein Debugger müsste dazu Treiber für viele unterschiedliche Controller mitbringen. Ich denke nicht, dass es soetwas gibt. Ich denke man würde in dem Fall per Debugger einen Loader (z.B. gleich u-boot) in's RAM laden, und diesen das SPI Flash schreiben lassen. Ich wüsste übrigens im Moment auch keinen Windows Debugger, der mit SPI Flashes an einem AT91RM9200 umgehen kann. Gruss, Dominic
hallo, der einzige debugger der das programmieren von seriellen flashes unterstützt ist der/das peedi (http://www.ronetix.at/peedi.html). allerdings konnte ich dein AT45CS1282 auf der liste der unterstützten flashes nicht finden. desweiteren ist der/das peedi nicht ganz billig. gruss gerhard
Hallo, danke dir Dominic für deine Hilfe. Gerhard ich arbeite unter Linux. Der Debugger soll möglichst billig sein, besser Open Source. Hat jemand schon mit u-boot und AT91RM9200 gearbeitet? Und einen Uploader braucht man auch?? mfg
Hallo, ich hatte U-Boot für ein CSB337 (ein AT91RM9200 basiertes Board von Cogent Computers) angepasst, allerdings habe ich das Board nicht mehr, und da der AT91RM9200 Support in U-Boot zu der Zeit gerade in einer Umbruchphase war hatte ich den Patch auch nie Upstream gebracht. Unterstützung für den AT91RM9200 selbst ist in U-Boot bereits enthalten, die Anpassungen beschränken sich also im Grunde auf den board-spezifischen Code, etwa Clock Setup, SDRAM und Flash Konfiguration. Wenn dein Board via SPI Flash booten soll wirst du aber auf Probleme mit der aktuellen U-Boot Version stossen, da der U-Boot Maintainer und die Atmel Entwickler andere Ansichten darüber haben, wie mit solchen "Flash" Varianten umgegangen werden soll. In U-Boot werden diese Speicherchips als "Storage" bezeichnet, und nicht als "Memory", da Memory nach Ansicht der U-Boot Entwickler etwas ist, das am Prozessorbus hängt, und von diesem wie ganz normaler Speicher zumindest gelesen werden kann (also z.B. SRAM, SDRAM oder paralleles NOR Flash). Wenn du es "richtig" machen willst solltest du die relaventen Threads der letzten Wochen und Monate auf der U-Boot Mailingliste durchgehen, und evtl. dort nachfragen, was der aktuelle Stand der Dinge ist. Für Systeme, die via NAND Flash Booten gibt es nand_spl, für SPI sollte wohl etwas ähnliches entwickelt werden. Wenn du nur willst, dass es funktioniert, solltest du auf AT91.com nachsehen. Wenn ich mich recht erinnere gibt es dort AT91 spezifische Anpassungen, die in dieser Form wohl nicht Upstream gehen werden. Gruss, 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.