Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial Internet of Things >> Integrado

Por que um desenvolvedor bare-metal mudou para sistemas operacionais

Olhando para trás, na 'Era do Metal Nu'

A primeira vez que soube do software embarcado foi por volta de 2008, eu estava no segundo ano e comecei a aprender sobre programação em um chip 51. Desde que me formei em ciência da computação, a maioria dos meus programas era executada no PC. Foi uma experiência completamente diferente ver programas rodando em uma placa de metal, e ainda me lembro da empolgação quando meu primeiro programa de lâmpadas de ciclismo foi executado com sucesso. No entanto, quanto mais programas bare-metal eu escrevia, mais problemas encontrava. Eu os sumarizo da seguinte forma:

Simultaneidade

Para programas bare-metal, há inevitavelmente um enorme loop ‘while (1)’, que contém quase toda a lógica de transação de todo o projeto. Cada transação invoca uma ou mais funções de atraso e são executadas em série quando a CPU está executando uma função de atraso, o resto das transações têm que esperar. Dessa forma, muito do tempo da CPU é desperdiçado em loops vazios, o que causa uma concorrência muito baixa.

Modularidade

Do ponto de vista do projeto de software, o princípio da alta coesão e baixo acoplamento é sempre enfatizado durante o processo de desenvolvimento. No entanto, os módulos em um software bare-metal geralmente dependem muito uns dos outros, não é conveniente projetar software com baixo acoplamento, o que torna difícil desenvolver grandes projetos em placas bare-metal. Por exemplo:


Ecossistema

Muitos componentes de software avançados devem depender da implementação do sistema operacional de nível inferior. Por exemplo:

Tempo real

A capacidade em tempo real é necessária para alguns campos do aplicativo. Nessa situação, algumas etapas críticas do software devem ser acionadas em um momento específico. Para o controle da indústria, os dispositivos mecânicos devem concluir as ações em uma ordem e tempo predeterminados. Se a capacidade em tempo real não puder ser garantida, isso causará mau funcionamento, que pode colocar em risco a vida dos trabalhadores. Em plataformas bare-metal, quando todas as funções estão presas em um grande loop ‘while (1)’, é impossível manter as capacidades em tempo real.

Reutilização

A reutilização depende da modularidade diretamente. Acredito que ninguém gostaria de fazer o mesmo trabalho repetidamente, especialmente ao escrever código. Mas em várias plataformas de hardware com chips diferentes, a mesma função deve ser adaptada a hardware diferente, cujas implementações dependem muito do hardware de baixo nível. É inevitável reconstruir rodas.

A vantagem dos sistemas operacionais

Foi por volta de 2010 quando usei o sistema operacional pela primeira vez. A série de MCUs STM32 estava começando a se tornar popular. Com recursos poderosos, muitas pessoas executavam sistemas operacionais neles. Na época, eu estava usando o sistema operacional RT-Thread, para o qual existem muitos componentes prontos para usar. Em comparação com outros sistemas operacionais, me sinto mais confortável e desenvolvo nele há 10 anos.

Com base no meu entendimento, gostaria de discutir as vantagens dos sistemas operacionais:

Modularidade

Com o sistema operacional, todo o software pode ser dividido em várias tarefas (conhecidas como threads), cada thread tem seu próprio espaço de execução independente. Eles são independentes um do outro, o que melhora a modularidade.

Simultaneidade

Quando um encadeamento invoca a função de atraso, ele automaticamente cede a CPU para outros encadeamentos necessários, o que melhora a utilização de toda a CPU e, por fim, a simultaneidade.

Tempo real

Um RTOS é projetado com recursos em tempo real. Cada thread é atribuída a uma prioridade especificada. Os threads mais importantes são configurados para uma prioridade mais alta, os threads menos importantes são configurados para os inferiores. Desta forma, o desempenho em tempo real de todo o software é garantido.

Eficiência de desenvolvimento

O sistema operacional fornece uma camada unificada de interfaces abstratas, o que facilita o acúmulo de componentes reutilizáveis ​​e melhora a eficiência do desenvolvimento.

O sistema operacional é um produto da sabedoria de um grupo de geeks de software. Muitas funções de software comuns, como semáforo, notificação de evento, caixa de correio, buffer de anel, lista de cadeia unilateral / lista bidirecional e assim por diante, são encapsuladas e abstraídas para tornar essas funções prontas para uso.

Sistemas operacionais como Linux e RT-Thread implementam um conjunto padrão de interfaces de hardware para hardware fragmentado, conhecido como estrutura de driver de dispositivo. Portanto, os engenheiros de software precisam apenas se concentrar no desenvolvimento e não precisam mais se preocupar com o hardware subjacente ou reconstruir as rodas.

Ecossistema de software

A riqueza do ecossistema traz o processo de mudanças quantitativas para qualitativas.

A melhoria da modularidade e capacidade de reutilização com sistemas operacionais nos permite encapsular componentes reutilizáveis ​​incorporados e baseados em sistema operacional, que não só podem ser usados ​​em nossos projetos, mas também podem ser compartilhados com mais desenvolvedores incorporados em necessidade, maximizando o valor do Programas.

Eu sou um geek de código aberto e abri alguns softwares incorporados no GitHub. Antes de criar software de código aberto, raramente conversava com outras pessoas sobre meus projetos porque considerava que, como as pessoas usam chips ou plataformas de hardware diferentes, meu código dificilmente poderia ser executado em seu hardware. Com os sistemas operacionais, a capacidade de reutilização do software é muito melhorada, muitos especialistas podem se comunicar uns com os outros sobre o mesmo projeto. Eles são até de países diferentes. Isso está encorajando mais e mais pessoas a compartilhar e falar sobre seus projetos.

Integrado

  1. Sistemas de numeração
  2. Sistemas de sinais atuais
  3. Rastreamento de contato na indústria:Por que precisamos de sistemas de posicionamento local baseados em Wi-Fi ultraprecisos
  4. Por que ainda estamos tolerando o tempo de inatividade devido à falta de energia?
  5. Por que a segurança cibernética é essencial para a tranquilidade da segurança física
  6. 3 razões pelas quais um sistema de transporte pneumático é superior
  7. Por que I.T. Os sistemas são essenciais para a evolução da cadeia de suprimentos global
  8. Por que as cadeias de suprimentos da indústria farmacêutica devem se tornar digitais:seis perguntas a serem consideradas
  9. Procedimentos de operação segura para sistemas de ar comprimido
  10. Por que a rastreabilidade é uma base essencial para sistemas de manufatura habilitados para IIoT