Movatterモバイル変換


[0]ホーム

URL:


Saltar para o conteúdo
Wikipédia
Busca

Software embarcado

Origem: Wikipédia, a enciclopédia livre.
Este artigo ou secção deverá serfundido comSistema embarcado. (desde agosto de 2023)
Se discorda, discuta sobre a fusão napágina de discussão daquele artigo.

Software embarcado ousoftware incluído ésoftware de computador, escrito para controlar máquinas ou dispositivos que não são geralmente considerada como computadores. É, normalmente, específico para um determinado hardware que executa e tem tempo e com restrições de memória.[1] Este termo é às vezes usado de forma intercambiável como firmware, apesar de firmware também pode ser aplicado a ROM com o código em um computador, em cima do qual o sistema operacional é executado, considerando que o software embarcado é normalmente o único software do dispositivo em questão.

Uma precisa e estável característica é a de que nem todas as funções do software embarcado são iniciadas/controlado através de uma interface humana, mas através de interfaces de máquina em vez disso.[2]

Os fabricantes 'embutem' o software integrado no sistema eletrônico deveículos automóveis, telefones, modems,robôs, eletrodomésticos, brinquedos, sistemas de segurança,pacemakers, televisores e set-top boxes, e relógios digitais, por exemplo.[3] Este software pode ser muito simples, tais como controles de iluminação que rodam em ummicrocontrolador de8-bits  com poucoskilobytes de memória, com o nível adequado de complexidade de processamento determinada com um, Quadro de Probabilidade Aproximadamente Correta de Computação[4] (uma metodologia baseada emalgoritmos randomizados), ou pode tornar-se muito sofisticado em aplicações comoaviões,mísseis, e processo de controle de sistemas.[5]

Sistemas operacionais

[editar |editar código-fonte]

Ao contrário do padrão computadores, geralmente, utilizar um sistema operacional, como o OS X, Windows ou GNU/Linux, software embarcado pode usar nenhum sistema operacional, ou quando eles fazem uso uma grande variedade de sistemas operacionais pode ser escolhido, normalmente umsistema operacional de tempo real. Este é executado a partir de uma operação de uma só pessoa que consiste de um ciclo e um timer, para LynxOS,VxWorks, BeRTOS, ThreadX, paraWindows CE ouLinux (com o patch de kernel). Outros incluemo OpenWrt, PikeOS,eCos, Fusão RTOS, Núcleo RTOS,RTEMS, a INTEGRIDADE, a uC/OS,QNX,FreeBSD e OSE. Código normalmente é escrito emC ouC++, mas váriaslinguagens de programação alto nível, tais comoPython eJavaScript, são agora também no uso comum, para destinomicrocontroladores esistemas embarcados.[6]Ada é usado em alguns militares e de aviação projetos.

Diferenças na aplicação do software 

[editar |editar código-fonte]

A maioria dos consumidores está familiarizada com oaplicativo de software que fornece funcionalidade em um computador. No entanto, o software incorporado é geralmente menos visível, mas não menos complicado. Ao contrário do software aplicativo, o software incorporado possui requisitos e recursos de hardware fixos, e a adição de hardware ou software de terceiros é estritamente controlada.

Software embarcado deve incluir todos osdrivers de dispositivo no momento da fabricação, e os drivers de dispositivo são escritos para o hardware específico. O software é altamente dependente da CPU e o chip especificamente escolhido. Os engenheiros de software têm pelo menos uma passagem de conhecimento de leitura dediagramas esquemáticos, e a leitura de datasheet de dados dos componentes para determinar o uso dos registradores e do sistema de comunicação. Conversão entredecimal,hexadecimal ebinário é útil, bem como o uso de manipulação de bits.[7]

Aplicações Web são raramente usadas, apesar de arquivosXML e outros parâmetros que podem ser passados para um computador para visualização. Sistemas de arquivos com pastas estão geralmente ausentes, como são os bancos de dadosSQL.

