Hallo, habe mal eine generelle Frage.
Wir nutzen in der Firma ein Gerät mit einem Mikrocontroller. Jetzt will
der Herstelelr des Gerätes einen neuen Prozessor einsetzen und hat uns
gesagt Sie müssten daher die Software des Gerätes neu entwickeln ?? Kann
das sein, normalerweise bindet man solche Funktionen doch ein und es
sollte Prozessor unabhänig sien oder ??
Mfg
Maddin
...wenn der alte Abgekündigt ist, kann sich eine ganze Menge ändern.
Zumindest einige abstrahierende header-files und noch ein bißchen mehr
drum herum müssten neu geschrieben, bzw. auf den neuen prozessor
angepasst werden. das "eigentliche programm" bleibt gleich, aber dessen
"schnittstellen zum prozessor" ändern sich. und wenn es gar eine andere
prozessorfamilie oder hersteller ist, dann gute nacht.
Klaus.
naja, wenn der Prozessor nicht Software-kompatibel ist zum bestehenden,
dann muß das neu entwickelt werden.
Selbst wenn das ursprüngliche Programm in Hochsprache vorliegt, gibt es
dennoch einigen Anpassaufwand, und wenn es nur Timings von irgendwelchen
zeitabhängigen Routinen, weil der neue Prozessor andere Taktzyklen und
andere Taktfrequenz hat.
Die "Chance", daß da jedoch wenig oder doch eher viel Assembler
verwendet wurde, stehen ganz gut. In dem Fall ist richtig viel Aufwand
notwendig, da in die neue Zilesprache (wieder Assembler oder eine
Hochsprache) zu portieren
> normalerweise bindet man solche Funktionen
welches sind "solche Funktionen" ?
Kann man die Funktionen eines neuen Prozessors nicht euinfach einbinden
und der Compiler macht den rest ??? Habe das irgendwie aus meiner ARM 7
Zeit so in Erinnerung
nochmal: Welche Funktionen meinst du?
Das ein prozessor Register, Zähler, Interupts, Flgs etc hat, ist dir
aber auch "aus deiner ARM7 Zeit" bekannt ???? Und daß ein anderer
prozessor andere Befehle und andere Funktionalität abbildet, könntest du
dir auch mit dem ARM7 Hintergrund vorstellen?
Was willst du denn da wie einbinden, bzw. was hast du denn da beim ARM7
eingebunden?
Ganz einfach: Hast du alle Register etc. global in einer speziellen .h
definiert, musst du nur diese ändern. Hast du das aber alles in deiner
"main" gemacht, wird ne Menge arbeit nötig.
Wenn du in C geschrieben hast, versteht das nat auch ein C Compiler für
den neuen uC. Assembler versteht aber nur der spezielle Compiler für DEN
Assembler-Wortschatz des Ziel-uCs.
Klaus.
Ich bin der meinung das ich damals miit der Entwicklungsumgebung IAR
gearbeitet habe, programmiert wurde in C. und ich konnte in C direkt auf
einzelne Register zzugreifen. Damit das gelingt , mußte glaube ich eine
externe Bibliothek eingebunden werden ??
Naja, wenn DIE den Prozessor wechseln, musst DU das dann bezahlen? Oder
wieso fragst du?
Klaus.
PS: "...mußte glaube ich eine externe Bibliothek eingebunden werden ??"
-> Und genau das ist es, die kann recht komplex sein, wenn sie den
eigentlichen C-Code zu 100% von der Plattform (=uC) abstrahieren soll.
Zudem ist bei grundlegenden Änderungen des Prozessors oft auch eine
"elektrische Anpassung" der Schaltung und/oder der Signale notwendig.
Die Frage ist, ist der neue Prozessor aus der gleichen Familie, nur
schneller und mehr Flash/SRAM?
In diesem Fall muß die Software nicht komplett neu geschrieben werden.
Daher werden ja auch neue 8051-er entwickelt, damit man die ganze
8051-SW weiter benutzen kann und nur die neuen Funktionen hinzufügen
muß.
Insbesondere dessen Bitbefehle sind sehr schön bequem für Steuerungen.
Das könnte sich mit dem neuen ARM Cortex M3 ändern, da der wieder diese
schönen Bitbefehle hat.
Und damit das von hinten durch die Brust ins Auge, Knoten in die Finger
machende, umständliche Set- und Clear-Register Rumgemäre der ARM7
endlich entfällt.
Peter
in diesem Fall ja,
ich will mich aber nicht an der Nase herum führen lassen! Wir sind auf
das Gerät angewiesen, sehen aber keinen Grund im Prozessorwechsel ( den
alten gibt es noch) und für 1,5 Jahr angebliche Entwicklung zu zahlen ,
das sieht man natür lich auch nicht ein, wenn man keinen Nutzen daraus
ziehen kann