Inizi anni 80 e mi assegnano una MPU CISC Hitachi, manuale di 450 pagine, molto ben fatto e dettagliatissimo, come da standard Giapponesi.
Chip in mano e carta bianca.
E li dovevi sudartela, studiare a fondo l'architettura, poi i moduli affiancati alla CPU (timers, gestore interrupt, modulo ingressi, gestore memoria, etc). Il chip da solo non fa nulla, bisogna progettare la board che lo ospita, sviluppare il bootloader che inizializza i vari moduli, e TUTTO in assembler (ovvero linguaggio macchina).
Unici tool un msdos 2.0, wordstar, assembler e linker.
Erano i tempi dei PC IBM AT 4.92Mhz con floppy disk da 360K (un per il boot MSDOS, e il secondo per l'editor, assembler e linker).
Non c'erano ancora ne emulatori ne JTAG, arrivati qualche anno dopo, quindi una volta realizzato il programma dal codice macchina si andava su EPROM con il programmatore di EPROM e si incrociavano le dita.
Time to market, elevatissimo e tanto sudore.
Poi sono arrivati gli emulatori, precursori della JTAG, che emulavano la CPU in tempo reale e ne sostituivano il case.
Si attacava il probe emulatore pin to pin compatibile con la MPU finale nella scheda e si aveva un minimo di debug con break points, stack, etc.
Con il tempo i core sono diventati sempre più complessi e veloci.
Dalle iniziali CISC, ai RISC, DSP, le prime FPGA, da singolo core a multi-core, da CPU a MPU a SOM.
Si è passati da assembler puro al C e poi al resto dei linguaggio, pur dovendo sempre conoscere il linguaggio macchina per le cose più basilari.
E sempre si partiva da zero, chip in mano e manuale.
Poi le aziende produttrici di processori hanno iniziato a sfornare i KIT di sviluppo.
Board pre-fatte da loro con tools di sviluppo aperti o meno (alcuni basati su GNU C e similari, altri con ambienti proprietari).
Ti davano la board che era corredata da esempi di codice e il time to market si riduceva parecchio.
Tutto merito anche dell'interfaccia JTAG, che si è dimostrata una carta vincente nella programmazione embedded.
Chiaramente queste board erano gratuite o in prestito per le aziende ma dal costo proibitivo per l'utente hobbista.
Inoltre sarebbe rimasto l'onere di ri-progettare da zero un hardware ed avere la possibilità di far montare chip ormai quasi tutti saldabili solo da macchine apposite.
Il progetto arduino ha messo pace a questa mancanza per il mondo hobbista.
Ha fornito una scheda di valutazione ma anche di uso finale, ovviamente configurata in un certo modo a costi accessibilissimi.
Ha fornito un sistema con un bootloader già pronto, un ambiente amichevole di programmazione che non obbliga l'utente a conoscere il chip e il suo funzionamento interno se non in modo marginale.
Chiaramente si tratta di progetti hobbistici, vanno benissimo per applicazioni generiche.
In industria una scheda arduino non passerebbe il primo test d'immunità.
Chi le usa in tali ambienti le fa a suo danno e pericolo in caso di problemi.
E in caso di infortuni non si va sul sottile....
Nel mondo ci sono categorie di processori.
Alcune sono general purpose, altre sono specifiche per i vari ambienti dove finiranno.
In altre parole i chip per il motion a l'automazione industriale non sono gli stessi che si trovano sulle breakboard in rete.
Hanno frequenze di lavoro diverse, temperature di lavoro diverse, immunità diverse ai problemi del settore industriale.
Resta da dire che Arduino è uno delle tante.
Da tenere presente progetti come Cubieoard, Raspberry, Olimex, Bananapi, BegleBone,...
Alcune di queste montano chip industriali o hanno una versione a range di temperature estese e configurazione adatta per l'uso industriale e quindi anche più sicuro per tutti gli usi hobbisitici...