No software, o que o termo "incorporado" implica?

9

Então, eu tenho procurado aprimorar meu conhecimento em programação de hardware de nível inferior e incorporado, porém, toda vez que procuro trabalhos que mencionem "incorporado" , são sempre coisas de alto nível. Para mim, isso não faz muito sentido.

Então, o que exatamente "incorporado" implica? Quando penso em incorporado , penso em programação de microcontrolador de nível inferior e tal. Se incorporado não é o título adequado para isso, então o que devo procurar?

durron597
fonte

Respostas:

4

Defina o que você quer dizer com coisas de nível superior. Escrever drivers e qualquer outro tipo de software que se comunique com o hardware é provavelmente o que a maioria das pessoas pensa quando você menciona o software incorporado. Enquanto isso faz parte, é apenas uma pequena parte. Depois de ter toda essa configuração, ainda existe todo o aplicativo a ser escrito, que provavelmente nunca realmente fala diretamente com o hardware e, na maioria dos casos, é mais provável que isso seja a maior parte do esforço de desenvolvimento. Em algum nível, isso pode ser comparável à programação em nível "superior". No entanto, no mundo incorporado, você provavelmente está trabalhando sob algumas restrições, especialmente em termos de poder e memória computacional. Aqui está uma lista das coisas em que penso diariamente que provavelmente têm menos importância no desenvolvimento de nível superior na maioria dos casos.

  • Simultaneidade de threads (proteção e tempo)
  • Alocação de memória, desalocação e uso
  • Gerenciamento de heap (evitando fragmentação)
  • Cumprimento de prazos em tempo real
  • Priorização de threads
  • Desempenho de I / 0
  • Transferências de DMA
  • Tamanhos de pilha
  • Desempenho da biblioteca
  • Recursos de idioma (exceções incham seu código)

Além disso, as plataformas incorporadas tendem a ser altamente especializadas para atingir um objetivo específico, oposto a um PC, projetado para ser uma plataforma para a computação geral de heterogeneidade. Isso significa que você provavelmente tem um monte de código personalizado que pode ou não ser portátil.

Pemdas
fonte
7

Da Wikipedia / Sistema Incorporado :

Um sistema incorporado é um sistema de computador projetado para executar uma ou algumas funções dedicadas, geralmente com restrições de computação em tempo real.

Em suma, o termo pode ser aplicado a qualquer tipo de sistema que não seja um PC de uso geral. Isso pode variar de microcontroladores simples a hardware de rede e consoles de jogos modernos.

Se você considera "coisas de alto nível" como "usa uma linguagem de programação de alto nível" ou mesmo "é um grande projeto orientado a objetos", é claro que é sempre possível que você possa ter um software de alto nível em um sistema incorporado .

Geralmente, ao especificar que seu software estará em um sistema "Incorporado", você quer dizer que, de alguma forma, seu software será acoplado ao sistema incorporado - e talvez não seja altamente portátil.

É um termo muito amplo, de fato. Algumas coisas que eu não esperaria ouvir chamadas "Incorporadas" seriam software para PC, aplicativos Web e Software Servidor em geral. Certamente, não há garantia de que o software incorporado exclua qualquer tipo de programação ou design de alto nível.

ProdigySim
fonte
Além disso, devo salientar que o objetivo de especificar que seu software está incorporado é significar que você terá menos bibliotecas e soluções existentes disponíveis para construir sua solução.
ProdigySim 04/04
+1. Exemplos comuns para sistemas incorporados são os computadores em máquinas POS ou ATM. Mesmo que eles executem sistemas operacionais prontos para uso, como Windows ou Linux.
Nikie
1

Eu suspeito que você esteja procurando trabalhos onde "incorporado" significa "computador em uma caixa", geralmente um que executa uma tarefa específica. Provavelmente executando a maior parte de uma distribuição Linux ou de um sistema operacional Microsoft, mas será bastante completo e você poderá usar IDEs GUI padrão e assim por diante. A parte incorporada realmente aparece quando o dispositivo é lançado como um gravador de vídeo multicanal, dispositivo de streaming de mídia ou alarme contra roubo.

Atualmente, você pode fazer muito processamento em um dispositivo de 1W, para que a definição de incorporado tenha crescido de acordo. Porém, mesmo há 20 anos, tínhamos dispositivos embarcados alimentados por bateria executando o DOS bastante padrão e construímos programas para eles usando o IDE do dia (os scanners de código de barras Symbol tinham bibliotecas para C e Pascal, por exemplo, por isso usamos o Turbo Pascal no Win3.1 para construir os executáveis). Mas também enviamos "PCs industriais" que inicializaram o DOS e nosso software, e a entrada foi limitada a alguns botões grandes à prova d'água montados em uma caixa de aço inoxidável. O LCD de 15 polegadas atrás do vidro naquela caixa significava que tínhamos muitas opções de saída, mas conectar um teclado significava abrir a caixa (dentro de uma fábrica de alimentos). Elas podem ser consideradas incorporadas de algumas perspectivas. Principalmente o usuário tinha poucas opções de recuperação de erros - ligue ou desligue.


fonte