Dipende da come si definisce "computer".
All'estremità più piccola della scala, quelli che potresti chiamare microcontroller tradizionali, non ottieni la gestione della memoria e raramente vedi più RAM della piccola quantità incorporata nel chip. Devo ammettere di avere pochissime conoscenze sull'architettura dei microcontrollori più capaci ora disponibili, ma l'esistenza (o la mancanza di queste) di queste funzionalità è probabilmente la chiave per distinguere tra un dispositivo più adatto per applicazioni integrate o per il calcolo per scopi generali .
Per "gestione della memoria" mi riferisco alla capacità di eseguire programmi in spazi di indirizzi virtuali e mapparli alla RAM fisica disponibile nel sistema, una funzione svolta da quella che normalmente viene chiamata unità di gestione della memoria (MMU).
Senza una MMU, se si tenta di eseguire più processi, tutti sono costretti a condividere un singolo spazio di indirizzi e ciò significa che, a meno che tutti i processi coinvolti non aderiscano al proprio schema di allocazione della memoria, un processo può facilmente arrestarne un altro. Quindi, se hai il controllo totale della progettazione di tutti i processi, come con un sistema incorporato, questo non è un problema. Tuttavia, se stai cercando di supportare il calcolo per scopi generali, non puoi garantire che tutto il codice che verrà eseguito rispetterà lo schema di allocazione della memoria e che il sistema sarà piuttosto fragile.
Anche la mancanza di RAM non è un grosso problema per i sistemi embedded, (1) perché di solito c'è molto flash e (2) non essere un computer per uso generico significa che non devi preoccuparti di eseguire programmi non previsti sul per un utente. Sai in anticipo la somma totale di tutto il software che verrà eseguito sul sistema e hai solo bisogno di RAM per le variabili per quel software. Quando provi a trasformare il tuo sistema in un computer per scopi generici, tuttavia, gli utenti si aspettano di essere in grado di eseguire ciò che si adatta a loro, e questo richiede RAM.
Ora, è assolutamente corretto eseguire calcoli generici su dispositivi senza MMU e non molta memoria. Il PC IBM 128K RAM originale, basato su 8088 (16 bit) se ne è andato via, purché fosse necessario eseguire solo un programma alla volta.
Quindi, se vuoi definire il "computer" come qualcosa di simile alla tecnologia del 1982, la risposta è sicuramente sì. O se hai un sistema chiuso in cui puoi mitigare i problemi di non avere una MMU e / o molto RAM (ad es. Telefoni cellulari) controllando attentamente la progettazione del software, anche sì. Oppure, se il tuo microcontrollore ha un MMU incorporato e gob di RAM (o può adattarli esternamente), dovresti essere in grado di costruire un sistema che assomigli di più ai computer attuali.