Forum: Mikrocontroller und Digitale Elektronik Umstieg von CISC auf RISC µC


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Z003 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen,

ich schreibe gerade meine Abschlussarbeit und muss für ein bestehendes 
Projekt einen neuen Mikrocontroller auswählen.

Nun geht es um den Wechsel von CISC auf RISC.

Meine Recherche hat folgendes ergeben:
Bei RISC ist der Befehlssatz beschränkt bzw. besitzt einen deutlich 
geringeren Umfang. Dies spielt für mich jedoch nur eine Rolle, wenn ich 
in Assembler programmiere.

Bisher wurde der M16C von Renesas verwendet, welcher die 
CISC-Architektur besitzt. Nun dürfte es kein Problem sein, einen 
RISC-Prozessor zu verwenden (geplant ist der STM32F4), da der zum µC 
kompatible Compiler den in C geschriebenen Quellcode in die passenden 
Befehle umwandelt.

Ich wäre dankbar, wenn mir das jemand bestätigen oder mich auf Fehler 
hinweisen kann.

Grüße

von (prx) A. K. (prx)


Bewertung
0 lesenswert
nicht lesenswert
Z003 schrieb:
> Dies spielt für mich jedoch nur eine Rolle, wenn ich
> in Assembler programmiere.

Fast. Wenn du dich bisher darauf verlassen hast, dass
   counter += 1;
im Hauptprogramm und
   counter = 0;
im Interrupt kein Problem bereiten kann, dann wirst du Überraschungen 
erleben. Beim ARM ist diese Addition unterbrechbar, beim M16C nicht.

: Bearbeitet durch User
von Volle2 (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Der Befehlssatz spielt aus C-Sicht keinen große Rolle
abgesehen von Float und speziellen Befehlen
Das geht aber Richtung Effizienz

Aber Adressierungsarten und Lokatierungsarten und wie ich sie aus C 
nutze
(pragmas/Atribute) ist wichtig

von (prx) A. K. (prx)


Bewertung
0 lesenswert
nicht lesenswert
Volle2 schrieb:
> Lokatierungsarten

Wasndas?

von Peter D. (peda)


Bewertung
0 lesenswert
nicht lesenswert
Neben der Unterscheidung CISC/RISC gibt es auch Von Neuman/Harward, d.h. 
ob Daten und Code im gleichen oder in getrennten Adreßräumen liegen.

von (prx) A. K. (prx)


Bewertung
0 lesenswert
nicht lesenswert
Peter D. schrieb:
> Neben der Unterscheidung CISC/RISC gibt es auch Von Neuman/Harward, d.h.
> ob Daten und Code im gleichen oder in getrennten Adreßräumen liegen.

Das wird in seinem Fall aber nur einfacher, bei M16C => ARM, weil die 
Klimmzüge zur Flashadressierung entfallen.

von A. S. (achs)


Bewertung
0 lesenswert
nicht lesenswert
Deine Überlegungen sind im embedded-Bereich (µController) sinnlos.

Ja, den reinen ANSI-C-Teil kann der neue Compiler vermutlich wie der 
alte übersetzen. Daneben gibt es aber noch in SW:

#pragmas

#implementation defined behaviour (und wie z.B. beim Überlauf von ints; 
UB.)

#Interrupts
#Lock-Mechanismen
#Betriebssysteme/Libraries/...
#int-größen
#endianess

die alle irgendwie anders sein können, oder in HW:

- integrierte Peripherie (Clock, ADCs, Timer, ...), sonst wäre es ein 
Prozessor, keine µController.
- Register-Mapping
- Schreiben/Lesen interner Speicher
- atomare Operationen (oder nicht),


RISC oder CISC ist manchmal nur ein Indiz dafür, wie weit einige dieser 
Punkte voneinander abweichen.

von Z003 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
A. K. schrieb:
> Beim ARM ist diese Addition unterbrechbar, beim M16C nicht.

Danke, merke ich mir für die Programmierung.

Peter D. schrieb:
> Neben der Unterscheidung CISC/RISC gibt es auch Von Neuman/Harward, d.h.
> ob Daten und Code im gleichen oder in getrennten Adreßräumen liegen.

Ja, das habe ich bereits beachtet. Danke für den Hinweis.

von Z003 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Achim S. schrieb:
> Ja, den reinen ANSI-C-Teil kann der neue Compiler vermutlich wie der
> alte übersetzen.

Es geht ja aktuell erst einmal darum, ob der neue µC verwendet werden 
kann.  Viele Punkte die du ansprichst müssen - soweit ich das verstehe - 
dann bei der Anpassung der Software beachtet werden.

Achim S. schrieb:
> - integrierte Peripherie (Clock, ADCs, Timer, ...), sonst wäre es ein
> Prozessor, keine µController.

Wurde bei der Auswahl des µC beachtet.

Achim S. schrieb:
> - Register-Mapping
> - Schreiben/Lesen interner Speicher

Sind das nicht auch Software-Themen?

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]
  • [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.