Ogólnie rzecz biorąc, dostawcy mikrokontrolerów umieszczają w swoich urządzeniach szereg pamięci odpowiednich do typowych zastosowań. Jeśli więc potrzebujesz tylko kilku pinów I / O i jednego SPI w małym urządzeniu, prawdopodobnie nie znajdziesz niczego, co jest dostarczane z 500 kB bajtów Flash i 64 kB bajtów RAM. W przypadku większych urządzeń, które są bliższe pakietom SoC, nawet najmniejsze jest prawie na pewno wystarczająco duże, chyba że planujesz poważne pauzowanie liczb, takie jak przetwarzanie obrazu.
W środowisku profesjonalnym kluczem do wyboru odpowiedniego mikrokontrolera jest wykorzystanie danych historycznych. Będziesz miał zapis innych opracowanych projektów i będziesz wiedział, jaka pamięć i inne zasoby krzemu są wymagane do wdrożenia każdej funkcji. Będziesz wiedział, co powinien zrobić produkt, a zatem będziesz mieć dobrą listę funkcji, a także będziesz mógł szybko i dokładnie obliczyć zasoby, które musi zapewnić mikrokontroler. Próba odgadnięcia wymagań dotyczących zasobów na podstawie wstępnej specyfikacji projektu (opracowanej na początku projektu, gdy dostępnych jest najmniej informacji o systemie) jest niewiarygodna w najlepszym momencie i tylko bardzo doświadczeni inżynierowie, którzy opracowali kompleksowe baza danych historycznych we własnych głowach odniesie jakikolwiek sukces w stosowaniu tej metody.
Wiele firm przyjęło podejście „zwinne” zarówno do oprogramowania, jak i do projektowania elektronicznego, które obejmuje zbudowanie „biblioteki” małych, funkcjonalnych kart (np. Kart RS-485, kart ADC itp.) Wraz z ogólnymi kartami platform obsługującymi mikrokontrolery , w podobny sposób jak korzystanie z zestawu deweloperskiego i wtyczek. Produkt można następnie szybko prototypować (w ciągu kilku godzin), wybierając i łącząc zestaw płyt wymaganych dla funkcji. Oprogramowanie jest podobnie złożone z modułów bibliotecznych i można je szybko przenosić i testować. Po określeniu rozmiaru części kodu specyficznej dla sprzętu zwykle wystarczy wybrać najmniejszą część, która będzie go zawierała. Wyjątkiem jest wspomniany powyżej, w którym funkcjonalność urządzenia obejmuje duże zbiory danych lub bardzo złożone algorytmy. Ta metoda zapewnia dokładne,
(Inną zaletą podejścia zwinnego jest to, że umożliwia równoległe tworzenie oprogramowania i elektroniki, przy czym projektowanie elektroniki stanowi ćwiczenie polegające na zintegrowaniu zestawu kart rozszerzeń i wykonaniu odpowiednich EMC i innych trudnych czynności w tym samym czasie, co opracowywane jest oprogramowanie aplikacji na zestawach protoype. Niektóre operacje przenoszenia i integracji są nadal konieczne, ale dzieje się tak, gdy dostępne jest zarówno działające oprogramowanie, jak i elektronika.)