Digitaler Signalcontroller mit GNU-Toolchain?

Bietet irgendein Hersteller einen digitalen Signalcontroller an (was im Grunde genommen einen Mikrocontroller mit einigen DSP-Funktionen wie einem MAC-Befehl und anderem bedeutet), für den ich Software mit GCC kompilieren könnte? dsPIC verwendet anscheinend den eigenen C30-Compiler von Microchip, der ein GCC-Spin-off ist, aber nicht kostenlos ist (wie im freien Quellcode).

Ich bräuchte nur ein paar ADC-Kanäle, zwei DAC-Kanäle und eine FPU, also nichts Besonderes.

Ich möchte versuchen, mich möglichst von Toolchains einzelner Hersteller fernzuhalten.

"freier Quellcode", ist das frei wie in "Freibier" oder frei wie in "freie Meinungsäußerung"?
wie in der freien Meinungsäußerung. Ich weiß, dass mehrere Hersteller kostenlose (wie in Bier) Toolchains anbieten, aber ich möchte sie vermeiden.
Was ist mit der SDCC-Toolchain? Unterstützt es C30-Mikros?
@Dago: DSP bedeutet überhaupt nicht "grundsätzlich mit FPU" (Gleitkommaeinheit). Es ist nicht ungewöhnlich, dass ein DSP nur über Festkomma-Arithmetikfähigkeiten verfügt. Viel typischer für einen DSP ist die Harvard-Architektur (Trennung von Daten- und Programmspeichern, getrennte Daten- und Programmbusse).
Ja, keiner der dsPICs hat eine FPU. Ich nahm an, Sie wollten wirklich DSP-Engine sagen, die für schnelle Faltungen auf Speicherarrays hardwareoptimiert ist. Wenn Sie wirklich FPU (Gleitkommaeinheit) meinen, dann wird Ihre Auswahl sehr viel eingeschränkter sein.
Ja, DSP-Engine ist das, was ich meinte :)

Antworten (3)

Sie erwähnen nicht, welche Art von Leistung Sie benötigen, aber die AD Blackfin- und TI OMAP -Geräte werden beide von Open-Source-Toolchains (gcc usw.) unterstützt. Für OMAP schauen Sie auf OpenEmbedded @ www.openembedded.org/wiki/Main_Page , für Blackfin schauen Sie auf ucLinux @ www.uclinux.org/ .

Auch wenn sie hinsichtlich ihrer Leistungsfähigkeit übertrieben erscheinen (bis zu etwa 1 GHz ARM + DSP), sind sie klein und energieeffizient, siehe z. B. Gumstix Overo @ www.gumstix.com/store/index.php?cPath=33 für eine Reihe von OMAP-Boards und eine gute Entwickler-Community @ gumstix.org ).

OMAP wird auch auf dem Beagleboard verwendet, das ein großartiger Ausgangspunkt ist.

(Entschuldigung, erster Beitrag zu electronic.stackexchange, also auf 2 Hyperlinks beschränkt, daher die Unordnung oben!)

ARM Cortex-M4(F)-Core-basierte MCUs.

Es ist kein vollwertiger DSP, aber es hat einige "DSP-ähnliche Funktionen":

  • Einzelzyklus 32x32->64 MAC-Betrieb.
  • optional FPU (bei F-Variante).

Es wird (einschließlich Hardware-FP-Unterstützung) von GCC von https://launchpad.net/gcc-arm-embedded unterstützt .

ARM bietet auch optimierte DSP-Routinen in der CMSIS DSP-Bibliothek.

Der Microchip-Compiler basiert auf GCC, und daher ist seine Quelle offen. Microchip hat einige eigene Sachen für die fortgeschritteneren Optimierungen hinzugefügt, aber der grundlegende Compiler ist kostenlos und seine Quelle ist verfügbar.

Der Versuch, mit Mikrocontroller-Compilern herstellerunabhängig zu sein, ist auch ein bisschen albern. Ja, C ist ungefähr ein Standard, aber an jeder einzelnen Instanz müssen Verbesserungen vorgenommen werden, um die Architektur gut zu nutzen. Es wird einige Quellcode-Unterschiede geben, die zwischen verschiedenen Mikrocontroller-Familien erforderlich sind, unabhängig davon, welchen Compiler Sie verwenden. Nur weil zwei Compiler auf GCC basieren, bedeutet das nicht, dass der Anwendungscode mit dem Quellcode kompatibel ist.

Die Quellcodekompatibilität gilt bestenfalls für die generischen C-Anweisungen und die Arithmetik. Der Großteil der Embedded-Firmware auf solchen kleinen Systemen mit begrenzten Ressourcen wird jedoch die spezialisierten Hardware-Peripheriegeräte verwalten. Dieser Code wird aufgrund seiner Natur für diese Familie und manchmal für den Teil spezifisch sein. Die Forderung nach allgemeiner C-Kompatibilität ist für 5% der Lösung und das Ignorieren des 75%-Problems der Portierung zwischen verschiedenen Geräten überhaupt.

Außerdem macht es wenig Sinn, zu verlangen, dass der Quellcode für den Compiler offen ist. Wirst du wirklich wirklich da reinkommen und Änderungen vornehmen? Das überlässt man am besten den Experten, deren Vollzeitjob es ist. Für ein einmaliges persönliches Projekt ist es sinnvoll, einen kostenlosen Compiler zu verwenden, aber dann haben die meisten Anbieter eine gewisse Vorliebe für kostenlose Compiler. Alle Microchip-Compiler haben kostenlose Versionen, die sich von den Vollversionen nur dadurch unterscheiden, dass einige der erweiterten Optimierungen deaktiviert sind. In den meisten Fällen ist dies irrelevant. Wenn Sie an Grenzen stoßen, verwenden Sie für eine einmalige Verwendung den nächstgrößeren Chip, und es steht immer Assembler zur Verfügung, wenn Sie wirklich den Coderaum und die Geschwindigkeit für bestimmte Teile des Systems benötigen.

Ich habe nie gesagt, dass ich wollte, dass der Code herstellerunabhängig ist. Ich möchte nur unfreien Code nicht unterstützen, es sei denn, ich muss. Ich möchte mir die Möglichkeit vorbehalten, den Compiler zu reparieren (und habe dies bei einigen früheren Projekten getan), wenn es sein muss.
Dangerousprototypes.com/2011/08/30/… Hier ist ein Artikel über Microchip und Open-Source-Zeug, der meine Gefühle ziemlich gut widerspiegelt.