www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Lock Bit bei AT91SAM7 mit OpenOCD löschen


Autor: Johannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe folgendes Problem.
Ich möchte mit OpenOCD einen AT91SAM7S64 programmieren.
Da aber davor SAM-BA auf dem uC drauf war, ist ein Lock-Bit gesetzt. 
Deswegen habe ich versucht, dieses Bit zu löschen. Mit diesem .cfg-File 
habe ich versucht den Befehl flash protect 0 0 15 off auszuführen. Dabei 
kam aber die Meldung, dass er protect nicht kennt. Was mache ich da 
falsch.

.cfg-File
#daemon configuration
telnet_port 4444
gdb_port 3333

#interface
interface parport
parport_port 0x378
parport_cable wiggler
jtag_speed 0


#use combined on interfaces or targets that can't set TRST/SRST separately
reset_config srst_only 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 <type> <startup mode>
#target arm7tdmi <reset mode> <chainpos> <endianness> <variant>
target arm7tdmi little run_and_init 0 arm7tdmi
run_and_halt_time 0 30

# flash-options AT91
target_script 0 reset openocd_at91sam7s_flash.script
working_area 0 0x00200000 0x4000 nobackup
flash bank at91sam7 0 0 0 0 0


# Information: 
# erase command (telnet-interface) for complete flash:
# flash erase <num> 0 numlockbits-1 (can be seen from output of flash info 0)
# SAM7S64 with 16 lockbits and bank 0: flash erase 0 0 15
# set/clear NVM-Bits:
# at91sam7 gpnvm <num> <bit> <set|clear>
# disable locking from SAM-BA
flash protect 0 0 15 off
# at91sam7 gpnvm 0 0 1

Folgende Fehlermeldung wurde ausgegeben:
Programming with OPENOCD
openocd_go_flash.cmd
Info:    openocd.c:82 main(): Open On-Chip Debugger (2006-10-12 18:00 CEST)
Info:    configuration.c:50 configuration_output_handler(): Command protect not found
Warning: arm7_9_common.c:683 arm7_9_assert_reset(): srst resets test logic, too
Info:    target.c:219 target_init_handler(): executing reset script 'openocd_at91sam7s_flash.script'
Info:    configuration.c:50 configuration_output_handler(): requesting target halt...
Warning: arm7_9_common.c:842 arm7_9_halt(): target was already halted
Info:    configuration.c:50 configuration_output_handler(): target already halted
Info:    configuration.c:50 configuration_output_handler(): waiting for target halted...
Info:    configuration.c:50 configuration_output_handler(): target halted
Info:    configuration.c:50 configuration_output_handler(): dcc downloads are enabled
Info:    configuration.c:50 configuration_output_handler(): flash 'at91sam7' found at 0x00100000
Error:   at91sam7.c:257 at91sam7_wait_status_busy(): status register: 0x30005
Error:   at91sam7.c:259 at91sam7_wait_status_busy(): Lock Error Bit Detected, Operation Abort
Info:    configuration.c:50 configuration_output_handler(): failed writing file main.bin to flash bank 0 at offset 0x00000000
Info:    configuration.c:50 configuration_output_handler(): flash program error
Warning: arm7_9_common.c:683 arm7_9_assert_reset(): srst resets test logic, too

Kann mir da jemand helfen?

Servus,
Johannes

Autor: gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,
du hast offensichtlich eine sehr alte openocd version im einsatz.
auf www.yagarto.de findest du aktuelle binaries, versuchs mal mit denen.

gruss
gerhard

Autor: Johannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Gerhard,

es liegt leider nicht am alten OpenOCD. Beim neuen kommt die gleiche 
Fehlermeldung:
"Command protect not found".
Wie kann man denn per Hand das Lock-Bit löschen? Da muss man doch eine 
Telnet-Verbindung aufbauen, usw. Gibt es dafür eine Anleitung für einen 
Anfänger wie mich? Wenn ich telnet in der Konsole starte und den Port 
4444 öffnen möchte, geht es nicht.

Schönen Gruß,
Johannes

Autor: gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,
deine .cfg datei ruft ein script auf (openocd_at91sam7s_flash.script) in 
welchem die programmierung erfolgen wird (vermute ich mal). du hast aber 
danach noch commands stehen (flash protect 0 0 15 off). das sollte 
eigentlich im script stehen.

wie sieht denn das script aus?

gruss
gerhard

Autor: Johannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, das ist die Lösung.

Jetzt kann ich den Kontroller endlich mit JTAG programmieren.

Schönen Gruß,
Johannes

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.