Hallo an alle high performer hier im Forum ;-) Ich habe von Olimex das Board SAM7-LA2 zu Testzwecken gekauft. Auf dem Board ist ein AT91SAMA2 mit 1MB Flash und 4MB SRAM verbaut. Das Board ist recht preiswert und da man immer das bekommt was man bezahlt, ist die Dokumentation sehr dürftig. Ich versuche grad rauszufinden, bei welchen Adressen der SRAM und der Flash eingeblendet wird. Ich versuche das grad mit dem Datenblatt des AT91SAM7A2 und dem Schaltplan des Boards, den ich hier angehangen habe, zu ermitteln. Für die Adressen sind offenbar folgende ICs zuständig: IC1A, IC1B und IC2A. Folgendes habe ich mir zusammengereimt: Wenn CS0 ausgewählt ist und A20/CS3 nicht, dann wird der Flash angesprochen. Wenn CS0 ausgewählt ist und A20/CS3, dann wird der Ethernet-Chip angesprochen. Leider kenn ich mich mit dem ARM noch nicht gut genug aus, um jetzt rauszufinden, welcher Adresse das entspricht. Oder kann man das irgendwie software mäßig einstellen, wo der Bereich je nach Kombination der CS Leitungen erscheint? Das SRAM macht mir da auch noch gewisse Schwierigkeiten. Also wenn CS1 oder CS2 ausgewählt wird, dann wird der SRAM angesprochen. Also wird er an zwei Stellen eingeblendet, richtig? Und gibt das nicht Probleme mit dem Flash, weil CS0 hier gar nicht verwendet wird? Irgendwie ist das mit dem Speicher bei anderen Controllern einfacher.
Ok, ich antworte mir mal selbst. Offenbar reicht es bei einem AT91SAM7 nicht, wie bei anderen Mikrocontrollern, das Handbuch mal bissl zu überfliegen. ;-) Weiter hinten im Handbuch steht dann etwas über einen AMC, einen advanced memory controller, bei dem man einstellen muss, wo der Flash und der SRAM eingeblendet wird.
So, ich habe es nun geschafft. Ich kann per JTAG mit OpenOCD das Olimex SAM7-LA2 Board programmieren. Das Init-Script initialisiert den AT91SAM7A2 nach dem reset richtig und das MX26LV800B Flash wird richtig erkannt. Ich bin mal so frei und poste hiermit die Scripte für OpenOCD, falls noch jemand die gleichen Probleme hat.
Und hier noch die OpenOCD Konfigurationsdatei.
hi, kannst du mir mal bitte schritt für schritt erklären wie du das Board über openocd flashst? benutz das selbe board und selbst mit deiner .cfg und deinem script will er einfach nicht schreiben! gibts da noch nen haken mit der bank oder sonst noch etwas an das man als unerfahrener auf dem gebiet nicht denkt? schon mal besten dank... mfg
Hallo, ich möchte mich dazu auch einschalten. Bisher ist es auch mir nicht gelungen den Flash-Speicher per JTAG zu programmieren. Sobald über GDB eine Verbindung aufgebaut wird erscheint: Debug: 215 6781 cfi.c:1939 cfi_probe(): CFI qry returned: 0x04 0xffffff98 0xffffffd3 Debug: 216 6781 embeddedice.c:397 embeddedice_write_reg(): 0: 0x00000004 Debug: 217 6781 embeddedice.c:397 embeddedice_write_reg(): 0: 0x00000005 Debug: 218 6781 embeddedice.c:397 embeddedice_write_reg(): 0: 0x00000004 Debug: 219 6781 embeddedice.c:397 embeddedice_write_reg(): 0: 0x00000005 Error: 220 6781 cfi.c:1947 cfi_probe(): Could not probe bank Error: 221 6781 flash.c:219 get_flash_bank_by_num(): auto_probe failed -900 Hat da noch jemand einen Tip? mfG Kai
Hallo, bei mir klappt das Flashen auch nicht. Meine Konfiguration: SAM7-LA2 Board ARM-USB-TINY, beide von Olimex. OpenOCD_r717, Yagarto: binutils: 2.18 gcc: 4.3.2 newlib: 1.16.0 gdb: 6.8.50-20080308-cvs Ich habe bei Olimex angefragt, aber nur eine spärliche Antwort erhalten, man solle doch auf kommerzielle Debugger ausweichen, OpenOCD werde nicht unterstützt. Beim Ausführen des Scripts oder beim Aufbauen einer telnet-Verbindung, danach mit flash info 0 bekomme ich immer die Fehlermeldung: Cannot identify target as AT91SAM. Dabei habe ich das von den obigen Post abgelegte Script verwendet. Das JTAG Konfigurations File ist: #define ports telnet_port 4444 gdb_port 3333 # tell gdb our flash memory map # and enable flash programming gdb_memory_map enable gdb_flash_program enable #commands specific to the Olimex OpenOCD JTAG TINY interface ft2232 ft2232_device_desc "Olimex OpenOCD JTAG TINY A" ft2232_layout "olimex-jtag" ft2232_vid_pid 0x15BA 0x0004 jtag_speed 10 jtag_nsrst_delay 500 jtag_ntrst_delay 500 #reset_config <signals> [combination] [trst_type] [srst_type] #reset_config trst_and_srst separate #reset_config srst_only srst_pulls_trst reset_config trst_only #hilft vielleicht nix jtag_reset 1 1 jtag_reset 0 0 #jtag_device <IR length> <IR capture> <IR mask> <IDCODE instruction> jtag_device 4 0x1 0xf 0xe #daemon_startup <'attach'|'reset'> daemon_startup reset #daemon_startup attach #target <type> <endianess> <reset_mode> <jtag#> [variant] #target arm7tdmi little run_and_init 0 arm7tdmi-s_r4 #target arm7tdmi little run_and_init 0 arm7tdmi target arm7tdmi little 0 arm7tdmi #run_and_halt_time <target#> <time_in_ms> run_and_halt_time 0 30 # commands below are specific to AT91sam7 Flash Programming # --------------------------------------------------------- #target_script specifies the flash programming script file target_script 0 reset sam7flash.script #working_area <target#> <address> <size> <'backup'|'nobackup'> working_area 0 0x40000000 0x4000 nobackup #flash bank at91sam7 0 0 0 0 <target#> #flash bank at91sam7 0 0 0 0 0 flash bank cfi 0x40000000 0x00100000 2 2 0 #gdb_memory_map enable Weiß jemand Bescheid? Bei: flash probe 0 erhalte ich noch die Fehlermeldung: unknown error when probing flash bank #0 at 0x00000000 Vielen Dank!
Hi I am new to ARM. I also bought Olimex SAM7-LA2 Due to its vast interfaces ... I am having problems in downloading the code to the flash. If some one can provide step by step guide on how to load the bin/hex/elf/etc files to the external flash of this board I will be very thankful to you Thanx in Advance Khurram Gulzar
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.