www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik OpenOcd.cfg starten


Autor: Testdummy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey Leute,

jetzt sitze ich schon das ganze Wochenende und versuche mit Yagarto mein 
ARM-Board zum laufen zu bekommen. Ich hänge jedoch immer an dieser 
Fehlermeldung (siehe Anhang)Ich bin bisher der Anleitung von der 
Yagarto-Site gefolgt...

habt ihr vielleicht eine Ahnung was das sein kann? Das Board ist aus dem 
Shop: "AT91SAM7X256 + TFT+ Ethernet" außerdem verwende ich den "ARM USB 
JTAG TINY für OpenOCD" auch aus dem Shop.

Wäre echt super, wenn ihr mir helfen könntet!

Gruß
Marius

Autor: Testdummy (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, vergessen Fehlermeldung anzuhängen :-)

Autor: Testdummy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach so ja,
übrigens spielt es keine Rolle ob ich das Board angeschlossen habe oder 
nicht.
Auch firewall ist ausgeschaltet...

Autor: Dominic R. (dominic)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

die Fehlermeldung besagt, dass der OpenOCD das gewünschte FTDI device 
nicht finden konnte, und zeigt dir an, wie die zwei heissen, die er 
gefunden hat.

In deiner .cfg sollte demnach z.B.
ft2232_device_desc "Olimex OpenOCD JTAG TINY A"
stehen. Das "A" wird vom FTDI Treiber benutzt, um den ersten Kanal zu 
identifizieren. Der zweite Kanal "B" wird vom Tiny nicht benutzt, der 
"grosse" ARM-USB-OCD hat hier ein RS232 Interface.

Gruß,

Dominic

Autor: Testdummy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Domenic,

hätte nie gedacht, das das daran liegen kann....

Hat funktionier! :-)
Jippy!

Viele Grüße
Marius

