Nel software, cosa implica il termine "incorporato"?


9

Quindi ho cercato di approfondire le mie conoscenze sulla programmazione hardware integrata e di livello inferiore, tuttavia, ogni volta che cerco lavori che menzionano "incorporato" è sempre roba di alto livello. Per me, questo non ha molto senso.

Cosa comporta esattamente "incorporato"? Quando penso a embedded penso alla programmazione di microcontrollori di livello inferiore e simili. Se incorporato non è il titolo appropriato per questo, allora cosa dovrei cercare?

Risposte:


4

Definisci cosa intendi per cose di livello superiore. Scrivere driver e qualsiasi altro tipo di software che comunica con l'hardware è probabilmente ciò a cui pensa la maggior parte delle persone quando si parla di software incorporato. Mentre quello fa parte di esso, quello è solo una piccola parte. Una volta che hai tutte queste impostazioni, c'è ancora l'intera applicazione da scrivere che probabilmente non parla mai direttamente all'hardware e, molto probabilmente, nella maggior parte dei casi questa è la maggior parte dello sforzo di sviluppo. A un certo livello questo può essere paragonabile alla programmazione di livello "superiore". Tuttavia, nel mondo embedded probabilmente stai lavorando con alcuni vincoli, specialmente in termini di potenza computazionale e memoria. Ecco un elenco di cose a cui penso quotidianamente che probabilmente hanno meno importanza nello sviluppo di livello superiore nella maggior parte dei casi.

  • Concorrenza thread (sia protezione che tempismo)
  • Allocazione, deallocazione e utilizzo della memoria
  • Gestione dell'heap (evitando la frammentazione)
  • Rispetto delle scadenze in tempo reale
  • Priorità dei thread
  • Prestazioni I / 0
  • Trasferimenti DMA
  • Dimensioni dello stack
  • Prestazioni in biblioteca
  • Funzionalità del linguaggio (eccezioni gonfiano il codice)

Inoltre, le piattaforme integrate tendono ad essere altamente specializzate per raggiungere un obiettivo specifico rispetto a un PC progettato per essere una piattaforma per il calcolo generale dell'eterogeneità. Ciò significa che probabilmente hai un sacco di codice personalizzato che può essere o meno portatile.


7

Da Wikipedia / Sistema incorporato :

Un sistema incorporato è un sistema informatico progettato per eseguire una o alcune funzioni dedicate spesso con vincoli informatici in tempo reale.

In breve, il termine può essere applicato a qualsiasi tipo di sistema che non sia un PC generico. Questo può variare da semplici microcontrollori a hardware di rete a moderne console di gioco.

Se consideri "materiale di alto livello" il significato di "usa un linguaggio di programmazione di alto livello" o addirittura "è un grande progetto orientato agli oggetti", ovviamente è sempre possibile che tu possa avere un software di alto livello su un sistema incorporato .

Generalmente, specificando che il tuo software sarà su un sistema "Embedded", intendi che in qualche modo il tuo software verrà accoppiato al sistema incorporato - e forse non sarà altamente portatile.

È un termine molto ampio, davvero. Alcune cose che non mi aspetterei di sentire chiamate "Embedded" sono il software per PC, le applicazioni Web e il software server in generale. Tuttavia, non esiste alcuna garanzia che il software incorporato escluderà qualsiasi tipo di programmazione o progettazione di alto livello.


Inoltre, potrei sottolineare che lo scopo di specificare che il tuo software è incorporato è quello di indicare che avrai meno librerie e soluzioni esistenti disponibili per creare la tua soluzione.
ProdigySim

+1. Esempi comuni di sistemi incorporati sono i computer in POS o bancomat. Anche se eseguono sistemi operativi standard come Windows o Linux.
Nikie,

1

Sospetto che tu stia guardando lavori in cui "incorporato" significa "computer in una scatola", generalmente uno che svolge un compito specifico. È molto probabile che esegua la maggior parte di una distribuzione Linux o un sistema operativo Microsoft, ma sarà abbastanza completo e sarai in grado di utilizzare gli IDE GUI standard e così via. La parte incorporata arriva davvero quando il dispositivo viene distribuito come un videoregistratore multicanale, dispositivo di streaming multimediale o antifurto.

In questi giorni è possibile eseguire molte elaborazioni in un dispositivo da 1 W, quindi la definizione di embedded è cresciuta di conseguenza. Ma anche 20 anni fa avevamo dispositivi embedded alimentati a batteria che eseguivano DOS abbastanza standard e creavano programmi per loro usando l'IDE del giorno (gli scanner di codici a barre Symbol avevano librerie per C e Pascal, ad esempio, quindi abbiamo usato Turbo Pascal su Win3.1 per costruire gli eseguibili). Ma abbiamo anche spedito "PC industriali" che avviavano DOS, quindi il nostro software, e l'ingresso era limitato a pochi grandi pulsanti impermeabili montati su una scatola di acciaio inossidabile. L'LCD da 15 "dietro il vetro in quella scatola significava che avevamo molte opzioni di output, ma collegare una tastiera significava aprire la scatola (all'interno di una fabbrica di alimenti). Questi potrebbero essere considerati incorporati da alcune prospettive. Principalmente che l'utente aveva poche opzioni di recupero degli errori - spegnere e riaccendere.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.