Forum: Mikrocontroller und Digitale Elektronik LPC2148 blinky


von Stephan S. (laglisse)


Lesenswert?

hey!

ich bin ziemlicher anfänger auf dem gebiet mikrocontroller, will mich 
aber etwas einarbeiten.

meine arbeitsmaterialien:
lpc2148 auf mcb2140
amontec jtagkey
amontec sdk4arm

ich suche nun schon seit geraumer zeit nach beispielprogrammen bzw. 
kompletten projekten, welche ich in eclipse importieren kann und welche 
auf meinem 2148 auch laufen und über jtag zu flashen/debuggen sind.
es würde mir sehr helfen ein solches fertiges projekt analysieren zu 
können um das genze ein wenig besser zu verstehen. ein tutorial wie zb. 
das von james lynch für den atmel ist keine große hilfe, da ich in 
diesem fall nicht weiß wie das ganze auf den philips 'abzuändern' ist 
und wie ich an stelle des parallelen wigglers mein jtagkey zum laufen 
bekomme.

daher meine frage: kann mir jemand links zu beispielprogrammen geben die 
ich bei mir direkt importieren kann, bzw mir diese evtl. mailen?

grüße,
stephan

von Daniel M. (usul27)


Lesenswert?

Naja, ein Projekt, was du einfach nur in Eclipse importieren kannst, 
wirst du vermutlich nicht finden. Aber hier gibt es doch einige Links zu 
den LPCs:

 http://www.mikrocontroller.net/articles/LPC2000

Unter
 http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/
gibt es einige kleine Programme, die sich leicht auf deinen 2148 
portieren lassen sollten.

von Stephan S. (laglisse)


Lesenswert?

danke für die schnelle antwort! die links kannte ich zwar schon, hab 
mich aber nochmal durchgewühlt und bin jetzt bis zum debuggen gekommen, 
womit ich beim nächsten problem wäre:
wie muß mein cfg-file für meinen lpc2148 aussehen (oder liegt's an was 
anderem?!)? ich dachte eigentlich, dass ich schon das richtige hätte, 
bekam allerding folgende fehlermeldung:

info: configuration.c:50 configuration:output_handler(): command 
ft2232_device_desc not found
info: configuration.c:50 configuration:output_handler(): command 
ft2232_layout not found
info: configuration.c:50 configuration:output_handler(): command 
ft2232_vid_pid not found
error: jtag.c:1189 jtag_init(): No valid jtag interface found (ft2232)

von Dominic R. (dominic)


Lesenswert?

Hi Stephan,

unter http://openfacts.berlios.de/index-en.phtml?title=OpenOCD_scripts 
gibt es einige Beispiel Konfigurationen, die einzelnen Optionen sind 
unter 
http://openfacts.berlios.de/index-en.phtml?title=OpenOCD_configuration 
erklärt.
Ich weiss nicht, welche Version des OpenOCD im sdk4arm steckt (starte 
mein Windows eigentlich nie), auf www.yagarto.de findest du aber eine 
ausreichend aktuelle und einfach zu installierende Version.

Wenn du damit ein Problem hast häng deine .cfg bitte hier im Forum an, 
dann kann ich klären, wo das Problem liegt.

Gruss,

Dominic

von Stephan S. (laglisse)


Lesenswert?

@ dominic
vielen dank für deine links! auf der seite war ich schon und hab mir die 
zusammenstellung eines cfg-files angeschaut. ich kenn mich allerdings 
leider noch zu wenig aus um beurteilen zu können wo der haken bei meinem 
config-file ist. es wär mir aber ne große hilfe wenn du mir da 
weiterhelfen könntest.


#daemon configuration
telnet_port 4444
gdb_port 3333

#interface
interface ft2232
ft2232_device_desc "Amontec JTAGkey A"
ft2232_layout jtagkey
ft2232_vid_pid 0x0403 0xcff8
jtag_speed 2

#use combined on interfaces or targets that can't set TRST/SRST 
separately
reset_config trst_and_srst 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-s_r4
run_and_halt_time 0 30

working_area 0 0x40000000 0x40000 nobackup

#flash configuration
flash bank lpc2000 0x0 0x40000 0 0 lpc2000_v1 0 14765 calc_checksum
flash bank cfi 0x80000000 0x400000 2 2 0


gruß,
stephan

von Daniel M. (usul27)


Lesenswert?

Warum lässt du den JTAG-Kram nicht erstmal in Ruhe und versuchst einfach 
ein simples Blink-Programm per seriellem Bootloader auf den Prozessor zu 
bringen? Für den Anfang ist das sicher mal einfacher als gleich etwas 
mit JTAG debuggen zu wollen.

von Stephan S. (laglisse)


Lesenswert?

ganz einfach: weil das ganze teil eines praktikums ist und das ziel der 
sache ist, via jtag zu debuggen. und so wie's aussieht fehlt mir doch 
nur noch das richtige .cfg dazu und die sache funktioniert.

von Wolfram (Gast)


Lesenswert?

>info: configuration.c:50 configuration:output_handler(): command
>ft2232_device_desc not found

also für mich hört sich diese Fehlermeldung eher so an als wenn er das 
Kommando nicht kennt.
Also entweder:
schlechte Fehlermeldung
falsch geschrieben
im falschen Kontext verwendet
oder er kennt dieses Kommando wirklich nicht, z.B. weil du eine uralte 
Version benutzt.

von Stephan S. (laglisse)


Lesenswert?