Autor: Testdummy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok,
die Gute laune ist gebremst! :-(
Schaffe es nicht, zu flashen. wenn ich von martin thomas das script 
nehme:
# 
# The following commands will be executed on
# reset (because of run_and_init in the config-file)
# - halt target
# - init ecr
# - flash content of file main.bin into target-memory
# - shutdown openocd
#
# created by Martin Thomas 
# http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects
# based on information from Dominic Rath 
#

halt
sleep 10

# Init - taken form the script openocd_at91sam7_ecr.script 
mww 0xfffffd44 0x00008000  # disable watchdog
mww 0xfffffd08 0xa5000001  # enable user reset
mww 0xfffffc20 0x00000601  # CKGR_MOR : enable the main oscillator
sleep 10
mww 0xfffffc2c 0x00481c0e   # CKGR_PLLR: 96.1097 MHz
sleep 10
mww 0xfffffc30 0x00000007  # PMC_MCKR : MCK = PLL / 2 ~= 48 MHz
sleep 10
mww 0xffffff60 0x003c0100  # MC_FMR: flash mode (FWS=1,FMCN=60)
# arm7_9 force_hw_bkpts enable  # program resides in flash

# AT91SAM7 flash command-"batch"
# adapted by Martin Thomas based on information from Dominic Rath - Thanks
arm7_9 dcc_downloads enable
sleep 10
poll
flash probe 0
flash write 0 main.bin 0x0
# flash write is deprecated but still available. 
# Update to flash write_binary 0 main.bin 0x0
reset run
sleep 10
shutdown

sagt er mir "suspended. don't know how to run"
ja und ich weis es auch nicht, how to run. :-(

ich habe eine Datei gefunden, die das Ram beschreibt, aber die auch 
nicht einwandfrei läuft. das heißt, er bricht mir nicht mit diesem 
komentar die session ab, läuft aber trotzdem nicht.

@domenic: hättest du da vielleicht den nötigen anstoß?

Greez
Marius

Autor: Dominic R. (dominic)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wer sagt "suspended. don't know how to run"?
Und wie hast du das Skript überhaupt benutzt?

Das Skript von Martin Thomas geht davon aus, dass es als "reset Skript" 
im OpenOCD verwendet wird, und sollte zusammen mit dem entsprechenden 
.cfg File verwendet werden.

Ansonsten kannst du den OpenOCD auch einfach starten, und dann die 
Kommandos per Hand im Telnet Interface (localhost port 4444) eingeben.

Gruß,

Dominic

Autor: Testdummy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich arbeite mit Eclipse. Habe dort als externes tool openocd -f 
at91r40008_armusbocd.cfg. Bzw. vorher habe ich das einfach auch in der 
Konsole gestartet.
#daemon configuration
telnet_port 4444
gdb_port 3333

#interface
interface ft2232
ft2232_device_desc "Olimex OpenOCD JTAG TINY A"
ft2232_layout "olimex-jtag"
ft2232_vid_pid 0x15BA 0x0003
jtag_speed 0
jtag_nsrst_delay 200
jtag_ntrst_delay 200

#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_halt 0 arm7tdmi
run_and_halt_time 0 30

# For more information about the configuration files, take a look at:
# http://openfacts.berlios.de/index-en.phtml?title=Open+On-Chip+Debugger


Naja, nun will ich halt auf den Flash schreiben und das dacht ich mache 
ich so wie bei Yagarto über den debugger. ich folge der Anleitung bis 
auf einen Punkt:in dem "Commands" Textfeld soll man den Inhalt von 
"eclipse_ram.gdb" eingeben, doch ich möchte ja nicht ins Ram schreiben. 
außerdem funktioniert die session dann auch nicht so ganz.
Also habe ich die hier aus dem Internet: 
http://www.siwawi.arubi.uni-kl.de/avr_projects/arm...
# 
# The following commands will be executed on
# reset (because of run_and_init in the config-file)
# - halt target
# - init ecr
# - flash content of file main.bin into target-memory
# - shutdown openocd
#
# created by Martin Thomas 
# http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects
# based on information from Dominic Rath 
#

halt
sleep 10

# Init - taken form the script openocd_at91sam7_ecr.script 
mww 0xfffffd44 0x00008000  # disable watchdog
mww 0xfffffd08 0xa5000001  # enable user reset
mww 0xfffffc20 0x00000601  # CKGR_MOR : enable the main oscillator
sleep 10
mww 0xfffffc2c 0x00481c0e   # CKGR_PLLR: 96.1097 MHz
sleep 10
mww 0xfffffc30 0x00000007  # PMC_MCKR : MCK = PLL / 2 ~= 48 MHz
sleep 10
mww 0xffffff60 0x003c0100  # MC_FMR: flash mode (FWS=1,FMCN=60)
# arm7_9 force_hw_bkpts enable  # program resides in flash

# AT91SAM7 flash command-"batch"
# adapted by Martin Thomas based on information from Dominic Rath - Thanks
arm7_9 dcc_downloads enable
sleep 10
poll
flash probe 0
flash write 0 main.bin 0x0
# flash write is deprecated but still available. 
# Update to flash write_binary 0 main.bin 0x0
reset run
sleep 10
shutdown

Aber funktionieren tut's nicht. die .cfg läuft wie bei yagarto 
beschrieben. er springt aber nicht in den debug modus. klickt man auf 
ansicht in debugmodus wechseln zeigt er mir eine session an, die ich 
aber noch starten muss. und Hier sagt er mir dann die gestern 
beschriebene Fehlermeldung. :-(

Eine Ahnung?

Autor: Testdummy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe evtl. noch eine andere Fehlerquelle. Ist meine makefile so ok?

oder gibt es irgendwo im web eine quelle, wo ich für at91sam7x256 wie er 
auf dem board im shop ist alle entsprechenden sachen runterladen kann?

makefile:
#
#       !!!! Do NOT edit this makefile with an editor which replace tabs by spaces !!!!    
#
##############################################################################################
# 
# On command line:
#
# make all = Create project
#
# make clean = Clean project files.
#
# To rebuild project do "make clean" and "make all".
#

##############################################################################################
# Start of default section
#

TRGT = arm-elf-
CC   = $(TRGT)gcc
CP   = $(TRGT)objcopy
AS   = $(TRGT)gcc -x assembler-with-cpp
BIN  = $(CP) -O ihex 

MCU  = arm7tdmi

# List all default C defines here, like -D_DEBUG=1
DDEFS = 

# List all default ASM defines here, like -D_DEBUG=1
DADEFS = 

# List all default directories to look for include files here
DINCDIR = 

# List the default directory to look for the libraries here
DLIBDIR =

# List all default libraries here
DLIBS = 

#
# End of default section
##############################################################################################

##############################################################################################
# Start of user section
#

# Define project name here
PROJECT = test

# Define linker script file here
LDSCRIPT= ./prj/sam7x256_ram.ld

# List all user C define here, like -D_DEBUG=1
UDEFS = 

# Define ASM defines here
UADEFS = 

# List C source files here
SRC  = ./src/main.c

# List ASM source files here
ASRC = ./src/crt.s

# List all user directories here
UINCDIR = ./inc

# List the user directory to look for the libraries here
ULIBDIR =

# List all user libraries here
ULIBS = 

# Define optimisation level here
OPT = -O0

#
# End of user defines
##############################################################################################


INCDIR  = $(patsubst %,-I%,$(DINCDIR) $(UINCDIR))
LIBDIR  = $(patsubst %,-L%,$(DLIBDIR) $(ULIBDIR))
DEFS    = $(DDEFS) $(UDEFS)
ADEFS   = $(DADEFS) $(UADEFS)
OBJS    = $(ASRC:.s=.o) $(SRC:.c=.o)
LIBS    = $(DLIBS) $(ULIBS)
MCFLAGS = -mcpu=$(MCU)

ASFLAGS = $(MCFLAGS) -g -gdwarf-2 -Wa,-amhls=$(<:.s=.lst) $(ADEFS)
CPFLAGS = $(MCFLAGS) $(OPT) -gdwarf-2 -mthumb-interwork -fomit-frame-pointer -Wall -Wstrict-prototypes -fverbose-asm -Wa,-ahlms=$(<:.c=.lst) $(DEFS)
LDFLAGS = $(MCFLAGS) -nostartfiles -T$(LDSCRIPT) -Wl,-Map=$(PROJECT).map,--cref,--no-warn-mismatch $(LIBDIR)

# Generate dependency information
CPFLAGS += -MD -MP -MF .dep/$(@F).d

#
# makefile rules
#

all: $(OBJS) $(PROJECT).elf $(PROJECT).hex

%o : %c
  $(CC) -c $(CPFLAGS) -I . $(INCDIR) $< -o $@

%o : %s
  $(AS) -c $(ASFLAGS) $< -o $@

%elf: $(OBJS)
  $(CC) $(OBJS) $(LDFLAGS) $(LIBS) -o $@

%hex: %elf
  $(BIN) $< $@

clean:
  -rm -f $(OBJS)
  -rm -f $(PROJECT).elf
  -rm -f $(PROJECT).map
  -rm -f $(PROJECT).hex
  -rm -f $(SRC:.c=.c.bak)
  -rm -f $(SRC:.c=.lst)
  -rm -f $(ASRC:.s=.s.bak)
  -rm -f $(ASRC:.s=.lst)
  -rm -fR .dep

# 
# Include the dependency files, should be the last of the makefile
#
-include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*)

# *** EOF ***
# OpenOCD Flags
OPENOCDFLAGS = -f /etc/openocd_flash.cfg

INSIGHT = arm-elf-insight
OPENOCD = openocd
KILLALL = killall

# Program the device.
program: $(TARGET).bin
ifeq ($(RUN_MODE),ROM_RUN)
   $(OPENOCD) $(OPENOCDFLAGS)
endif

debug: begin insight end

insight:
ifeq ($(RUN_MODE),RAM_RUN)
  $(OPENOCD) & $(INSIGHT) $(TARGET).elf -ex "target remote localhost:3333" -ex "monitor arm7_9 sw_bkpts enable" -ex "load"
  $(KILLALL) $(OPENOCD)
else
  $(OPENOCD) & $(INSIGHT) $(TARGET).elf -ex "target remote localhost:3333" -ex "monitor arm7_9 force_hw_bkpts enable"
  $(KILLALL) $(OPENOCD)
endif

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sag mal, wie passt das zusammen?
>AT91SAM7X256

>openocd -f at91r40008_armusbocd.cfg

Außerdem hast du das Linkerscript fürs Ram im Makefile stehen.

># Define linker script file here
>LDSCRIPT= ./prj/sam7x256_ram.ld

Autor: Testdummy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, du hast recht, ist aus verzweiflung entstanden.

Hat jemand denn irgendwo eine quelle, wo einfach alles mit drin ist?

Bei yagarto habe ich zwar in der zip SAM7X256Test die richtige 
sam7x_armusbocd.cfg gefunden, aber in der makefile steht immer noch der 
verweis LDSCRIPT= ./prj/sam7x256_ram.ld . und eine andere Datei habe ich 
nicht. Außerdem bricht er mit dem selben Fehler beim Start ab. suspended 
... etc. im command-feld steht noch das von vorhin beschriebene drin.

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei den Beispielen von Martin Thomas für die AT91SAM7S sind ram und rom 
Linkerskripte dabei. Schau dir die doch mal an, da wird nicht viel um 
sein.

Autor: Testdummy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich habe jetzt makefiles umgeschrieben und allen möglichen murks 
gemacht. Es muss doch auch leute geben, die derzeit damit arbeiten ... 
Ich kapituliere eigentlich nie, deshalb frage ich euch:

Könnte mir jemand vielleicht eine kopie der nötigen dateien für das 
Board "AT91SAM7X256 + TFT+ Ethernet" vom Mikrocontroller-Shop per mail 
zuschicken?

marius_merten85@hotmail.com

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.