Forum: Mikrocontroller und Digitale Elektronik OpenOCD Fehler beim Flashen


von Johannes (Gast)


Lesenswert?

Hallo,

ich habe heute eine neue Version meiner Platine aufgebaut und wollte sie 
dann mit einer komplett neuen Software (einem USB-seriell-Beispiel von 
Atmel) flashen. Ich verwende dazu OpenOCD und den ARM-USB-Tiny von 
Olimex. Der Mikrokontroller ist ein AT91SAM7S64.

Folgende Ausgabe erhalte ich:
1
Info:    options.c:50 configuration_output_handler(): jtag_speed: 2, 2
2
Info:    options.c:50 configuration_output_handler(): Open On-Chip Debugger 1.0 (2008-10-04-10:00) svn:exported
3
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x3f0f0f0f (Manufacturer: 0x787, Part: 0xf0f0, Version: 0x3)
4
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x3f0f0f0f (Manufacturer: 0x787, Part: 0xf0f0, Version: 0x3)
5
User:    target.c:436 target_process_reset(): Timed out waiting for halt after reset

Ich habe irgendwo anders mal gesehen, dass es an einem fehlenden 
"#define __inline static inline" liegen konnte. Hat bei mir leider nicht 
funktioniert.

Was kann ich da machen. Ich bekomm auf den Kontroller keine Software 
mehr drauf. Egal welche.

Irgendwelche Vorschläge?

Schönen Gruß,
Johannes

von Bert 0. (maschinist)


Lesenswert?

Hallo Johannes,

hast Du schon mal einen "harten" Flash-Löschvorgang über den ERASE-Pin 
ausgelöst?

Wenn versehentlich das Security-Bit gesetzt wurde, kommst Du nur so 
wieder an das Flash.


Gruß...Maschinist

von Martin T. (mthomas) (Moderator) Benutzerseite


Lesenswert?

Ansonsten: Inhalte der Konfigurationsdateien? Was passiert beim Versuch 
über die Telnetschnittstelle einen Reset auszulösen oder den Core 
anzuhalten?

von Johannes (Gast)


Lesenswert?

Hallo Maschinist,

wie löse ich den harten Löschvorgang aus? ERASE-Pin auf LOW oder HIGH 
oder wie?

Und hier der Inhalt der Konfigdateien:

armusbocd_tiny.cfg
1
telnet_port 4444
2
gdb_port 3333
3
4
5
interface ft2232
6
ft2232_device_desc "Olimex OpenOCD JTAG TINY A"
7
ft2232_layout "olimex-jtag"
8
ft2232_vid_pid 0x15BA 0x0004
9
10
jtag_speed 2
11
jtag_nsrst_delay 200
12
jtag_ntrst_delay 200
13
14
#reset_config <signals> [combination] [trst_type] [srst_type]
15
reset_config trst_and_srst separate
16
17
#jtag_device <IR length> <IR capture> <IR mask> <IDCODE instruction>
18
jtag_device 4 0x1 0xf 0xe
19
20
#daemon_startup <'attach'|'reset'>
21
daemon_startup reset
22
23
#target <type> <endianess> <reset_mode> <jtag#> [variant]
24
target arm7tdmi little run_and_init 0 arm7tdmi_r4
25
26
#run_and_halt_time <target#> <time_in_ms>
27
run_and_halt_time 0 30
28
29
# commands below are specific to AT91sam7 Flash Programming
30
# ---------------------------------------------------------
31
32
#target_script specifies the flash programming script file
33
target_script 0 reset sam7flash.script
34
35
#working_area <target#> <address> <size> <'backup'|'nobackup'>
36
working_area 0 0x40000000 0x4000 nobackup
37
38
#flash bank at91sam7 0 0 0 0 <target#>
39
flash bank at91sam7 0 0 0 0 0

###########################################################


sam7flash.script
1
wait_halt
2
armv4_5 core_state arm
3
flash probe 0
4
flash erase_sector 0 0 0
5
flash protect 0 0 1 off
6
flash write_image main-flash.bin 0x00100000
7
mww 0xfffffd08 0xa5000401


Ich hoffe, ihr werdet draus schlau. Ich habe davon leider zu wenig 
Ahnung.

Schönen Gruß,
Johannes

von Bert 0. (maschinist)


Lesenswert?

Hallo Johannes,

der ERASE Pin muß mind. 50ms auf HIGH gezogen werden, dann wird das 
Flash gelöscht.


Gruß...Maschinist

von Johannes (Gast)


Lesenswert?

Jo!!!

ERASE war zielführend.

Vielen Dank!

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.