Ich denke, dass Sie Ihre Kostenoptionen hier abwägen müssen.
ARM + Linux ist eine Option, aber Sie werden eine sehr hohe Betriebsaufwand für eine solche einfache (aus Ihrer Beschreibung) Satz von Funktionen zahlen. Sie können nicht nur die Kosten für den ARM-Chip betrachten, sondern auch das externe RAM, das sehr wahrscheinlich benötigt wird, sowie das Flash berücksichtigen, um genügend Speicherplatz für die Ausführung der kernel + -Apps verfügbar zu machen.
Hinweis: Sie können in der Lage sein, die externen Anforderungen mit einem sehr geringen Kernel und einfachen Anwendungen mit einem uC mit großen internen Ressourcen kombiniert zu vermeiden.
Eine zweite Option ist ein viel einfacherer Mikrocontroller mit einem leichten Betriebssystem. Dies wird Ihre Hardwarekosten auf der CPU reduzieren und Sie können wahrscheinlich so etwas ohne externen RAM oder Flash (abhängig von Anwendungs-RAM und Programmplatzbedarf)
dritte Option: Ich sehe eigentlich nichts in Ihren Anforderungen verlangt, dass irgendein Betriebssystem überhaupt benutzt wird. Einfache Dateisysteme sind sehr einfach, zum Beispiel gibt es sogar FAT-Treiber für 8-Bit-PICs. Die Anbindung an eine SD-Karte erfordert nur einen SPI-Port und eine minimale externe Schaltung.
Das Anwendungsbit könnte einfach oder komplex sein. Ich habe Systeme rund um PIC18 Microcontoller gebaut, die einen Webserver betreiben und Programmaktualisierungen über einen einfachen Upload-Bildschirm erlauben, speichert das neue Programm einfach in einem EEPROM oder Flash, bootet in einen Bootloader und kopiert das neue Programm in den internen Programmspeicher. Sie könnten wahrscheinlich einen Weg entwerfen, dies ohne den Neustart über eine kooperative Multitasking-Architektur zu tun. Auf jeden Fall müssen die Programmierer, die die Apps schreiben, Kenntnisse über die Architektur und den Zugriff auf Bibliotheken/Treiber, die Sie schreiben, besitzen. Um dies zu vereinfachen, sollten Sie eine möglichst einfache API bereitstellen und versuchen, den Build-Prozess für sie zu automatisieren.
Die dritte Option ist die "günstigste" Hardware, da bei der Verarbeitung Ihrer Anwendungen nur ein sehr geringer Aufwand anfällt, so dass Sie mit minimaler Prozessorleistung und minimalem Arbeitsspeicher auskommen. Es wird wahrscheinlich etwas mehr Programmier-/Software-Architektur von Ihrer Seite erfordern, aber Sie werden nicht annähernd die Forschung benötigen, die Sie unternehmen müssen, um Linux zum Laufen zu bringen und zusätzlich die benötigten Gerätetreiber unter einem Linux-Paradigma zu schreiben.
Wie immer müssen Sie die Softwareentwicklungskosten in die Baukosten des Geräts einbeziehen. Wenn Sie vorhaben, mehr als 10.000 davon zu bauen, ist es wahrscheinlich besser, die Hardwarekosten niedrig zu halten und mehr Manpower in die Entwicklung einer Softwarelösung zu investieren, die es dieser Hardware ermöglicht, die Designziele zu erreichen. Wenn Sie 10 davon bauen, geben Sie am besten 15-20 US $ für Hardware aus, wenn Sie Ihre Softwareentwicklungskosten reduzieren können. Zum Beispiel ein ARM mit MMU mit voller Linux-Kernel-Unterstützung und verfügbaren Gerätetreibern.
Ich glaube, dass Sie die schlechteste aus beiden Welten im Moment wählen, Ihre extra zahlen, um ein UC zu erhalten, können Sie Linux ausführen, aber dabei wählen Sie auch ein Teil, das wahrscheinlich die komplexeste sein wird linux up und running on, vor allem mit Linux auf Embedded-Plattformen noch nicht gearbeitet.
Könnten Sie einige weitere Informationen über die Anwendung zur Verfügung stellen? Wenn Sie wirklich nur mit einigen seriellen Geräten reden und Informationen weitergeben und ARM + Linux ist wahrscheinlich zu viel Aufwand und Komplexität, vor allem, wenn Sie die Tool-Ketten und die Konfiguration des Betriebssystems auf einem solchen Gerät nicht bereits vertraut sind. – Mark