Forum: Mikrocontroller und Digitale Elektronik Olimex SAM7-LA2 (AT91SAM7A2) Adressbereich Flash/RAM


von Bri (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Bri (Gast)


Lesenswert?

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.

von Bri (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Bri (Gast)


Angehängte Dateien:

Lesenswert?

Und hier noch die OpenOCD Konfigurationsdatei.

von Tim R. (roddi)


Lesenswert?

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

von Kai (Gast)


Lesenswert?

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

von Martin (Gast)


Angehängte Dateien:

Lesenswert?

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!

von Khurram Gulzar (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.