Come viene costruito il software per macchine come bancomat o TV?

13

Come programmatore per principianti ho lavorato solo con la programmazione di applicazioni basate su computer, ma una domanda mi è venuta in mente molto spesso da quando ho iniziato a programmare e non riesco a ottenere una risposta corretta.

Le macchine non agiscono da sole, questo è il lavoro del programmatore, gli dice cosa fare e quando farlo, ma la mia curiosità è al di sotto dei computer. Prenderò gli esempi di un software ATM su questo post, ma tieni presente che ce ne sono molti altri come un display per lavatrice o un televisore, telefono cellulare, il tuo nome.

Come viene costruito esattamente il software per questo tipo di macchine? Immagino che non possa essere identico alla programmazione basata su computer. Che lingua usano per far funzionare queste cose e come si fa a fare il lavoro? Ci sono programmatori specializzati in questo tipo di programmazione? Qual è il processo per rendere queste macchine prendere vita?

    
posta Bugster 09.03.2012 - 22:24
fonte

4 risposte

15

È noto come Embedded Systems o Embedded Software Development. Ti consiglio di questo libro se vuoi saperne di più sul processo generale senza andare troppo verso nessuna architettura . Ti dà persino un sistema operativo in tempo reale con cui giocare.

La programmazione integrata dipende molto dall'architettura. In genere, si sta lavorando con risposte serie, dimensioni del programma, recupero degli errori e limiti di costo. Ad esempio potresti avere uno z80 (processore a 8 bit, sono ovunque) e forse un paio di kilobyte di memoria con cui giocare. Si potrebbe avere solo una ROM per dire al sistema cosa fare e come impostare il programma. Potrebbe anche essere solo un paio di kilobyte di dimensioni. Perché così poco ricordo? Bene, se produci 15 milioni di piccoli polloni; ogni centesimo diventa $ 150.000.

Suggerirei di manipolare qualcosa come Arduino o Scribbler Robots se vuoi saperne di più. Per quanto riguarda le lingue, C, C ++ e Assembly sono il set tipico sebbene possa essere usato Java (e in effetti era stato originariamente progettato per questo dominio se si può sopportare quel pensiero). Altri potrebbero essere usati anche così, ho saputo di Lisp e ML vengono entrambi distribuiti.

Impara il più possibile sull'architettura, perché, come ho detto, l'allocazione della memoria e le operazioni bit a bit iniziano a diventare davvero importanti.

    
risposta data 09.03.2012 - 22:44
fonte
5

Qui c'è sicuramente un angolo integrato. Ma in questi giorni stai vedendo piattaforme sempre più avanzate su ciò che sarebbe tradizionalmente chiamato dispositivi embedded. Ad esempio, sia LG che Samsung TV hanno ora API e app store. I televisori Sony funzioneranno su Android.

    
risposta data 09.03.2012 - 22:31
fonte
4

Ho visto due sportelli automatici aperti a Denver, in Colorado. Entrambi erano (quindi) bancomat della Banca Compass, ed entrambi erano Windows XP sotto il caso più duro. Ho avuto modo di chiedere alla tecnologia cosa, in particolare, uno di loro funzionava, e ha detto qualcosa come "XP Embedded".

Quindi, scommetto che la programmazione ATM è meno simile alla programmazione incorporata in questi giorni, e più simile allo sviluppo standard di Windows.

    
risposta data 10.03.2012 - 01:01
fonte
3

Questi tipi di dispositivi sono programmati utilizzando la programmazione integrata . Questo è un tipo di programmazione di livello molto basso che si occupa molto della logica e delle porte.

Se sei interessato ad apprendere la programmazione integrata, ti consiglio di consultare arduino .

    
risposta data 09.03.2012 - 22:28
fonte

Leggi altre domande sui tag