meine versionen:
openocd r78
eclipse 3.2.0
zylin 3.2.0
bin utils 2.16.1
gcc 4.1.0
gdb 6.5
insight (gdb) 6.5

wenn ich versuche den jtagkey als 'external tool' in eclipse 
einzubinden, bekomme ich folgende fehlermeldungen (mit obigem cfg-file):

Info:    openocd.c:82 main(): Open On-Chip Debugger (2006-07-15 12:00 
CEST)
Info:    configuration.c:50 configuration_output_handler(): Command 
ft2232_device_desc not found
Info:    configuration.c:50 configuration_output_handler(): Command 
ft2232_layout not found
Info:    configuration.c:50 configuration_output_handler(): Command 
ft2232_vid_pid not found
Error:   jtag.c:1189 jtag_init(): No valid jtag interface found (ft2232)

von Dominic R. (dominic)


Lesenswert?

Die Version r78 ist ziemlich alt. Ich hatte die Treiber für FT2232 
devices (FTDI's FTD2XX und die open-source libftdi) überarbeitet, und 
ihnen den gemeinsamen namen ft2232 gegeben. Bis dahin hiess das 
Interface "ftd2xx" bzw. "ftdi".

Dein .cfg File sieht gut aus, die "flash bank cfi ..." kannst du 
allerdings löschen, da dein LPC2148 garantiert kein externes Flash hat 
(schadet aber auch nicht).

Unter www.yagarto.de findest du eine ausreichend aktuelle Version des 
OpenOCD, Michael bietet zur Zeit binarys von SVN Revision 100 an. In den 
nächsten Tagen wird es dann wieder eine neue Version geben, die bringt 
aber nur minimale Änderungen.

Gruss,

Dominic

von Stephan S. (laglisse)


Lesenswert?

ok. hab die aktuelle version von openocd drauf. die fehlermelung sieht 
jetzt etwas anders aus:

Info:    openocd.c:82 main(): Open On-Chip Debugger (2006-09-28 20:00 
CEST)
Warning: arm7_9_common.c:679 arm7_9_assert_reset(): srst resets test 
logic, too
Warning: arm7_9_common.c:785 arm7_9_halt(): target was already halted
Info:    server.c:67 add_connection(): accepted 'gdb' connection from 0
Warning: arm7_9_common.c:679 arm7_9_assert_reset(): srst resets test 
logic, too
Error:   arm7_9_common.c:1936 arm7_9_write_memory(): memory write caused 
data abort
Error:   arm7_9_common.c:1771 arm7_9_read_memory(): memory read caused 
data abort
Error:   arm7_9_common.c:1936 arm7_9_write_memory(): memory write caused 
data abort
Error:   arm7_9_common.c:1771 arm7_9_read_memory(): memory read caused 
data abort
Error:   arm7_9_common.c:1936 arm7_9_write_memory(): memory write caused 
data abort

von Dominic R. (dominic)


Lesenswert?

Der JTAGkey wurde erkannt, die JTAG Kommunikation läuft bereits, und das 
Target wurde erfolgreich angehalten.

Was hast du denn gemacht, als die data aborts gemeldet wurden, bzw. was 
versuchst du zur Zeit zu erreichen? Hast du ein .gdbinit File, das 
bestimmte Kommandos enthält?

Gruss,

Dominic

von Stephan S. (laglisse)


Lesenswert?

ok. perfekt. dann passts ja.

was ich erreichen will:
ich hab ein 'blinky' welches aus folgenden files besteht:
main.c
time.c
timer.h
startup.s
lpc21xx.h

das programm hab ich schon mal mit uvision von keil und dem ulink 
draufgeflasht.
jetzt will ich die files in ein neues projekt in eclipse importieren und 
dann quasi dasselbe mit yagarto+jtagkey machen was vorher schon mit 
uvision+ulink funktioniert hat (flashen + on chip debuggen)

muss mich jetzt noch schlau machen wie das genau geht. hab schon ein 
paar tutorials an der hand.

vielen dank auf jeden fall! an eine veraltete openocd-version hätte ich 
glaub als letztes gedacht. zumal diese ja im sdk4arm von amontec mit 
drin war und das sollte ja 'eigentlich' mit dem jtagkey einwandfrei 
funktionieren. ...sollte man meinen.

gruß,
stephan

von Stephan S. (laglisse)


Lesenswert?

jetzt brauch ich doch nochmal nen rat:

hab mir gerade an stelle des sdk4arm das yagarto-paket installiert.

jetzt bekomme ich beim start des jtagkey folgende fehlermeldung:

Info:    openocd.c:82 main(): Open On-Chip Debugger (2006-09-28 20:00 
CEST)
Info:    configuration.c:50 configuration_output_handler(): Command 
separately not found
Warning: arm7_9_common.c:679 arm7_9_assert_reset(): srst resets test 
logic, too

was hat's denn mit der zweiten 'info' auf sich?

gruß,
stephan

von Dominic R. (dominic)


Lesenswert?

In deinem .cfg File steht folgender Kommentar, allerdings aufgrund des 
linewraps in zwei Zeilen:

#use combined on interfaces or targets that can't set TRST/SRST
separately
reset_config trst_and_srst srst_pulls_trst

Einfach das separately in die vorherige Zeile ziehen, dann verschwindet 
das Problem.

Gruss,

Dominic

von Stephan S. (laglisse)


Lesenswert?

oh mann! da hätt ich ja grad noch draufkommen können... ;-)
danke nochmal!

gruß,
stephan

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.