Im Allgemeinen stellen Mikrocontroller-Anbieter eine Reihe von Speichern in ihren Geräten bereit, die für typische Anwendungen geeignet sind. Wenn Sie also nur ein paar I / O-Pins und eine SPI in einem kleinen Gerät benötigen, ist es unwahrscheinlich, dass Sie etwas finden, das mit 500 kByte Flash und 64 kByte RAM geliefert wird. Bei größeren Geräten, die sich näher an SoC-Paketen befinden, ist mit ziemlicher Sicherheit auch das kleinste ausreichend groß, es sei denn, Sie planen eine ernsthafte Zahlenverarbeitung wie die Bildverarbeitung.
In einem professionellen Umfeld besteht der Schlüssel zur Auswahl des richtigen Mikrocontrollers darin, historische Daten zu verwenden. Sie haben eine Aufzeichnung der anderen Projekte, die Sie entwickelt haben, und wissen, welcher Speicher und welche anderen Siliziumressourcen zur Implementierung der einzelnen Funktionen erforderlich sind. Sie wissen, was von dem Produkt erwartet wird, haben also eine gute Funktionsliste und können schnell und genau die Ressourcen berechnen, die der Mikrocontroller bereitstellen muss. Der Versuch, den Ressourcenbedarf anhand einer Entwurfsspezifikation zu erraten (die zu Beginn des Projekts entwickelt wurde, wenn die wenigsten Informationen über das System verfügbar sind), ist im besten Fall unzuverlässig und nur sehr erfahrene Ingenieure, die eine umfassende Spezifikation erstellt haben Datenbank von historischen Daten in ihren eigenen Köpfen, wird jede Art von Erfolg bei der Verwendung dieser Methode haben.
Viele Unternehmen haben einen „agilen“ Ansatz für Software und elektronisches Design gewählt, der den Aufbau einer „Bibliothek“ kleiner Funktionskarten (z. B. RS-485-Karten, ADC-Karten usw.) sowie generischer Plattformkarten umfasst, auf denen sich die Mikrocontroller befinden Ähnlich wie bei der Verwendung eines Entwicklungskits und von Plug-Ins. Ein Produkt kann dann schnell (innerhalb von Stunden) als Prototyp erstellt werden, indem die für die Funktionen erforderlichen Platinensätze ausgewählt und verbunden werden. Die Software setzt sich ebenfalls aus Bibliotheksmodulen zusammen und kann schnell portiert und getestet werden. Sobald die Größe des hardwarespezifischen Teils des Codes bekannt ist, ist es normalerweise ausreichend, den kleinsten Teil auszuwählen, der diesen enthält. Die Ausnahme ist die oben erwähnte, bei der die Funktionalität des Geräts große Datenmengen oder sehr komplexe Algorithmen umfasst. Diese Methode liefert eine genaue,
(Ein weiterer Vorteil des Agile - Ansatzes besteht darin, dass Software - und Elektronikentwicklung parallel durchgeführt werden können. Das Elektronikdesign ist eine Übung zur Integration der Funktionsplatinen und zur gleichzeitigen Durchführung der relevanten EMV - und anderer schwieriger Aufgaben Auf den Protoype-Baugruppen wird Anwendungssoftware entwickelt. Einige Portierungen und Integrationen sind noch erforderlich, dies geschieht jedoch, wenn funktionierende Software und Elektronik verfügbar sind.)