Hallo alle zusammen. Folgendes Problem beschäftigt mich nun schon seid fast einer Woche: Ich muss für meine Diplomarbeit einen LPC2000 von NXP Programmieren. Zum einarbeitenin die Thematik habe ich ein MCB2100 mit LPC2129 von Keil zur Verfügung gestellt bekommen. Ich benutze die Yagarto Toolchain mit Eclipse. Das Funktioniert auch alles wunderbar. Ich habe schon einige Testprogramme geschrieben, erfolgreich Compiliert und auch per ISP auf den Controller übertragen. Jetzt will ich aber nicht immer mit dem Seriellen Kabel rumbasteln müssen, sondern ich möchte den OpenOCD-USB von embedded-projects benutzen. Das einrichten von dem Teil hat mich bestimmt einige Jahre meines Lebens und einige Nächte im Internet gekostet aber es geht jetzt. Ich kann jetzt das Programm per FlashMagic auf den Controller braten und dann mit OpenOCD und Eclipse mein Programm debuggen. (da debuggin im Flash nur mit 2 HW Breakpoints, macht aber nichts, ist allemal mehr als nichts oder son paar blink LEDs) Das einzige was jetzt noch nicht klappt ist das Flashen über JTAG. Ich bin mittlerweile bei folgenden Einstellungen angekommen: --- oocdlink.cfg (config Datei für die openocd-ftd2xx.exe): --- # sam7s-oocdlink.cfg # Openocd configuration for OpenOCD-USB connected to an AT91SAM7S256 # 2008-04-26 <Hubert.Hoegl@hs-augsburg.de> #daemon configuration telnet_port 4444 gdb_port 3333 # tell gdb our flash memory map gdb_memory_map enable # enable flash programming gdb_flash_program enable #interface interface ft2232 ft2232_device_desc "Dual RS232 A" ft2232_layout oocdlink ft2232_vid_pid 0x0403 0x6010 # JTAG speed needs to be slower otherwise there are strange timeouts # when trying to configure the device to go. jtag_speed 50 jtag_nsrst_delay 200 jtag_ntrst_delay 200 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 #target configuration daemon_startup reset #target arm7tdmi <endian> <reset mode> <chainpos> <variant> target arm7tdmi little run_and_halt 0 lpc2000 run_and_halt_time 0 30 sleep 500 arm7_9 force_hw_bkpts enable arm7_9 dcc_downloads enable #flash probe 0 #flash erase 0 0 26 working_area 0 0x00000000 0x400000 nobackup sleep 500 flash bank lpc2000 0x0 0x40000 0 0 0 lpc2000_v1 12000 calc_checksum sleep 500 --- EOF --- --- Und das initialisierungs script: --- # init.gdb target remote localhost:3333 set logging file gdb.log set logging on set history filename gdb.history set history save set history size 512 set history expansion on monitor arm7_9 write_xpsr 0x000000d3 0 monitor mww 0xE01FC040 0x00000001 monitor mww 0xE01FC080 0x00000001 monitor mww 0xE01FC084 0x00000023 monitor mww 0xE01FC08C 0x000000AA monitor mww 0xE01FC08C 0x00000055 monitor sleep 10 monitor mww 0xFFE00004 0x22000400 monitor mww 0xFFE00000 0x10002C65 monitor mww 0xE002C014 0x0F014924 monitor sleep 10 monitor wait_halt monitor sleep 500 monitor poll monitor soft_reset_halt monitor arm7_9 sw_bkpts disable monitor arm7_9 force_hw_bkpts enable monitor mww 0xE01FC040 0x0001 monitor mdw 0xE01FC040 monitor halt monitor wait_halt monitor sleep 500 monitor flash write_image canall.hex 0x00 ihex --- EOF --- Wenn ich nun das debuggen starten will bekomme ich schlussendlich diese Fehlermeldung: monitor flash write_image canall.hex 0x00 ihex memory write caused data abort (address: 0x00001000, size: 0x4, count: 0x2) memory write caused data abort (address: 0x00001008, size: 0x4, count: 0x6) memory write caused data abort (address: 0x00001020, size: 0x4, count: 0x3) lpc2000 prepare sectors returned -1 error writing to flash at address 0x00000000 at offset 0x00000000 Jemand ne Idee? Ich bin mir sicher, dass man das init script und die config erheblich ausmisten kann, aber ich weis nicht an welchen Stellen. Und am wichtigsten: Warum kann ich den Controller nicht Programmieren obwohl es mit FlashMagic und Serieller schnitstelle klappt???
- Welche OpenOCD-Version? - "working_area 0 0x00000000 0x400000 nobackup" sieht nicht gut aus. Startaddresse nicht im RAM, Größe passt nicht zur LPC2129 RAM - testweise vor flash write_image noch flash probe 0
Version: D:\Dokumente und Einstellungen\Sven>openocd-ftd2xx.exe Open On-Chip Debugger (2008-06-19 19:00) svn: 717 Muss die Working Area ins RAM wenn ich im Flash debuggen will? Bzw, was ist mit Workung Area überhaupt gemeint? Und die Größe passt natürlich nichtzum Ram sondern zum Flash, ich dachte ja, es müsse der Bereich angegeben werden in dem Das ding Arbeiten soll, also der Flash speicher, und der ist beim LPC2129 256Kbyte groß, oder? Ich schau schnell nach... Jop.. von 0x00000000 bis 0x0003ffff Oh, ich sehe grade, ich hab mich bei den Nullen verzählt.. -.- Geändert. --> Geht aber immer noch nicht. (ist echt frustrierend... man kommt immer näher ran aber eben nicht zum Ziel...) --- flash probe 0 liefert: monitor flash probe 0 flash 'lpc2000' found at 0x00000000
So. Geht. Ich werd in den nächsten Tagen mal beschreiben, wie ichs gelöst hab. Den entscheidenden Tip hab ich hier im Chat bekommen... Danke nochmal für die Hilfe!
Und? Wie ist die Loesung? :-) Ich haette Interesse daran. cu
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.