Guardo una scheda e vedo alcuni dispositivi a montaggio superficiale, alcuni resistori, condensatori e led. Ciò significa che, poiché una di quelle schede è una scheda video, tutte le schede con resistori e condensatori e più livelli e tracce sono tutte schede video? No.
Ecco un altro esempio, questa pagina web utilizza l'alfabeto inglese e le parole inglesi. Quindi il sito web del New York Times rende questo sito il New York Times? No, condividono solo lo stesso alfabeto e la stessa lingua, ma per il resto sono completamente diversi.
C è un linguaggio di programmazione generico che estrae le istruzioni impostate sotto di esso. Può essere utilizzato per bare metal, può essere utilizzato per creare sistemi operativi diversi e incompatibili tra loro, può essere utilizzato per creare videogiochi, ecc. Tutti utilizzano lo stesso linguaggio C di base, alcune funzioni e costruzioni C comuni, nonché chiamate di funzione che hanno creato specifiche per l'applicazione di destinazione. Per ciascuna di quelle piattaforme menzionate o altre potrebbe esserci una serie di funzioni che qualcuno ha scelto di creare. Proprio come una manciata di persone finora, incluso me stesso, ti hanno dato la stessa risposta ma l'hanno scritta in un modo diverso. Prendi 100 programmatori e isolali gli uni dagli altri e assegna loro un compito di programmazione per risolvere un problema particolare, senza limitare completamente la loro libertà di programmazione, e otterrai ovunque da 1 a 100 diverse, incompatibili tra loro soluzioni, probabilmente non 1 ma diversi temi comuni a seconda della loro formazione ed esperienza, quindi nomi di variabili e nomi di funzioni che come set sono probabilmente unici per ogni individuo. Prendi le stesse schede di cui stai già parlando e scoprirai che sicuramente ho il mio codice C che è incompatibile (con le funzioni di Arduino) per essere eseguito su di loro, come con molti altri, oltre che incompatibile con altre piattaforme. Questa è la bellezza della programmazione embedded bare metal, non sei vincolato in alcun modo, non devi vivere all'interno delle chiamate di libreria standard dei sistemi operativi o delle regole limitate di guis, ecc. Completa libertà. probabilmente non 1 ma diversi temi comuni a seconda della loro formazione ed esperienza, quindi nomi di variabili e nomi di funzioni che come set sono probabilmente unici per ogni individuo. Prendi le stesse schede di cui stai già parlando e scoprirai che sicuramente ho il mio codice C che è incompatibile (con le funzioni di Arduino) per essere eseguito su di loro, come con molti altri, oltre che incompatibile con altre piattaforme. Questa è la bellezza della programmazione embedded bare metal, non sei vincolato in alcun modo, non devi vivere all'interno delle chiamate di libreria standard dei sistemi operativi o delle regole limitate di guis, ecc. Completa libertà. probabilmente non 1 ma diversi temi comuni a seconda della loro formazione ed esperienza, quindi nomi di variabili e nomi di funzioni che come set sono probabilmente unici per ogni individuo. Prendi le stesse schede di cui stai già parlando e scoprirai che sicuramente ho il mio codice C che è incompatibile (con le funzioni di Arduino) per essere eseguito su di loro, come con molti altri, oltre che incompatibile con altre piattaforme. Questa è la bellezza della programmazione embedded bare metal, non sei vincolato in alcun modo, non devi vivere all'interno delle chiamate di libreria standard dei sistemi operativi o delle regole limitate di guis, ecc. Completa libertà. Prendi le stesse schede di cui stai già parlando e scoprirai che certamente ho il mio codice C che è incompatibile (con le funzioni di Arduino) per essere eseguito su di loro, come con molti altri, oltre che incompatibile con altre piattaforme. Questa è la bellezza della programmazione embedded bare metal, non sei vincolato in alcun modo, non devi vivere all'interno delle chiamate di libreria standard dei sistemi operativi o delle regole limitate di guis, ecc. Completa libertà. Prendi le stesse schede di cui stai già parlando e scoprirai che certamente ho il mio codice C che è incompatibile (con le funzioni di Arduino) per essere eseguito su di loro, come con molti altri, oltre che incompatibile con altre piattaforme. Questa è la bellezza della programmazione embedded bare metal, non sei vincolato in alcun modo, non devi vivere all'interno delle chiamate di libreria standard dei sistemi operativi o delle regole limitate di guis, ecc. Completa libertà.
Puoi scegliere, e un'alta percentuale di persone, di giocare nella sandbox di qualcun altro invece di crearne una tua, il che significa usare l'arduino gui e le loro librerie C.
Puoi prendere lo stesso PC ed eseguire diverse versioni di Windows, Linux, BSD e un elenco di altri sistemi operativi che a un certo livello utilizzano C ma le cui chiamate di funzione sono incompatibili tra loro. Lo stesso hardware e C incompatibile, che si estende a hardware diverso, stessa lingua, può avere un codice compatibile o incompatibile. La lingua non li rende in alcun modo compatibili.
C viene utilizzato su queste piattaforme incorporate perché questa è la pratica comune, non esiste un altro linguaggio in grado di sostituire C per questo. Il primo passo per un nuovo processore è ovviamente l'assemblaggio, quindi quasi sempre è il successivo C, quindi forse altri se è abbastanza potente per eseguire un sistema operativo (Linux, bsd, ecc.). C è stato inventato e sperava di risolvere il problema al momento del porting del codice su piattaforme diverse e fino a quando si dispone di un sistema operativo come nel caso di un compilatore compatibile C che crea codice che ESEGUE SU UN SISTEMA OPERATIVO, eseguirà il file C standard operazioni e stampa e cose del genere. Ma il bare metal è una storia diversa, non esiste un sistema operativo, spesso non esiste alcuna nozione di un file system né di un display, ma di solito esiste un compilatore C che alla radice trasforma C in un linguaggio di assemblaggio specifico di destinazione.