Questa è tutta la mia esperienza / opinione, derivante dal lavorare in campo molto vicino al metal:
I "sistemi incorporati" sono in genere situazioni in cui la memoria non banale o i vincoli di velocità sono significativi rispetto ai sistemi desktop. Queste situazioni incorporate possono includere microcontrollori, ma possono anche includere sistemi x86 su un chip e anche sistemi come PC104 o altri fattori di forma. Possono eseguire un sistema operativo "comune" come Linux o Windows CE, ma non sempre. Di solito hanno una memoria e una velocità molto inferiori rispetto alle applicazioni desktop / server, ma di solito non così poco da dover pensare a lungo se utilizzare un intero 16 o 32 bit per qualcosa come potrebbe essere necessario con un microcontrollore. / p>
Il raspberry pi per esempio funziona a 700MHz e ha 256 o 512 megabyte di ram. Un microcontrollore Atmel ATMega32U4, ad esempio, funziona fino a solo 16 MHz, con solo 2560 byte di RAM. Alcuni dei dispositivi STM32, che utilizzano un core ARM, funzionano fino a 24 MHz e hanno circa 8 kB di RAM. Abbastanza una sostanziale differenza di velocità e memoria tra i due, anche più drammatica di un desktop vs un raspberry pi.
La programmazione per microcontrollori è un sottoinsieme di sistemi embedded con vincoli di memoria e velocità ancora più significativi, ma anche una maggiore intimità con l'hardware a cui è collegato il microcontrollore. Trascorrerai molto più tempo a pensare a innalzare o innalzare trigger di clock di bordo, timer di watchdog, trigger di interrupt esterni, problemi di temporizzazione di conversione da analogico a digitale e un sacco di altre cose che in genere sono molto lontane dai sistemi desktop. Potrebbe anche essere necessario tenere presente la quantità di energia utilizzata in diverse operazioni e scrivere il software per soddisfare i requisiti di assorbimento di potenza.
Finché non hai programmato i microcontrollori, non è saggio rivendicare di poterlo fare. Fino al giorno in cui dovrai utilizzare un oscilloscopio per capire perché le tue periferiche SPI-bus non stanno parlando, non sai ancora il tipo di cose che finora ti sono state invisibili.