Forum: Mikrocontroller und Digitale Elektronik Neuen uC in CooCox einfügen (LPC1347)


von Piet (Gast)


Lesenswert?

Hallo,

ich möchte den LPC1347 mit der CoIDE programmieren.
Nun bietet diese leider noch keine Unterstützung für den IC.

Die verschiedenen Controller werden in CooCox ja mit XML Files 
beschrieben, wo das Linker script und die RAM/ROM Grössen und 
Startadressen angegeben werden.

Nun meine Frage: Reicht es, wenn ich ein bestehendes XML file (z.b. das 
vom LPC1343) kopiere, und die entsprechenden ROM und RAM Parameter 
anpasse?
Als Linker-Script benützt das file vom LPC1343 sowieso schon ein LPC11XX 
file.

Oder geht da was schief?

Grüsse
Piet

von Arne Maximilian R. (arnemaximilian_r)


Lesenswert?

Das sollte eigentlich ausreichen, da ja auch bei den Chips keine 
größeren Unterschiede herrschen.

von Harald (Gast)


Lesenswert?

Würde mich auch interessieren wie das geht. Z.B. für die Stellaris- bzw. 
TivaC-Controller von TI. CooCox unterstützt nur LM3S...

von Arne Maximilian R. (arnemaximilian_r)


Lesenswert?

Also ich kann da nur aus meinen Erfahrungen und auf der Basis von meinen 
Vermutungen antworten.

CooCox an sich ist grundsätzlich eine ganz normale IDE, die jedoch 
mehrere Details verbirgt. Daher kann man gleiche MCUs noch sehr leicht 
neu einbinden, solange sich die Header und die anderen Dateien nicht 
ändern. Jedoch kann man auch komplett andere MCUs nehmen, solange man 
die zusätzlichen Dateien per Hand ein pflegt und die Parameter für 
Linker per Hand anpasst.
Es muss natürlich der MCU Kern passen ;)

Beim Debuggen hängt es dann aber natürlich von den verwendeten Debugger 
ab.

von Harald (Gast)


Lesenswert?

Klingt dann ja doch etwas kompliziert vor allem als Einsteiger...

von Arne Maximilian R. (arnemaximilian_r)


Lesenswert?

Als Einsteiger sollte man wirklich bei den angebotenen MCUs bleiben oder 
MCUs nehmen, die sich in der bezeichnenden Nummer nur minimal 
unterscheiden.

von Harald (Gast)


Lesenswert?

Schade eigentlich, die IDE hätte mir zugesagt ;-)

von Piet (Gast)


Lesenswert?

Bezüglich dem LPC1347 wird das wohl doch nicht so einfach, und zwar 
wegen dem Flash Loader: der ähnlichste IC (LPC1343) hat nur 32 kB Flash, 
während der LPC1347 64 kB Flash besitzt.

Ich könnte einen flash laoder der LPC12XX Serie nehmen, der 64 kB hat.

Was steht denn üblicherweise so im Flash Loader code? Was kann schief 
gehen, wenn man den falschen verwendet?

Grüsse
Piet

von Arne Maximilian R. (arnemaximilian_r)


Lesenswert?

Es müsste einen Tab geben, wo du die Flashgröße einstellst. Auf einen 
Anderen Mikrocontroller würde ich daher erstmal nicht ausweichen. Ich 
werde das gerne auch noch einmal prüfen, jedoch ist es bei mir gerade 
halb zwei Ortszeit und ich bin morgen auch den Tag über unterwegs. Daher 
kann ich höchstens in zwei Tagen für dich hilfreich sein. Versuch daher 
lieber noch einmal den Tab mit der Flashgröße zu finden und diese zu 
verändern. Das sollte der sicherste Weg sein.

von Arne Maximilian R. (arnemaximilian_r)


Lesenswert?

Piet schrieb:
> Bezüglich dem LPC1347 wird das wohl doch nicht so einfach, und zwar
> wegen dem Flash Loader: der ähnlichste IC (LPC1343) hat nur 32 kB Flash,
> während der LPC1347 64 kB Flash besitzt.
>
> Ich könnte einen flash laoder der LPC12XX Serie nehmen, der 64 kB hat.

Also du solltest folgendes machen:
Wähle als Grundhardware den LPC1343 aus, der nur 32 kB Flash hat. Dieser 
verknüpft dein Projekt dann mit den passenden Ressourcen, die du 
benötigen wirst (und auch mit den passenden Einstellungen). Danach 
klickst du in der oberen Leiste auf das Zahnrad für "Configuration". 
Dann öffnet sich ein neuer Tab in der Auswahl. In diesen Tab kannst du 
wieder weitere Tabs auswählen und einer davon ist der "Link" Tab. Diesen 
"Link" Tab wählst du aus. In diesen Tab trägst du dann unter der IROM1 
(oder IROM2) Area die neue, größere Speichergröße ein.

Fertig ist die Laube!

Da steckt keine Magie hinter. Jedoch richtest du keinen Schaden damit 
an. Wenn du die LPC12XX Serie nimmst, so programmierst du für einen 
falschen CPU-Type (Cortex M0). Daher rate ich dir ab ein Projekt auf der 
Basis eines LPC12XX (Cortex M0) für einen LPC13XX (Cortex M3) 
aufzusetzen. Die Systeme haben unterschiedliche Kerne und auch einen 
unterschiedlichen Befehlssatz (einmal ARM/Thumb und Thumb/Thumb2).

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.