Como programador iniciante, trabalhei apenas com programação de aplicativos baseados em computador, mas uma pergunta vem à minha cabeça com muita frequência desde que comecei a programar e não consigo responder adequadamente.
As máquinas não agem por conta própria, esse é o trabalho do programador, ele diz o que fazer e quando, mas minha curiosidade está embaixo dos computadores. Vou pegar os exemplos de um software de caixa eletrônico nesta publicação, mas lembre-se de que existem muitos outros, como uma tela de máquina de lavar ou uma TV, telefone celular, etc.
Como exatamente é construído o software para esse tipo de máquina? Eu imagino que não pode ser idêntico à programação baseada em computador. Que idioma eles usam para fazer essas coisas funcionarem e como alguém faz o trabalho? Existem programadores especializados nesse tipo de programação? Qual é o processo de dar vida a essas máquinas?
fonte
Respostas:
É conhecido como Sistemas Incorporados ou Desenvolvimento de Software Incorporado. Eu recomendaria este livro se você quiser saber mais sobre o processo geral sem se interessar muito por nenhuma arquitetura. Ele ainda oferece um sistema operacional em tempo real para você brincar.
A programação incorporada depende muito da arquitetura. Você normalmente trabalha com respostas sérias, tamanho do programa, recuperação de erros e restrições de custo. Por exemplo, você pode ter um z80 (processador de 8 bits, eles estão em toda parte) e talvez alguns kilobytes de memória para brincar. Você pode ter apenas uma ROM para informar ao sistema o que fazer e como configurar o programa. Também pode ter apenas alguns kilobytes de tamanho. Por que tão pouca memória? Bem, se você fabricar 15 milhões dos pequenos otários; cada centavo se torna $ 150.000.
Eu sugiro mexer com algo como Arduino ou Scribbler Robots, se você quiser aprender mais fazendo isso. No que diz respeito às línguas, C, C ++ e Assembly são o conjunto típico, embora o Java possa ser usado (e na verdade foi originalmente projetado para esse domínio, se você aguentar esse pensamento). Outros definitivamente poderiam ser usados também, eu sei Lisp e ML estão sendo implantados.
Aprenda o máximo que puder sobre arquitetura, porque, como eu disse, a alocação de memória e as operações bit a bit começam a ficar realmente importantes.
fonte
Definitivamente, existe um ângulo incorporado aqui. Mas hoje em dia você está vendo plataformas cada vez mais avançadas no que tradicionalmente seriam chamadas de dispositivos incorporados. Por exemplo, as TVs LG e Samsung agora possuem APIs e lojas de aplicativos. As TVs da Sony estarão executando o Android.
fonte
Eu vi dois caixas eletrônicos abertos em Denver, Colorado. Ambos eram (então) caixas eletrônicos do Compass Bank e ambos eram Windows XP no caso difícil. Eu perguntei ao técnico o que, especificamente, um deles rodava, e ele disse algo como "XP Embedded".
Então, aposto que a programação ATM é menos parecida com a programação incorporada atualmente e mais como o desenvolvimento padrão do Windows.
fonte
Esses tipos de dispositivos são programados usando programação incorporada . Este é um tipo de programação de nível muito baixo que lida fortemente com lógica e portas.
Se você estiver interessado em aprender programação prática, recomendo pesquisar no arduino .
fonte