Hallo,
ich arbeite mit dem Evaluation Board MCB4300 (LPC4350) und der
Entwicklungsumgebung µVision5 und habe folgendes Problem.
Ich habe ein Projekt angelegt und möchte nun den Programmcode auf den
MCB4300 laden. Wenn ich auf "Build" drücke, so bekomme ich keine
Fehlermeldung (0 Error(s), 0 Warning(s)), falls ich anschließend auf
"Load" drücke, so kommt die Fehlermeldung: "Error: Flash Download failed
- Cortex-M4"" und im "Build Output" steht: "No Algorithm found for:
1A000000H - 1A000F07H, Erase skipped!"
In den "Target Options" habe ich folgendes ausgewählt:
Device: LPC4350 --> LPC4350:Cortex-M4
Target: IRAM1: 0x10000000 (Start) und 0x20000 (Size)
Utilities: Settings -> Flash Download -> RAM for Algorithm: 0x10000000
(Start), 0x1000 (Size)
Utilities: Settings -> Flash Download -> Programming Algorithm -> Add
kann man zwischen folgenden auswählen:
- LPC18xx/43xx S25FL032 SPIFI 4M (Flash Size) Ext. Flash SPI (Device
Type) MDK Core (Origin
- RC28F640J3x Dual Flash 16M Ext. Flash 32-bit MDK Core
- S29GL064N Dual Flash 16M Ext. Flash 32-bit MDK Core
LPC18xx/43xx S25FL032 SPIFI Start: 0x14000000 Size: 0x00400000
RC28F640J3x Dual Flash Start: 0x00000000 Size: 0x01000000
S29GL064N Dual Flash Start: 0x1C000000 Size: 0x01000000
Ich habe LPC18xx/43xx S25FL032 ausgewählt, jedoch funktioniert es immer
noch nicht, weiß jemand woran das liegen kann? Oder hatte jemand
dasselbe Problem?
Was willst du denn in das SPIFI Interface laden? Das ist für einen außen
angebeppten seriellen Flash-Rom. Ich nehme doch an, daß du den internen
Flash programmieren willst.
Tja, wie immer: Lies das Manual, versuche den Chip zu verstehen und sieh
zu, wie du mit der Programmier-Hardware umgehen lernst. Die meisten
Leute, die hier mit solchen Problemen aufschlagen, haben bloß gelernt,
wie man eine IDE startet und dann auf F7 (oder ne andere Taste) drückt.
Ich hab zwar nicht nachgeschaut, nehme aber trotzdem mal an, daß der
Chip über einen Bootlader verfügt. Also schau dir mal FlashMagic an und
versuche es ggf. damit.
W.S.
W.S. schrieb:> Ich nehme doch an, daß du den internen> Flash programmieren willst.
Wenn man keine Ahnung hat...
Der LPC4350 hat keinen internen Flash! Da muss also ein externer Flash
Chip irgendwie programmiert werden.
Die Doku auf
http://www.keil.com/support/man/docs/mcb1800/mcb1800_fp_download.htm
spricht von Boot Jumpern, de korrekt gesetzt sein müssen.
W.S. schrieb:> Ich nehme doch an, daß du den internen> Flash programmieren willst.
Eben, das ist mein Problem. Ich habe keinen internen Flash. Davor habe
ich mit dem LPC4357 gearbeitet, der hatte einen internen Flash und ich
konnte auch die Beispielprogramme von Keil nutzen. Aber der LPC4350 hat
keinen.
Aber es müsste trotzdem möglich sein, den Controller irgendwie zu
nutzen. Auch die Jumper habe ich gesetzt nach SPIFI, statt EMC, aber es
will einfach nicht klappen.
Der Controller hat keinen Flash, du kannst da nix draufladen. Du kannst
das Programm höchstens in den RAM laden und direkt von dort starten,
dann ist es aber weg sobald du den Strom wegnimmst. Oder von externem
Flash booten.
Max K schrieb:> Auch die Jumper habe ich gesetzt nach SPIFI, statt EMC
Möchte das Handbuch das so haben? Auf der oben verlinkten Seite steht es
genau anders herum. Das könnte den Fehler erklären.
Jim Meba schrieb:> Möchte das Handbuch das so haben? Auf der oben verlinkten Seite steht es> genau anders herum.
Ich habe beides ausprobiert, aber hat nicht geklappt. Dies hatte ich in
dieser pdf-Datei gelesen und ausprobiert.
www.keil.com/appnotes/docs/apnt_241.asp
Also kann man sagen das es SPIFI nicht sein kann, da man sonst einen
externen Flash an den Controller anschließen müsste?
Jim Meba schrieb:> Wenn man keine Ahnung hat...> Der LPC4350 hat keinen internen Flash! Da muss also ein externer Flash> Chip irgendwie programmiert werden.>
Tja, dann mußt du dir eben ne kleine App scheiben, die du in den RAM
laden kannst und die dann ihrerseits deinen externen seriellen
NAND-Flash mit deinem Code beschreibt. Vorausgesetzt, dieses Board ist
so gestaltet, daß es dort nur eben diesen per SPIFI mit dem µC
verbundenen Flash gibt und daß so eine App nicht schon bei deinem
Programmierzegs dabei ist. Wenn nicht, dann such mal, was denn sonst so
an Flash auf dem Board ist.
So ähnliche Verhältnisse gab's auch bei der Lernbetty, die ebenfalls
keinen internen Flash hatte, sondern wo selbiger als separater IC
draußen dran war. Außer, daß der eingebaute Bootlader nur zum Laden
eines weiteren Laders ausgelegt war, gab es keine wesentlichen
Unterschiede zu einem internen Flash. Aber SPIFI ist was GANZ anderes.
W.S.
W.S. schrieb:> Tja, dann mußt du dir eben ne kleine App scheiben,
Das ist ein Keil Board, und er benutzt die Keil Umgebung. Da sollten die
Tools eigentlich komplett geliefert werden, zumal auch eine
entsprechende Doku existiert.
Wende Dich mal an den Support. Könnte ja durchaus was kaputt sein.
Also da ich keinen internen Flash habe, so muss ich den Programmcode in
den RAM oder externen Flash laden.
Nun habe ich bei den Target Options folgendes gewählt:
Utilities: Settings->Flash Download-> Programming Algorithm -> Add:
S29GL064N Dual Flash 16M Ext. Flash 32-bit MDK-Core
Wenn ich nun auf "Load" drücke, ist der erste Eindruck - es
funktioniert! - jedoch nach kurzer Zeit kommt die Fehlermeldung:
Flash Timeout. Reset the Target and try it again.
und gleich danach:
Error: Flash Download failed - "Cortex-M4"
Max K schrieb:>> Ich habe ein Projekt angelegt und möchte nun den Programmcode auf den> MCB4300 laden. Wenn ich auf "Build" drücke, so bekomme ich keine> Fehlermeldung (0 Error(s), 0 Warning(s)), falls ich anschließend auf> "Load" drücke, so kommt die Fehlermeldung: "Error: Flash Download failed> - Cortex-M4"" und im "Build Output" steht: "No Algorithm found for:> 1A000000H - 1A000F07H, Erase skipped!"
1A000000H ist die Adresse vom bei dir nicht vorhandenen internen Flash,
das Löschen/Schreiben dort kann also nicht funktionieren.
Irgendwas ist an der Konfiguration des Projekts faul,
hattest du mal einen LPC4357 ausgewählt?
> Ich habe LPC18xx/43xx S25FL032 ausgewählt,
Das sollte richtig sein, das ist jedenfalls der Baustein auf dem Board,
und er hängt an der SPIFI-schnittstelle.
(Ich habe ein MCB4300 mit LPC4357 benutzt, das also selbst noch nicht
ausprobiert.)
Vielleicht setzt du das Projekt mal sauber neu auf?
Ich könnte dir ein konfiguriertes Projekt schicken. Am besten wäre der
externe 32-bit NOR Flash. Der ist am schnellsten. Wo kann ich dir das
hin mailen?
Matthias schrieb:> Ich könnte dir ein konfiguriertes Projekt schicken. Am besten wäre der> externe 32-bit NOR Flash.
Vielen Dank erstmal. Nach langem ausprobieren, habe ich es nun
hinbekommen. Ich habe nochmal das Blinky Programm ausprobiert und zwar
konnte man dort zwischen Flash, RAM, externer Flash und SPIFI für den
LPC4357 auswählen. Deshalb habe ich es anfangs nicht ausprobiert da es
nicht für den LPC4350 gedacht ist, dachte ich mir. Aber mit dem externen
Flash hat es nun geklappt.
Im endeffekt spielt es ja keine Rolle ob LPC4357 oder LPC4350, da ja bei
beiden der externe Flash benutzt wird.