O desenvolvimento de software requer o uso de umcompilador cruzado, que é executado em um computador, mas produz um código executável para o dispositivo de destino. A depuração exige a utilização de um in-circuitoemulador,JTAG ouSWD. Os desenvolvedores de Software têm muitas vezes acesso a todo o kernel (SO) de código fonte.

O tamanho da memória de armazenamento e memória RAM pode variar significativamente. Alguns sistemas são executados em 16 KB de Flash e 4 KB de RAM com um CPU rodando em 8 MHz, outros sistemas podem rivalizar com os computadores de hoje.[8] Estes requisitos de espaço levam mais trabalho para projetos sendo feito em C ouembedded C++, em vez de C++. Linguagens interpretadas como oBASIC (enquanto e.g. Paralaxe Hélice pode usar BASIC compilado) eJava (Java ME Embedded 8.3[9] está disponível para microcontroladoresARM Cortex-M4, Cortex-M7 e os mais antigosARM11 usado noRaspberry Pi e Intel Galileu Gn 2) normalmente não são utilizados; enquanto uma implementação da interpretado da linguagemPython 3 – MicroPython – é, no entanto, disponível expressamente para microcontrolador utilizar, e.g.32-bit ARM (como o BBCmicro:bit) e16-bitsmicrocontroladores PIC.

Protocolos de comunicação

[editar |editar código-fonte]

A comunicação entre processadores e entre um processador e de outros componentes são essenciais. Além dedireto endereçamento de memória, protocolos comuns incluemI2C,SPI,portas seriais eUSB.

Protocolos de comunicação projetado para o uso emsistemas embarcados estão disponíveis comocódigo fechado de empresas, incluindo a InterNiche Tecnologias e CMX Sistemas.Open-source protocolos tronco da uIP, lwip, e outros.

Bibliografia

[editar |editar código-fonte]
  1. Rodrigo M. A Almeida, Carlos Henrique Valério, Thatyana Faria Piola Seraphim,Programação de sistemas Embarcados, GEN LTC, 2016,ISBN 978-8535285185 (em português)
  2. Edward A. Lee, "Embedded Software", Advances in Computers (M. Zelkowitz, editor)56, Academic Press, London, 2002.
  3. Jack Ganssle,The Art of Programming Embedded Systems , Elsevier, 2012ISBN 0-080-49942-2 (em inglês)
  4. Michael Barr, Anthony Massa,Programming Embedded Systems: With C and GNU Development Tools , "O'Reilly Media, Inc.", 2006ISBN 0-596-55328-5 (em inglês)

Referências

[editar |editar código-fonte]
  1. «Stroustrup on C++ for embedded (bottom p.2)»(PDF). Consultado em 9 de dezembro de 2012 
  2. «I.C.S. on embedded software». Consultado em 22 de julho de 2013. Arquivado dooriginal em 22 de março de 2013 
  3. «Embedded Systems Methods and Technologies». Consultado em 9 de dezembro de 2012 
  4. Alippi, Cesare (2014),Intelligence for Embedded Systems,ISBN 978-3-319-05278-6, Springer .
  5. http://ptolemy.eecs.berkeley.edu/publications/papers/02/embsoft/embsoftwre.pdf
  6. Mazzei, Daniele; Montelisciani, Gabriele; Baldi, Giacomo; Fantoni, Gualtiero (2015).Changing the programming paradigm for the embedded in the IoT domain. Internet of Things (WF-IoT), 2015 IEEE 2nd World Forum on. Milan: IEEE. pp. 239–244.doi:10.1109/WF-IoT.2015.7389059 
  7. «Stroustrup on embedded software». Consultado em 9 de dezembro de 2012. Arquivado dooriginal em 3 de fevereiro de 2013 
  8. «Example of embedded CPU». Consultado em 9 de dezembro de 2012 
  9. «Java ME Embedded».Oracle Technology Network 

Veja também

[editar |editar código-fonte]
Obtida de "https://pt.wikipedia.org/w/index.php?title=Software_embarcado&oldid=66470409"
Categorias:
Categorias ocultas:

[8]ページ先頭

©2009-2025 Movatter.jp