Home
Um estudo exploratório sobre sistemas
Contents
1. PORTB 0 PORTC 0 PORTD 0 PORTE 0 Relat Inic Cient Um estudo explorat rio sobre sistemas operacionais embarcados Esse conjunto de comandos faz com que os ports do microcontrolador emitam sinal de baixa frequ ncia efetivamente hibernando os e impedindo os displays de sete segmentos do tipo c todos conectados de emitir qualquer informa o Por m devido a natureza das configura es dos pinos que recebem dados esses n o s o hibernados e continuam funcionando normalmente A fun o principal e essencial do programa Devido s mudan as no estilo de programa o desde o ltimo experimento nesse programa ela majoritariamente invoca as outras fun es int inttemp10 centena ligado 0 declara o de vari veis Declara es de vari veis para manipula o das fun es A primeira vari vel usada para guardar o valor da temperatura multiplicado por 10 para fins de c lculos e compara es a segunda vari vel usada para calcular e manipular a centena dos valores de temperatura recebidos j que esse necessitou um tratamento especial devido ao limite de pinos do microcontrolador e a terceira vari vel usada para verificar e dizer se os ports est o hibernando ou n o o programa come a com os ports hibernando TRISA 0 PORTA 0 inicia e configura os ports do microcontrolador TRISB 0 PORTB 0 TRISC 0 PORTC 0 TRISD 0 PORTD 0 TRISE 0 PORTE 0 Esse conj
2. calcula centenas else centena 1 Esse comando calcula o valor necess rio para demonstrar a centena no display de sete segmentos do tipo c todo j que devido ao limite de temperatura que o sensor de temperatura aquenta e a necessidade de compartilhar pinos no port A devido ao limite de pinos no microcontrolador foi necess rio um tratamento especial PORTA centena tempbaixa inttemp10 10 10 4 verifica se a temperatura est baixa Como compartilha pinos com o display de centenas e alterar apenas um pino envolve o port inteiro ajustes foram necess rios Devido ao LED que representa se a temperatura est muito baixa estar ligado ao port que requer tratamento especial foi necess rio um calculo para que n o houvesse conflito Esse c digo n o somente demonstra o valor certo da centena da temperatura como tamb m liga o LED se a temperatura estiver abaixo de 10 C PORTE RE2 tempalta inttemp10 10 60 verifica se a temperatura est alta Essa chamada de fun o em um pino em um pino do port E deve ligar o LED de temperatura alta se a temperatura estiver acima de 60 C Essa chamada de fun o em um pino do port B deve converter o algarismo de dezena da temperatura e demonstrar no display de sete segmentos apropriado PORTC disp7seg inttemp10 100 10 128 calcula unidades Essa chamada de fun o em um pino do port C deve converter o algarismo de unidade da temperatura e demonstrar no display d
3. digo source n o compilado e pode ser integrado facilmente na maioria dos compiladores usando seus arquivos como bibliotecas atrav s do comando include Isso permite uso de partes espec ficas do FreeRTOS economizando poder de processamento Permite tamb m modifica o dos arquivos do FreeRTOS para atender as necessidades de um sistema embarcado espec fico As fun es do FreeRTOS podem ser classificadas por seu tipo de retorno j que possuem um prefixo de uma ou mais letras que especificam o tipo de retorno da fun o como o prefixo v que significa void e que significa que a fun o n o retorna nada para a fun o que a invocou Para se aproveitar da maioria das caracter sticas e at fazer uso de v rias fun es do FreeRTOS necess rio o uso de tarefas tamb m conhecidas como tasks uma das fun es fundamentais para o entendimento e uso do FreeRTOS BARRY 2010 4 3 1 Tarefas No FreeRTOS as tarefas ou tasks s o implementadas como fun es e cada uma basicamente um pequeno programa de loop execu o infinito e sem sa da Elas n o devem n o devem ter um retorno return e n o devem executar al m do fim da fun o Se uma task n o for mais necess ria deve ser prontamente exclu da Uma task por outro lado pode ser usada para criar um n mero indefinido de outras desde que tenham nomes diferentes Cada task seja ela criada diretamente ou seja ela criada por outra possui sua pr pria pilha e su
4. 1 1 3 Bot es Os bot es servem de base para passar sinais atrav s de um circuito apenas quando pressionados Podem ser usados junto a um microcontrolador que detecte altera es em uma corrente para criar efeitos mais duradores como desligar certos aparelhos sem desligar o sistema inteiro ou podem ser usados para Iniciar rea es que um usu rio queira que aconte a apenas quando os bot es estejam pressionados 4 1 1 4 Interruptores Tamb m conhecidos como switchs os interruptores s o parecidos com os bot es por m por ser um componente que muda de estado ap s pressionado o sinal torna se cont nuo e o interruptor necessita ser pressionado novamente para que volte ao estado anterior e interrompa o fornecimento do sinal Por fornecer sinal continuamente geralmente usado diretamente com l mpadas mas pode ser usado tamb m com microcontroladores que estejam configurados para detectar o estado de um sinal 4 1 1 5 Portas L gicas Um componente emissor de sinal digital que pode ser facilmente ligado e desligado como um interruptor Como o sinal j est em formato digital isso facilita o uso de componentes que possuem pinos ou ports que l em informa es digitais como microcontroladores 4 1 1 6 L mpadas e LEDs L mpadas e LEDs Diodo Emissor de Luz do ingl s Light Emmiting Diode s o componentes que emitem luz quando uma corrente el trica suficientemente forte passa por eles Geralmente usados para ilumina o ou sinal
5. UNTITLED ISIS Professional JD x File view Edit Tools Design Graph Source Debug Library Template System Help t JOA Le impjijnj m o No Messages Root sheet 1 451000 27000 th Os componentes necessitam ser adicionados ao projeto e podem ser ligados atrav s de circuitos por m cada componente possui atributos espec ficos e por isso n o podem ser descritos de forma generalizada Relat Inic Cient Um estudo explorat rio sobre sistemas operacionais embarcados 4 1 1 1 Energia Al m de fornecer pilhas baterias motores e outras formas de energia o ISIS fornece tamb m for a e aterramento el tricos padr es denominados apropriadamente de power e ground Por serem frequentemente usados e por n o serem dispositivos propriamente ditos estes se localizam separados dos componentes do projeto e sempre est o dispon veis H ainda inputs e outputs que servem para transfer ncia direta de sinal quando possuem o mesmo nome 4 1 1 2 Resistores Os resistores s o extremamente importantes para qualquer projeto pois impedem que dispositivos f sicos sejam queimados ou danificados por uma corrente el trica de tens o muito alta Isso evidenciado no ISIS pois se uma tens o muito forte ou muito fraca passa por um componente especialmente se o componente em quest o for um microcontrolador esse componente n o funcionar devidamente E poss vel configurar a resist ncia de cada resistor 4
6. de entrada e sa da de dados al m de assegurar que as requisi es de v rios programas ou mesmo de v rios usu rios para um mesmo recurso sejam feitas de maneira segura e sem interfer ncias TANENBAUM 20083 2 3 Hardware de Computadores Um sistema operacional est intimamente ligado e precisa ter um grande conhecimento sobre o hardware do computador no qual executado j que estende o conjunto de instru es do computador e gerencia seus recursos Conceitualmente um computador pessoal simples pode ser abstra do para um modelo semelhante ao da Figura 1 onde a CPU Unidade de Processamento Central do ingl s Central Processing Unit a mem ria e os dispositivos de entrada e sa da de dados est o ligados por um barramento o qual proporciona a comunica o entre eles Computadores mais modernos por m podem possuir m ltiplos barramentos TANENBAUM 2003 Figura 1 Computador Pessoal Simples Montor Unidade de Unidade de EN Teclado disco flexivel disco rigido na pn CPU T PATER Controlador AnA e pd o o da ESZA f ooo Controlador Controlador de disco de disco Controlador de teclado de video flexivel rigido Barramento Fonte TANENBAUM 2003 2 3 1 Processadores O processador o componente principal do computador ele possui uma ou mais CPUs que s o respons veis por buscar instru es na mem ria e as executarem O ciclo b sico para isso e Buscar instru o na mem
7. devicedoc 51519a pdf MILINKOVIC S Porting FreeRTOS to mikroC for STM32 M3 Dispon vel em lt http www libstock com projecis view 3 0 porting freerios to mikroc for stm32 m3 gt Acesso em 15 nov 2012 MIKROELETRONIKA MikroC user s manual Manual T cnico Digital 2006 Dispon vel em http www mikroe com pdf mikroC mikroC manual pdf OPEN WATCOM COMMUNITY SYBASE Open Watcom 1 9 C C getting started help Se o Introduction to Open Watcom C C Manual de Software 2010 Dispon vel em instala o do Open Waicom 1 9 TANENBAUM A S Sistemas operacionais modernos 2 ed S o Paulo Livro T cnico Prentice Hall 2003 Leituras Complementares CARRO L WAGNER F R Metodologias e t cnicas de engenharia de software para sistemas embarcados Jornadas de Atualiza o em Inform tica da SBC 2008 LABCENTER ELETR NICS Proteus Design Su te Product Guide Guia Online Dispon vel em http downloads labcenter co uk proteus brochure pdf TAURION C Software embarcado a nova onda da inform tica Rio de Janeiro Livro T cnico Brasport 2005 ANTI ESSAYS Mobile Os History Essay Dispon vel em lt http www antiessays com free essays 189371 html gt Acesso em 26 out 2012 BRAIN M How microcontrollers work Dispon vel em lt http www howstuffworks com microcontroller htm gt Acesso em 26 out 2012 BURNSIDE K The History of Embedded Systems Dispon vel em lt http www ehow com info 12030
8. devido aos v rios benef cios que ela traz quando seus desafios e dificuldades s o conquistados e Sistemas tradicionais diferem consideravelmente de sistemas embarcados mas necess rio estudar o primeiro para que se possa estudar corretamente o segundo O mesmo pode ser dito entre sistemas operacionais tradicionais e sistemas operacionais embarcados e 103 Relat Inic Cient Um estudo explorat rio sobre sistemas operacionais embarcados e Os sistemas operacionais embarcados apesar de teis trazem ainda mais desafios para seu uso 104 correto mas n o deixam de ser essenciais em projetos muito complexos REFER NCIAS BARRY R Using the FreeRTOS M Real Time Kernel A Practical Guide Manual t cnico digital Vers o 1 3 2 Real Time Engineers Ltd 2010 Dispon vel em http www freertos org Documentation FreeRTOS documentation andbook html CARRO L WAGNER F R Sistemas computacionais embarcados Jornadas de Atualiza o em Inform tica da SBC 2008 FRIEDRICH L F A Survey of operating systems infrastructure for embedded systems Relat rio T cnico Faculdade de Ci ncias da Universidade de Lisboa Lisboa 2009 KONANA P RAY G Physical product reengineering with embedded information technology Artigo T cnico Revista Communications of the ACM vol 50 n 10 Outubro 2007 MICROCHIP TECHNOLOGY MPLABO IDE user s Guide Manual t cnico digital 2005 Dispon vel em http ww1 microchip com downloads en
9. embarcados usados atualmente no mercado 3 1 Caracter sticas Um sistema embarcado um sistema computacional fisicamente limitado geralmente com restri es de mem ria tamanho energia e consecutivamente pot ncia que possui um n mero limitado mas espec fico de fun es Geralmente est associado ou mesmo embutido em outro produto como um eletrodom stico ou um ve culo Muitas vezes possuem caracter sticas de sistemas de tempo real como alta velocidade de envio tratamento e recebimento de dados TANENBAUM 2003 Outras restri es importantes s o o custo e o baixo tempo de projeto Por m mesmo com todas essas restri es o desempenho final n o pode ser comprometido Devido aos baixos custos tecnol gicos atuais eles podem ser encontrados em produtos das atividades cotidianas e a tend ncia que cada vez mais eles entrem no cotidiano das pessoas O projeto desse tipo de sistema extremamente complexo por envolver conceitos pouco analisados pela computa o de prop sitos gerais Ao projetar um sistema ou programa embarcado as principais preocupa es s o devido aos limites f sicos com portabilidade baixo limite de potencia baixa disponibilidade de energia baixa disponibilidade de mem ria necessidade de seguran a confiabilidade a possibilidade de funcionamento em uma rede maior e o curto espa o de tempo de projeto Um projeto de software embarcado pode ser muito caro caso ele tenha grande complexidade po
10. heap_1 c include partest h B integer c finclude serial h A B list c The period between executions of the check task before and after an error Bi maini c has been discovered If an error has been discovered the check task runs i JE ParTest c more frequently increasing the LED flash rate i B PollQ c fdefine mainNO ERROR CHECK PERIOD i i portTickType 1000 portTICK RATE MS j Bj port c fdefine mainERROR CHECK PERIOD i i portTickType 100 portTICK RATE MS queue c Priority definitions for some of the tasks Other tasks just use the idle JEI seriale priority fdeftine mainQUEUE POLL PRIORITY t SKIDLE PRIORITY Z 5 Build Version Control Find in Files o To Prism To mo hovadec o bako MR Relat Inic Cient Um estudo explorat rio sobre sistemas operacionais embarcados 5 EXPERIMENTOS No decorrer do projeto foram propostos alguns experimentos cada um com uma finalidade espec fica A descri o de cada um assim como seus resultados podem ser encontrados nas se es a seguir As partes em cinza nos quadros n o fazem parte do programa propriamente dito mas explicam os c digos acima delas com mais detalhes do que os coment rios dentro dos programas 5 1 Desenvolvimento Gradual de um Sistema Embarcado Durante o segundo experimento foram usados o Proteus 7 4 SP3 Build 6792 e MikroC 8 1 0 0 A proposta deste experimento foi desenvolver um sistema embarcado para ler a temperatura infor
11. ria Decodificar a instru o para determinar seus operandos e qual opera o executar Executar a instru o Prosseguir com as instru es subsequentes assim que os programas s o executados em um computador Cada CPU possui um conjunto espec fico de instru es que consegue executar e por isso que alguns computadores n o conseguem executar certos programas Al m disso como o tempo de acesso mem ria para buscar instru es ou operandos menor do que o tempo para execut las as CPUs possuem registradores internos para armazenamento de vari veis importantes e para armazenamento de resultados tempor rios Al m desses registradores de prop sito geral h tamb m os registradores especiais que s o importantes e vis veis aos programadores Entre eles temos o contador de programa que cont m o endere o de mem ria da pr xima instru o a buscar o ponteiro de pilha o qual aponta para o topo da pilha atual de mem ria As pilhas cont m estruturas para cada procedimento chamado mas que ainda n o encerrou Uma estrutura de pilha cont m par metros de entrada e as vari veis locais e tempor rias que n o s o mantidas nos registradores e a PSW Palavra de Estado do Programa do ingl s Program Status Word que cont m os bits do c digo de condi es os quais podem ser alterados por instru es de compara es pelo n vel de prioridade da CPU e por v rios outros bits de controle Quando um sistema operacional
12. 725 history embedded systems himl gt Acesso em 30 out 2012 LABSPACE Computers bits amp bytes Se o 4 2 Dispon vel em lt http labspace open ac uk mod oucontent view php id 426285 amp section 1 4 2 gt Acesso em 25 out 2012 LAKATOS E M MARCONI M de A T cnicas de pesquisa S o Paulo Atlas 1996 MIKROELETRONIKA Creating the first project in mikroC PRO for ARM Dispon vel em lt http www mikroe com downloads get 1767 ctfo mikroc pro for arm pdf gt Acesso em 15 nov 2012 NATURAL INSTITUTE OF STANDARDS TECHNOLOGY Pervasive Computing Program Dispon vel em lt http www ltl nist gov pervasivecomputing himl gt Acesso em 30 out 2012 Relat Inic Cient Um estudo explorat rio sobre sistemas operacionais embarcados SIFAKIS J A Brief History of Informatics and Embedded Systems Dispon vel em lt htitp www embedded systems portal com CTB History 8 html gt Acesso em 5 jun 2012 TYSON J How Video Game Systems Work Dispon vel em lt http electronics nowstuffworks com video gameS him gt Acesso em 26 out 2012 WEBOPEDIA Mobile Operating System Dispon vel em lt http www webopedia com TERM M mobile operating system himl gt Acesso em 26 out 2012 o o o o o oe o To or or e o or o o o or or TT ur o o oo o oo o o o Thomas Tadeu Gallassi Graduando como Bacharel em An lise de Sistemas e Tecnologia da Informa o na Faculdade de Tecnologia de Americana tendo realizado uma i
13. F tempalt gt valoralt return 1 temperatura acima do limite else return 0 temperatura abaixo do limite Esse comando condicional est verificando se a temperatura atual informada ultrapassou ou n o o limite informado retornando um valor de sinaliza o que deve ser interpretado pelo programa int tempbaixa int tempabx int valorabx fun o usada para comparar a temperatura atual e a temperatura inferior de alerta Outra fun o que recebe dois valores num ricos do tipo inteiro e retorna um valor num rico do tipo inteiro Similar a anterior essa fun o foi feita com o objetivo de comparar se a temperatura ultrapassou um limite definido por m essa fun o verifica o limite de temperatura m nima F tempabx lt valorabx return 1 temperatura acima do limite inferior else return 0 temperatura abaixo do limite inferior Esse comando condicional est verificando se a temperatura atual informada inferior ou n o ao limite informado retornando um valor de sinaliza o que deve ser interpretado pelo programa void desligar fun o para desligar hibernar os ports Essa uma fun o apenas de a o ela n o recebe e nem retorna nenhum valor para a fun o que a invocou Ela foi feita para desligar ou hibernar os ports do microcontrolador mas n o o microcontrolador em si PORTA 0 todas os ports usadas s o hibernados funcionando apenas os pinos de entrada de dados 79 10 10 12
14. Relat Inic Cient Um estudo explorat rio sobre sistemas operacionais embarcados UM ESTUDO EXPLORAT RIO SOBRE SISTEMAS OPERACIONAIS EMBARCADOS Thomas Tadeu Gallassi Prof Luiz Eduardo Galv o Martins Coautor RESUMO Nos ltimos anos t m crescido muito o volume de software desenvolvido para sistemas embarcados Com a diminui o do custo dos processadores de 32 bits muitas aplica es embarcadas come aram a utilizar este tipo de processador o que possibilitou o Desenvolvimento de software mais complexo e sofisticado Com os processadores de 32 bits o uso de sistemas operacionais embarcados se tornou uma realidade principalmente a partir dos sistemas operacionais padronizados para aplica es embarcadas Este artigo aborda uma investiga o explorat ria sobre sistemas operacionais embarcados englobando um estudo sobre as principais caracter sticas dos sistemas operacionais embarcados uma pesquisa de mercado identificando os sistemas mais utilizados descri o das caracter sticas dos sistemas mais populares um comparativo entre eles e pequenos experimentos explorando a utiliza o de um desses sistemas operacionais em uma aplica o de sistema embarcado Palavras chave Sistema Embarcado Sistema Operacional Microcontrolador ABSTRACT On recent years the volume of software developed for embedded systems has greatly increased With the costs decreasing of 32 bits processors many embedded applications started to util
15. S com alguns dos componentes citados 92 Relat Inic Cient Um estudo explorat rio sobre sistemas operacionais embarcados Figura 9 Exemplos de Dispositivos no Isis 93 Eos CO YVYVVVVVVO ye l Saa aeey alaaa ia ae aa ae a aae Dia a SRD DRE eae DARA ES AE Sa eA AE A RT AS OREG E e aa SA E 4 2 MikroC Desenvolvido pela MikroEletronika o mikroC um compilador de linguagem C para microcontroladores da fam lia PIC uma s rie de microcontroladores projetados pela Microchip Technology O MikroC foi desenvolvido visando fornecer uma interface simplificada sem comprometer desempenho e controle das aplica es Ele possui suporte a bibliotecas de C e tamb m de compila o para arquivos HEX que podem ser usados pelos microcontroladores do Proteus Para que se possa compilar algo necess rio criar um projeto e definir qual o microcontrolador usado e definir sua frequ ncia e suas vari veis de sinaliza o flags J para que uma aplica o funcione adequadamente necess rio iniciar os ports do microcontrolador que ser o usadas para entrada e sa da de dados MIKROELETRONIKA 2006 A Figura 10 exemplifica uma tela de projeto do MikroC Figura 10 Tela de Projeto do MikroC imix File Edit view Project Debugger Run Tools Help ALEL esiba seelgsam B R moa egu S O x EEG x CalcularTemp c ode Explorer QHelp Keyboard 1 int ligdeslig int estadoanterior fun o para checar bot es
16. SP1 REBDANTO RD2 PSP2 RB1TANTA RD3PSP3 T A Ru EA msm RB3 CCP2B RDSPSPS RBS RDB PSPS RD7PSP7 REORD AN5S RE1AARIANG Rezicstang IO 5 2 1 C digo de Leitura de Sensores de Temperatura sem SO O Quadro 2 apresenta o c digo do programa sem sistema operacional embarcado desenvolvido no MikroC durante esse experimento Foram usadas apenas duas fun es al m da fun o principal uma fun o para facilitar a coleta e a convers o dos dados dos sensores de temperatura e outra fun o para imprimir textos nos displays de LCD cabendo fun o principal fazer a convers o de valores num ricos para textos Quadro 2 C digo para dois displays de LCD int calctemp int port fun o para capturar temperatura Uma fun o que deve receber um valor num rico do tipo inteiro e retornar outro valor num rico do tipo inteiro Ela serve para capturar e converter para o formato digital um valor que est sendo enviado para um pino anal gico de um microcontrolador Para tanto essa fun o deve receber um valor que representa o pino que deve ser verificado Essa fun o foi constru da com o objetivo de verificar os dados emitidos por um sensor de temperatura return int 5 Adc read port 100 1024 0 5 Esse comando usa uma f rmula para converter um valor anal gico nesse caso recebido do sensor de temperatura para o formato digital e retorna o valor para a fun o void printicd char text fun o
17. a o a condicional 1 o que significa verdadeiro e deixa o programa com uma condicional sempre verdadeira criando o loop infinito recomendado para programas embarcados IntToStr calctemp 0 temp0 transforma um valor num rico em um valor de texto IntToStr calctemp 1 temp Cada um desses comandos serve para converter um valor num rico do tipo inteiro contido em seu primeiro par metro em um valor de texto que transferido para o segundo par metro que por sua vez necessita ser uma vari vel E importante notar que o primeiro par metro usado em ambos os comandos foi uma fun o o que significa que essa fun o ser invocada e seu retorno desde que seja v lido ser convertido LCD Init amp PORTB reinicia o LCD do port B Esse comando reinicia e ativa o display de LCD conectado ao port B desligando o conectado ao port D printlcd tempoO imprime o conte do da vari vel no LCD m p a a a a 17 J x a Esse comando invoca a fun o para escrever um texto no display de LCD ativo enviando o valor guardado na primeira vari vel de texto LCD Init amp PORTD reinicia o LCD do port D desabilitando o do port B Esse comando reinicia e ativa o display de LCD conectado ao port D desligando o conectado ao port B printlcd temp1 imprime o conte do da vari vel no LCD Esse comando invoca a fun o para escrever um texto no display de LCD ativo enviando o
18. a pr pria c pia de vari veis definidas Outra caracter stica das tasks que elas possuem dois estados executando quando um dos n cleos est executando seu c digo e n o executando quando est pronta por m esperando para ser executada O modo de troca de tasks no n cleo feito de modo que as informa es e vari veis s o salvas quando uma task interrompida e carregada quando chega sua vez de execu o No FreeRTOS para que as tasks entrem no processo de execu o e espera no microcontrolador necess rio usar a entidade scheduler uma entidade respons vel por gerenciar esse processo Tasks s o criadas usando a fun o de API FreeRTOSxTaskCreate Essa fun o provavelmente a mais complexa de todas as fun es de API do FreeRTOS mas tamb m o componente fundamental de todos para sistemas de multitarefas que usam o FreeRTOS e por isso o primeiro a ser estudado no manual de refer ncias Seus par metros s o os seguintes 1 Nome da fun o de loop infinito que ser a task 2 Nome descritivo da fun o para fins de depura o do c digo 3 Tamanho da pilha em palavras O valor real da pilha calculado a partir desse valor e da largura de pilhas outro valor configurado separadamente que define o tamanho das palavras 4 Par metros que devem ser passados para a task quando ela for criada usar NULL se nenhum valor for necess rio 5 Prioridade da task quanto menor o valor maior a priorid
19. a embarcado desenvolvido gradualmente int ligdeslig int estadoanterior fun o para checar bot es de ligar e desligar Uma fun o que deve receber um valor num rico do tipo inteiro e retornar outro valor num rico do tipo inteiro Ela foi feita com a inten o de checar se um entre dois bot es definidos foi ou est pressionado retornando um valor de sinaliza o usado pela fun o principal do programa para ligar ou desligar os ports do microcontrolador O valor recebido por essa fun o o valor de sinaliza o que representa o estado atual dos ports e retornado caso nenhum bot o tenha sido pressionado Isto feito para evitar e facilitar a manipula o dos ports F Button amp PORTB 7 2000 0 return 1 um modo de checar o estado de bot es Esse comando verifica se o primeiro bot o conectado no s timo pino do port B est ou foi pressionado retornando um valor usado para sinaliza o Na fun o principal o valor retornado verificado e usado para ligar os ports desligados do microcontrolador F Button amp PORTD 7 2000 0 return 0 96 Relat Inic Cient Um estudo explorat rio sobre sistemas operacionais embarcados Esse comando verifica se o segundo bot o conectado no s timo pino do port D est ou foi pressionado retornando um valor usado para sinaliza o Na fun o principal o valor etornado verificado e usado para desligar os ports ligados do microcontrolad
20. adas para adicionar suporte a diversos microcontroladores incluindo este A Figura 15 apresenta o projeto implementado independente de compilador ou de microcontrolador mas vale lembrar que podem haver restri es dependendo da configura o de cada pino para cada microcontrolador Figura 15 Projeto de LEDs Piscantes O Quadro 3 demonstra o c digo para este projeto em um microcontrolador da fam lia PIC sem a utiliza o de um sistema operacional embarcado Quadro 3 LEDs Piscantes sem Sistema Operacional Embarcado void main A fun o principal e essencial do programa PORTA 0 TRISA 0 PORTB 0 TRISB 0 PORTC 0 TRISC 0 PORTD 0 TRISD 0 PORTE 0 TRISE 0 Este conjunto de vari veis serve para configurar os ports do microcontrolador definindo o estado inicial e as permiss es de recebimento e envio de dados para cada port Neste caso os ports A B C D e E s o configurados para envio e recebimento de dados Tamb m inicia todos os ports em 0 o que significa que todos os pinos estar o desligados e consecutivamente os LEDs O comando while um comando de retorno condicional ou seja o programa ou fun o retorna quando determinada condi o atingida e prossegue com o programa ou fun o caso n o seja atingida Nessa situa o a condicional 1 o que significa verdadeiro e deixa o programa com uma condicional sempre verdadeira cria
21. ade 6 Nome de um manuseador para que a task possa ser alterada por outras tasks e vice versa Se uma task for criada com sucesso ela retornar uma mensagem durante a execu o do c digo e outra mensagem caso contr rio BARRY 2010 E importante notar que as tasks funcionam como threads pois apesar de trabalharem em conjunto para um aplicativo e compartilhar informa es entre si elas concorrem para usar os n cleos de um microcontrolador usando sua prioridade para obter vantagem nessa competi o Al m disso elas possuem estados algo comum entre processos e threads 4 4 Open Watcom O Open Watcom o sucessor de c digo aberto dos conjuntos de compiladores e ferramentas de desenvolvimento comercializados pela Sybase Powersofte WATCOM International Corp OPEN WATCOM COMMUNITY 2010 Ele desenvolvido por uma comunidade e est licenciado sob licen a p blica pela Sybase 94 Relat Inic Cient Um estudo explorat rio sobre sistemas operacionais embarcados uma ferramenta til para executar os exemplos do FreeRTOS que v m juntos ao manual de refer ncia til em especial para entender o funcionamento de tasks no FreeRTOS BARRY 2010 95 Infelizmente o Open Watcom n o possui compatibilidade com o Proteus A Figura 11 demonstra uma tela de projeto do Open Watcom Figura 11 Tela de Projeto do Open Watcom 7 Open Watcom IDE C Examples Example001 rtosdemo wpj File Actions Targets Sources Options Log windo
22. ado adotando se padr es para a arquitetura e desenvolvimento CARRO 2003 O projeto de um sistema embarcado consiste ent o em encontrar um derivativo da plataforma que atenda aos requisitos da aplica o Partindo se de uma especifica o de alto n vel da aplica o faz se uma explora o das solu es arquiteturais poss veis estimando o impacto dos particionamentos de fun es Ap s isso necess ria a s ntese da estrutura de comunica o que integrar os componentes e o hardware Tamb m vital implementar uma metodologia de testes para o sistema Nesse modelo de projeto as inova es dependem mais do software do que do hardware j que o ltimo est automatizado Como a automa o do projeto de hardware j foi alcan ado pelas empresas o mercado no momento visa o mesmo para o projeto de software Aprofundando nos componentes de um sistema embarcado o uso de mem ria deve ser calculado pois mem rias r pidas ou grandes consomem mais energia por m n o permitem expans es ent o sua capacidade de reuso e o tamanho tamb m s o importantes especialmente se houver atualiza es planejadas H duas solu es para o reuso descarte dos dados usados como em um computador comum e um buffer circular que volta para o come o da mem ria quando o final encher s necess rio tomar cuidado para a mem ria n o preencher instru es ainda n o resolvidas Quando um buffer ultrapassa seu limite e perde dados chamamos
23. ais o sistema apenas um grande programa composto de v rias partes com habilidades especiais QNX Neutrino 2001 foi portado para v rias plataformas e funciona em praticamente todos os processadores modernos usados no mercado embarcado O QNX tamb m suporta agendamento com 256 n veis de prioridades O Windows CE um sistema operacional embarcado desenvolvido no final da d cada de 90 pela Microsoft Ele modular port vel e de tempo real especialmente projetado para aparelhos com mem rias pequenas H tr s principais plataformas de desenvolvimento Windows M bile SmartPhone e Portable Media Center que permitem o uso de ferramentas ricas em recursos Windows CE suporta at 32 processadores ativos com m ltiplas linhas de execu o em cada processo Tamb m suporta agendamento com 256 n veis de prioridades e possui primitivas de sincroniza o sem foros e eventos Outros sistemas operacionais embarcados escolheram uma orienta o por componentes para configura o de aplica es espec ficas como o elo Sistema operacional Embarcado Configurado do ingl s Embedded Configurable Operating System e o icWORKSHOP que t m como objetivo composi es leves e est ticas Eles consistem em um conjunto de componentes que s o ligados para formar a aplica o VEST um conjunto de ferramentas propostas para construir sistemas operacionais embarcados baseados em componentes que realizam analises est ticas extensivas como agendame
24. almente usado como prote o para impedir que usu rios sem permiss es especiais interfiram em processos de outros usu rios Quando um processo est apenas esperando uma resposta de outro processo que por algum motivo n o existe mais o chamamos de processo zumbi j que ele consome tempo do processador e n o faz nada de til ao usu rio ou ao sistema TANENBAUM 2003 83 Relat Inic Cient Um estudo explorat rio sobre sistemas operacionais embarcados 2 4 2 Gerenciamento de Mem ria Todo computador tem uma mem ria principal que usada para guardar os programas em execu o Sistemas operacionais simples permitem que apenas um programa por vez ocupe a mem ria principal Sistemas operacionais mais sofisticados permitem que m ltiplos programas habitem a mem ria ao mesmo tempo mas devem oferecer um mecanismo de prote o para que programas n o relacionados n o possam acessar e principalmente modificar informa es de outros programas na mem ria Outro fator importante o gerenciamento do espa o de endere amento dos processos Em computadores antigos programas que eram maiores que a mem ria dispon vel do computador poderiam causar uma s rie de complica es Em computadores mais modernos que utilizam a t cnica da mem ria virtual quando isso acontece parte do espa o de endere amento do programa guardado no disco retirando e colocando as informa es conforme o necess rio com um alto custo em velocida
25. anizar as tarefas gerenciar a mem ria e auxiliar nas comunica es Diferente de outros sistemas operacionais os sistemas operacionais embarcados possuem apenas o modo n cleo e chamadas ao sistema n o s o necess rios pois todos os programas s o executados em modo n cleo e possuem acesso total ao hardware isso poderia ser um problema de seguran a mas gerenciar isso causaria grande impacto no desempenho do sistema Eles podem fornecer uma interface simplificada ao usu rio mas sua principal fun o como extensor e gerenciador do hardware Al m disto um sistema embarcado que possui um sistema operacional obviamente precisa de mais mem ria principal maior potencia de processamento e mais energia el trica Isso faz com que os custos de hardware sejam maiores mas tamb m pode ajudar a encurtar consideravelmente o tempo despendido no projeto Por isto estes sistemas operacionais s o geralmente usados em projetos com maior complexidade CARRO 2003 89 Relat Inic Cient Um estudo explorat rio sobre sistemas operacionais embarcados 3 5 2 Sistemas Atualmente Dispon veis Sistemas operacionais embarcados s o diversos e podem ser GPOSs Sistemas Operacionais de Prop sito Geral do ingl s General Purpose Operanting Systems ou espec ficos A maioria dos sistemas embarcados dispon veis no mercado possuem propriedades de sistemas de tempo real como garantia de resposta e alta velocidade al m de serem flex veis e configur
26. ar futuros modelos al m de permitir os produtores a prover servi os proativamente fortalecendo a rela o com os clientes Esse mapeamento pode ainda servir como guia para decis es de estoque de produtos e partes especialmente quando h grande quantidade de modelos de um mesmo produto em uma mesma regi o 86 Relat Inic Cient Um estudo explorat rio sobre sistemas operacionais embarcados Assim empresas deveriam ter raz es estrat gicas para usar tecnologia embarcada j que ela permite oportunidades para inova o de produtos e processos H tr s tipos de iniciativas para incorporar tecnologia embarcada em um produto e Enriquecimento produtos s o redesenhados com tecnologia embarcada para melhorar qualidade conveni ncia e desempenho mas a funcionalidade b sica do produto n o alterada e funcionaria mesmo se os sistemas embarcados fossem removidos Desse modo o objetivo prim rio oferecer novas fun es para diferentes produtos Exemplo sapatos e Digitaliza o partes f sicas e j existentes do produto s o modificadas e ajustadas para prover resultados digitais mas h partes do produto que ainda s o operadas manualmente Esse tipo de incorpora o permite a empresa a oferecer outros produtos e servi os Exemplo monitoramento card aco e Substitui o o produto totalmente redesenhado e substitu do por tecnologia digital Exemplo m quinas fotogr ficas Apesar de todas essas vantagens produtos em
27. barcados tamb m trazem desafios j que a tecnologia embarcada difere dos modos tradicionais de produtos Entre esses desafios temos e Projeto modular produtos tradicionais ainda n o seguem o projeto modular optando pelos modelos mais tradicionais Para se aplicar tecnologia embarcada em um produto tradicional o modo como o produto projetado necessita ser atualizado e Especifica o as interfaces com o produto f sico devem ser claramente especificadas e Capacidades organizacionais com a tecnologia embarcada e o projeto modular de produtos a frequ ncia de inova es ir aumentar o que por sua vez torna os produtos obsoletos mais rapidamente diminuindo sua vida til e seu ciclo de vida e Conflitos com servi os existentes poder o haver conflitos com servi os criados quando o produto n o era embarcado al m de conflito entre servi os que a empresa necessitara oferecer que antes eram oferecidos por outras empresas e Treinamento e desenvolvimento da for a de trabalho desenvolvedores de produtos necessitar o ter conhecimentos de tecnologia da informa o para reconhecer oportunidades e os funcion rios que prestam servi os aos clientes ter o que ter uma educa o b sica sobre sistemas embarcados KONANA 2007 3 2 Produtos que usam Tecnologia Embarcada Empresas t m usado tecnologia embarcada em produtos tradicionais para adicionar novas funcionalidades para melhorar a conveni ncia desempenho e seguran a dos pro
28. cem os requisitos estudados na se o 3 4 FRIEDRICH 2009 90 Relat Inic Cient Um estudo explorat rio sobre sistemas operacionais embarcados Tabela 2 Requerimentos de Sistema Operacionais Embarcados so 1 2 o 10 91 2 O 3 4 5 6 7 _ JJ 8 amp 9 f 10 11 VxWorks Parcial QNX Parcial WinCE Inadequado eCos Inadequado pSOSystem Inadequado RTAI Inadequado uClinux Inadequado L4 Parcial Minix Parcial Fonte FRIEDRICH 2009 4 FERRAMENTAS DE DESENVOLVIMENTO H uma grande gama de ferramentas de desenvolvimento de sistemas embarcados como compiladores simuladores de hardware design de hardware e sistemas operacionais Algumas dessas ferramentas foram estudadas as quais est o descritas nas se es a seguir 4 1 Proteus Um conjunto de ferramentas para design simula o e esquematiza o de sistemas embarcados assim como de componentes para sistemas embarcados desenvolvida pela Labcenter Eletronics Apesar de ser um conjunto de ferramentas o m dulo mais utilizado o ISIS que permite o design e simula o de sistemas embarcados al m de permitir altera o de componentes caso esses n o sirvam especificamente para o sistema em mente 4 1 1 ISIS O ISIS permite de forma simples montar e simular os componentes de hardware de sistemas embarcados e definir atributos para seus componentes Um exemplo da tela de projeto do Isis pode ser encontrada na Figura 8 Figura 8 Tela de Projeto do ISIS isis
29. compartilha o tempo de CPU ele geralmente interrompe a execu o de um programa e inicia a de outro Toda vez que o sistema operacional faz isso ele precisa salvar todos os registradores para que eles possam ser restaurados quando o programa voltar a ser executado As CPUs antigas usavam um modelo simples de busca decodifica o e execu o de uma instru o por vez mas as CPUs modernas possuem recursos para trabalhar em mais de uma instru o por vez atrav s de unidades separadas de busca decodifica o e execu o de instru es Um modelo de pipeline de tr s est gios est exemplificado na Figura 2 mM e 81 Relat Inic Cient Um estudo explorat rio sobre sistemas operacionais embarcados Figura 2 Pipeline de Tr s Est gios unidade de umidade de busca execu o Fonte baseado em TANENBAUM 2003 H tamb m os processadores superescalares que possuem m ltiplas unidades de execu o Neste tipo de processador m ltiplas instru es s o buscadas e decodificadas e em seguida temporariamente armazenadas em um buffer de instru es at que possam ser executadas Quando uma unidade de execu o do processador estiver livre se houver instru es no buffer a pr xima instru o ser removida do buffer e ser executada Pode acontecer de instru es de um mesmo programa serem executadas fora de ordem geralmente cabe ao hardware impedir que isso aconte a Um modelo de um processador superescalar pode se
30. dSTACK SIZE configMINIMAL STACK SIZE define mainBLINKING TASK PRIORITY tskIDLE PRIORITY 1 define TaskDelay ms x vTaskDelay x portTICK RATE MS Algumas contantes definidas para facilitar a manipula o da aplica o GPIOA ODR GPIOA ODR Toggle PORTA GPIOB ODR GPIOB ODR Toggle PORTB GPIOC ODR GPIOC ODR Toggle PORTC GPIOD ODR GPIOD ODR Toggle PORTD GPIOE ODR GPIOE ODR Toggle PORTE Estes comandos utilizam o para realizar uma invers o bin ria acendendo os pinos do port caso ele esteja desligado e desligando caso ele esteja aceso Isto permite acender e apagar os LEDs conectados aos pinos Este comando faz com que o n cleo de processamento espere 100 ciclos antes de continuar a executar o programa Neste Za caso ele utilizado para que um usu rio humano possa observar o resultado antes que seja alterado novamente Esta chave marca o fim do comando de loop infinito definido anteriormente Esta tarefa deve voltar ao in cio do oop em condi es normais j que a condicional definida ser sempre verdadeira A fun o principal e essencial do programa GPIO Digital Output amp GPIOA BASE GPIO PINMASK ALL Set PORTA as digital output GPIO Digital Output amp GPIOB BASE GPIO PINMASK ALL Set PORTB as digital output GPIO Digital Output amp GPIOC BASE GPIO PINMASK ALL Set PORTC as digital output GPIO Digital Output amp GPIOD BASE GPIO PINMASK ALL Set PORTD as digital out
31. de mas evitando complica es TANENBAUM 2003 2 4 3 Entrada e Sa da Todos os computadores possuem dispositivos de entrada e sa da de dados pois sem eles os usu rios n o poderiam dizer o que deve ser feito e ou n o poderiam verificar o resultado obtido Existem v rios tipos de dispositivos de entrada e sa da como mouses teclados monitores caixas de som impressoras scanners etc Cabe ao sistema operacional gerenciar todos esses dispositivos Consequentemente todo sistema operacional possui um subsistema de entrada e sa da para gerenciar seus dispositivos Alguns dos programas de entrada e sa da s o independentes de dispositivos aplicam se igualmente bem a muitos ou a todos os dispositivos Outros programas ou parte deles como os drivers s o espec ficos para cada dispositivo de entrada e sa da TANENBAUM 2003 2 4 4 Arquivos Arquivos e sistemas de arquivos constituem outro conceito fundamental que comp em praticamente todos os sistemas operacionais Uma das fun es de um sistema operacional ocultar e simplificar para o usu rio as peculiaridades do hardware o que inclui os dispositivos de armazenamento Chamadas ao sistema s o necess rias para criar remover ler e escrever arquivos Para se ler um arquivo ele deve ser primeiro localizado aberto e depois de lido fechado Antes de se realizar uma opera o com um arquivo ou diret rio ele precisa ser aberto e nesse momento as permiss es do usu rio s
32. de ligar e dea I 2 E Functions global includes if Button SPORTC O 2000 0 LCD Init amp PORTB LCD Cmd LCD CLEAR LCD Cmd LCD CURSOR OFF LCD Init amp PORTD LCD Cmd LCD CLEAR LCD Cmd LCD CURSOR OFF return 1 modo 2 de checar bot es J if Button amp PORTC 1 2000 0 LCD Init PORTB LCD Cmd LCD TURN OFF LCD Init PORTD LCD Cmd LCD TURN OFF return 0 return estadoanterior retorna o estado anterior se nenhum dos bot e Pai Project Setup Project Summary Device P1 8F452 Lo E G Messages Find Es QConvertor Line Column Unit Insert C UsersiThomasiDesktopiTCCiSensor de temperatura duploiCalcularTempiCalcularTemp c Relat Inic Cient Um estudo explorat rio sobre sistemas operacionais embarcados 4 3 FreeRTOS O FreeRTOS um sistema operacional embarcado de c digo aberto que ideal para tarefas de tempo real exigentes que usam microcontroladores pequenos ou m dios que possuem entre 16 KB e 256 KB de mem ria RAM Ele escrito majoritariamente em C e permite que aplica es sejam organizadas em cole es independentes de threads e permite a categoriza o de threads por prioridade facilitando a programa o concorrente Ele d suporte a muitas fam lias de microcontroladores e suportado por v rios compiladores Isso poss vel porque uma de suas formas de uso atrav s de c
33. de serem portados para outras plataformas 4 Alta Confiabilidade por serem usados em aplica es cr ticas falhas de software ou hardware s o muito problem ticas e extremamente caras 5 Estabilidade robustez e confian a incluem aspectos de confiabilidade e disponibilidade ou seja a capacidade de continuar trabalhando sem falhas ou com toler ncia ou isolamento delas 6 Controle de falhas em tecnologia embarcada especialmente em redes podem ocorrer falhas por v rios motivos De um modo geral as falhas n o devem impactar nas fun es gerais do sistema ent o as falhas devem ser toleradas controladas isoladas ou registradas 7 Prote o perda de vida danos severos as pessoas propriedades e ambiente n o devem acontecer Esse tipo de requisito para todo o sistema embarcado em que isso pode acontecer o que inclui equipamentos m dicos ve culos equipamentos industriais e equipamentos militares 8 Seguran a a capacidade do sistema de prevenir informa es e recursos de serem acessados por usu rio n o autorizados 9 Privacidade usu rios geralmente evitam revelar informa es confidenciais Esse requisito se preocupa em n o revelar essas informa es 10 Escalabilidade a capacidade do sistema de ser prontamente expandido ou de conseguir gerenciar quantidades crescentes de trabalho sem que haja muito impacio 11 Melhoras tem haver com a capacidade de melhoramentos do sistema seja em novas funcionalidades
34. diferentes programas s o necess rios para que o sistema possa control los Estes programas chamam se drivers de dispositivo e cada fabricante de controlador deve oferecer um driver apropriado para cada sistema operacional suportado Majoritariamente para funcionar os drivers devem ser executados em modo n cleo e precisam estar dentro do sistema operacional Todo controlador possui um pequeno n mero de registradores que s o usados na comunica o Para ativar um controlador o driver recebe um comando do sistema operacional e o traduz em valores apropriados para serem escritos nos registradores do controlador TANENBAUM 2003 2 4 Conceitos sobre Sistemas Operacionais N o basta conhecer apenas o hardware de um sistema esperando entender o que um sistema operacional necess rio conhecer tamb m os conceitos b sicos de um sistema operacional Esta se o aborda tais conceitos 2 4 1 Processo E um conceito fundamental para todos os tipos de sistemas operacionais Um processo pode ser definido como um programa em execu o Associado a cada processo temos seu espa o de endere amento uma lista de posi es na mem ria as quais ele pode ler e escrever e um conjunto de registradores que inclui o contador de programas o ponteiro de pilha alguns registradores do hardware e todas as demais informa es necess rias para executar o programa O espa o de endere amento por sua vez cont m o programa execut vel os dados do pr
35. dutos incluindo ve culos e aparelhos eletr nicos em geral Como exemplo de produtos podemos citar avi es carros geladeiras m quinas fotogr ficas televisores telefones celulares e computadores port teis entre diversos outros 3 3 Componentes de um Sistema Embarcado Projeto de sistemas eletr nicos embarcados enfrentam diversos desafios porque seu espa o de projeto arquitetural a ser explorado demasiado vasto A arquitetura de hardware pode conter um ou mais processadores ou microcontroladores tipo de processador com recursos extras como mem ria e maior suporte a perif ricos mem ria interfaces para perif ricos e blocos dedicados Somente a estrutura de comunica o pode variar de um barramento a uma rede complexa Al m disso os processadores e microcontroladores dispon veis possuem diversos modelos os quais devem ser considerados conforme sua aplica o como RISC Conjunto Reduzido de Constru es de Computa o do ingl s Reduced Instruction Set Computer VLIW Palavra de Instru o Bem Longa do ingl s Very Long Instruction Word DSP Processador de Sinal Digital do ingl s Digital Signal Processor e ASIP Processor de Conjunto de Instru es para Aplica es Espec ficas do ingl s Application Specific Instruction Set Processor entre outros Caso o sistema possua componentes program veis o software de aplica o pode ser constitu do por m ltiplos processos distribu dos entre diferentes processadores e co
36. e sete segmentos apropriado E adicionado o n mero 128 ao c lculo pois o display de sete segmentos usado nesse caso possui um ponto usado para n meros fracionados e acionado pela adi o de 128 no c lculo quando ligado apropriadamente no port do microcontrolador PORTD disp7seg inttemp10 10 calcula decimais Essa chamada de fun o em um pino do port D deve converter o algarismo do decimal da temperatura e demonstrar no display de sete segmentos apropriado Essa chave indica o fim da condicional para caso o microcontrolador esteja ativo E importante notar que toda a coleta de dados c lculos e compara es relacionados ao sensor de temperatura s o feitos apenas nesse caso else desligar o dispositivo est desligado Caso o microcontrolador deva estar hibernando toda a coleta de dados c lculos e compara es relacionados ao sensor de temperatura s o pulados e chamado uma fun o para hibernar e para ter certeza de que os ports do microcontrolador estejam hibernando Essa chave marca o fim do comando while definido anteriormente e a parte final do loop infinito Esse programa deve voltar ao inicio do comando while em condi es normais j que a condicional definida ser sempre verdadeira Essa chave marca o fim do O programa n o deve chegar at essa marca em condi es normais Relat Inic Cient Um estudo explorat rio sobre sistemas operacionais embarcados 5 2 Sen
37. e acesso da s CPU s enquanto as que possuem maior capacidade de armazenamento encontram se mais distantes Seguindo a ordem de acesso pela CPU podemos construir em modelo em cinco camadas No n vel superior temos os registradores internos que por serem feitos do mesmo material s o t o r pidos quanto a CPU Geralmente possuem menos de 1 KB Kilobytes do ingl s Kylobytes de espa o No segundo n vel temos a mem ria cache que controlada principalmente pelo hardware e guarda as instru es que est o sendo muito usadas Um computador pode ter m ltiplos n veis de mem ria cache Em seguida temos a mem ria RAM Mem ria de Acesso Aleat rio do ingl s Random Access Memory que a mem ria principal As requisi es que n o s o atendidas pela mem ria cache s o procuradas na mem ria RAM O disco r gido vem em sequ ncia e por ser um dispositivo mec nico um dispositivo de mem ria n o vol til o que significa que n o perde informa es quando o computador desligado ao contr rio das camadas discutidas anteriormente Por ltimo temos a fita magn tica outro dispositivo mec nico e por isso de mem ria n o vol til que serve como backup c pia de seguran a e pode ser descartado para certos modelos de computadores Geralmente comum para computadores de empresas H outros dispositivos de armazenamento que mudam ligeiramente o modelo de camadas espec fico para cada computador como discos pticos flash dr
38. e de todos esses componentes e os utilizar corretamente extremamente dif cil Por isso foram criados os sistemas operacionais cujo trabalho gerenciar esses recursos e fornecer aos programas dos usu rios interfaces com o hardware simplificadas Com a evolu o e ramifica o dos tipos de computadores e de sistemas foram surgindo tamb m sistemas operacionais espec ficos e diversificados TANENBAUM 20083 Como exemplificado na Tabela 1 um sistema computacional comum pode ser analisado e estudado em camadas Tabela 1 Camadas de um Sistema Computacional Programas de aplica o Compiladores Editores Interpretador de comandos Sistema operacional Linguagem de m quina Microarquitetura Dispositivos fisicos gm Programas do sistema Hardware wa w Fonte baseado em TANENBAUM 2003 A camada superior de um sistema computacional constitui se dos programas de aplica o os quais englobam os programas de usu rios e os programas utilit rios A segunda camada formada pelos programas embutidos e dependentes do sistema operacional mas que n o s o obrigat rios para o funcionamento do mesmo A terceira camada o sistema operacional em si que oculta parcialmente a complexidade das camadas de hardware e fornece aos usu rios e aos programadores um conjunto de instru es mais convenientes protegendo assim o hardware O sistema operacional e os programas embutidos juntos constituem o n vel de programas do
39. embarcados 1 INTRODU O Sistemas embarcados s o sistemas computacionais fisicamente limitados que s o embutidos em outros produtos para melhorar seu funcionamento estender a quantidade de tarefas que realiza ou mesmo permitir que funcione Estes sistemas est o cada vez mais presentes na vida das pessoas sendo encontrados desde equipamentos eletrodom sticos at sistemas automotivos de m dio e grande porte A gama de aplica es para este tipo de sistema muito vasta e o custo do desenvolvimento tem reca do cada vez mais sobre o desenvolvimento do software Na medida em que os processadores utilizados na constru o de sistemas embarcados se tornaram mais sofisticados e potentes tornou se vi vel o uso de sistemas operacionais para auxiliar o desenvolvimento de software embarcado Este artigo enfoca o uso de sistemas operacionais no desenvolvimento de sistemas embarcados explorando as particularidades deste segmento de desenvolvimento de software Este artigo tamb m apresenta estudos de sistemas embarcados e suas caracter sticas comparativos dos sistemas operacionais embarcados e experimentos para entender melhor o desenvolvimento e utiliza o de aplica es embarcadas 1 1 Contextualiza o Sistemas embarcados t m despertado interesse em diversos segmentos de mercado nos ltimos anos principalmente atrav s da evolu o de tecnologias impulsionadoras deste tipo de sistemas dentre as quais podemos destacar tecnologia de c
40. este evento de buffer overflow Como as mem rias s o mais lentas do que os processadores podemos ter problemas de desempenho caso n o sejam devidamente planejadas Felizmente o modelo de hierarquia utilizado em sistemas mais comuns funciona bem para sistemas embarcados Para adquirir desempenho o paralelismo e o pseudoparalelismo uso de pipelines podem ser necess rios N o incomum encontrar em grandes projetos processadores ou microcontroladores com m ltiplos n cleos ou mesmo mais de um processador mas deve se tomar cuidado com a depend ncia de dados instru es que dependem do resultado de outra e a ordem correta de instru es O ltimo problema da arquitetura a comunica o entre componentes Liga es diretas ponto a ponto s o as mais r pidas por m devem ser refeitas para cada projeto o que obviamente recai no tempo de projeto Barramentos s o reus veis mas permitem apenas uma transa o por vez dentro de seu dom nio o que causa uma enorme perda de desempenho quando o sistema grande Uma hierarquia de barramentos tamb m uma op o onde h v rios sub barramentos espalhados mas essa op o ainda pode paralisar diversos recursos de comunica o Assim ainda n o h um tipo de comunica o ideal Alguns trabalhos recentes prop em o uso de uma rede em um chip NoC que um conjunto de canais e roteadores dedicados comunica o Como as conex es entre roteadores s o ponto a ponto a rede
41. is pode envolver equipes multidisciplinares como hardware digital hardware anal gico software e teste e utiliza o de ferramentas computacionais de custo elevado S o ainda mais caros quando se tratam de sistemas integrados em uma pastilha o que obriga empresas a aceitarem projetos que tenham garantidamente volume muito alto de produ o E importante notar que grandes projetos necessitam de uma modelagem melhor definida com v rios n veis de abstra o e ferramentas de automa o CARRO 2003 Um exemplo de metodologia de um grande projeto de um sistema embarcado pode ser encontrado na Figura 5 85 Relat Inic Cient Um estudo explorat rio sobre sistemas operacionais embarcados Figura 5 Metodologia de Projeto A o e Valida o a as Especifica o d Requisitos ca _ Funcional E sy da aplica o am i f y q A e paris E a Estimadores y Explora o do espa o a Plataforma N de projeto arquitetural eg x A arquitetural E N E TN A Za 7 Biblioteca de Macro arquitetura N Componentes com mapeamento Valida o E funcional ss Refis S ntese da S ntese da d gt 1 gt e do RTOS comunica o micro arquitetura t a N paes E a ri wA i P m Software Micro arquitetura Valida o execut vel 4 p Y S ntese do layout Fonte CARRO 2003 Um atraso em um projeto de software embarcado pode causar perda consider vel de lucros ou p
42. ives etc H ainda mem rias especiais como a ROM Mem ria Somente de Leitura do ingl s Ready Only Memory que uma mem ria n o vol til programada de f brica que r pida e barata mas n o pode ser 82 Relat Inic Cient Um estudo explorat rio sobre sistemas operacionais embarcados alterada mas as varia es como a EEPROM Mem ria Somente de Leitura Program vel do ingl s Electrically Erasabel Programmable Read Only Memory e flash RAM podem ser apagadas e reescritas permitindo atualiza es e corre o de poss veis erros A ROM bastante usada como carregador para iniciar um computador mas pode estar presente em placas de dispositivos de entrada e sa da para controle de baixo n vel 2 3 3 Dispositivos de Entrada e Sa da de Dados Os dispositivos de entrada e sa da tamb m interagem intensivamente com o sistema operacional Eles s o geralmente constitu dos de duas partes um controlador e o dispositivo propriamente dito Os dispositivos em si possuem interfaces simples porque n o fazem nada muito diferente um dos outros o que ajuda a padroniz los J o controlador um chip ou um conjunto de chips em uma placa que controla fisicamente o dispositivo Ele recebe comandos do sistema operacional para interagir com o dispositivo Como o controle real de um dispositivo pode ser complexo tarefa do controlador oferecer uma interface simplificada ao sistema operacional Como cada controlador diferente
43. iza o de algum evento 4 1 1 7 Displays Displays s o monitores que mostram algo quando sinais passam por eles Um display de segmentos necessita apenas discernir tens o alta ou baixa para ligar seus segmentos enquanto um display de LCD Display de Cristal L quido do ingl s Liquid Crystal Display possui leitores l gicos para receber a mensagem que deve ser mostrada 4 1 1 8 Sensores de temperatura Os sensores de temperatura s o dispositivos que l em a temperatura de determinado objeto e enviam um sinal anal gico com as informa es para um circuito Esse sinal anal gico necessita ser interpretado fun o a qual um microcontrolador bem til 4 1 1 9 Microcontroladores Microcontroladores s o componentes complexos com dezenas de pinos cada pino com uma configura o pr pria dependendo do fabricante do microcontrolador Eles possuem pinos e ports dos tipos digitais e anal gicas que podem ser usadas tanto para receber quanto para enviar sinais Um de seus par metros para efeito de simula o no ISIS o caminho do arquivo hexadecimal do programa que o microcontrolador dever executar E recomend vel que o programa possua loop infinito e que o microcontrolador possua energia quase constantemente para que o programa n o pare Exce es podem ser necess rias dependendo da finalidade do sistema e tamb m para poupar energia do sistema mas estes devem ser avaliados cuidadosamente A Figura 9 representa um projeto no ISI
44. ize that type of processor that made possible the development of more complex and sophisticated software With the 32 bits processors the use of embedded operating systems became a reality especially based on standard operating systems for embedded applications This article develops an exploratory investigation about embedded operating systems including a study about the main features of embedded operating systems a market study identifying the more utilized systems description of the characteristics of the more popular systems a comparison between them and some case studies exploring the utilization of one of these operating systems in an embedded system application Keywords Embedded System Operating System Microcontroller 1 Artigo baseado em Relat rio de Inicia o Cient fica apresentado pelo Curso Superior de Tecnologia em An lise de Sistemas e Tecnologia da Informa o da Faculdade de Tecnologia de Americana Fatec Americana depositado no 1 semestre de 2011 Discente do 8 Semestre do Curso Superior de Tecnologia em An lise de Sistemas e Tecnologia da Informa o da Faculdade de Tecnologia de Americana Contato thomas tadeu gallassi Omsn com Prof Dr Fatec Americana Gradua o em Processamento de Dados e Engenharia de Controle e Automa o Mestrado em Inform tica e Doutorado em Engenharia El trica Contato martinsleg Dhotmail com Relat Inic Cient Um estudo explorat rio sobre sistemas operacionais
45. mada por um sensor e mostrar em displays de segmentos evoluindo periodicamente esse sistema As implementa es inclu ram bot es de ligar e desligar um interruptor de emerg ncia e LEDs para indicar se a temperatura est muito alta ou muito baixa Para simplifica o dos circuitos foram usados inputs e outputs que basicamente transferem o sinal obtido entre si Uma representa o da vers o mais recente do sistema pode ser encontrada na Figura 13 enquanto a codifica o do programa pode ser encontrada na subse o 5 2 1 Figura 13 Sistema Embarcado Desenvolvido Gradualmente CO YYVVYVVVVO ITTESSS EE OSCICLKI RCOMT10S0 T1CKI E MCLR VPP RC1TIOSINCCP2A RC2 CCP1 RC3ISCKISCL RC4ISDIUSDA RCSISDO RCBTKICK RCTRKIDT RDOPSPO RD1PSP1 RD2PSP2 RD3PSP3 RD4PSP4 RDSPSPS RD6 PSP6 RDZIPSPT RED RDIANS RE ANRIANG REZICSIANT 5 1 1 C digo do Programa Desenvolvido Gradualmente O Quadro 1 apresenta o c digo do programa desenvolvido no MikroC durante esse experimento Como a proposta para o experimento foi desenvolver gradualmente e n o apenas explorar um sistema embarcado procurou se utilizar maneiras menos repetitivas e mais leg veis de desenvolvimento como o emprego de fun es extras Em especial foi usada uma nica fun o para converter algarismos para cada display de sete segmentos e outra fun o para converter os dados capturados e enviados pelos sensores de temperatura Quadro 1 C digo de um sistem
46. mbarcado sem o sistema operacional n o t o exigente em rela o mem ria e poder de processamento do microcontrolador evidenciado n o apenas pelo c digo mas tamb m por n o necessitar da inclus o de bibliotecas adicionais e isto um diferencial importante em projetos de baixo custo Relat Inic Cient Um estudo explorat rio sobre sistemas operacionais embarcados Tamb m not vel que desenvolver sistemas embarcados utilizando o FreeRTOS consideravelmente diferente do que desenvolver sem um sistema operacional especialmente devido ao uso de tasks o que significa que em uma equipe de desenvolvimento ou em empresa em migra o para utiliza o de sistemas operacionais embarcados um treinamento talvez seja necess rio Al m disso Milinkovic 2012 precisou fazer altera es no FreeRTOS para funcionar adequadamente implicando que um conhecimento adicional sobre os sistemas operacionais embarcados necess rio para a sua utiliza o correta e tamb m demonstra que os sistemas operacionais embarcados possuem incompatibilidades com alguns ambientes de desenvolvimento 6 COMENT RIOS FINAIS Devido diferen as e restri es dos sistemas embarcados se comparados com outros modelos de sistemas mais cl ssicos h uma dificuldade em utiliz los corretamente mas eles podem trazer benef cios n o s para o mercado mas para os clientes tamb m especialmente considerando que a maior parte dos sistemas computacionais prod
47. municando se por meio de mecanismos variados Um sistema operacional de tempo real tamb m pode ser necess rio dependendo da aplica o ou do projeto pois oferece servi os como comunica o e escalonamento de processos Em muitas aplica es mais adequada a integra o do sistema em SoC Sistema em uma Pastilha do ingl s System on a chip que um projeto com custo geralmente mais elevado do que o normal CARRO 2003 Nas situa es de criticidade de requisitos de rea pot ncia e ou desempenho o projeto em uma nica pastilha na forma de ASIC Circuito Integrado para Aplica o Espec fica do ingl s Application Specific Integrated System pode ser mandat rio Por m em situa es contr rias mais indicada a implementa o 87 Relat Inic Cient Um estudo explorat rio sobre sistemas operacionais embarcados de um sistema FPGA Arranjo de Portas Program vel em Campo do ingl s Field Programmable Gate Array alternativa de customiza o mais econ mica para baixos custos ou mesmo usar um sistema baseado em fam lias de microprocessadores Para acelerar o andamento dos projetos as empresas t m adotado o paradigma de plataformas que uma arquitetura de hardware e de software espec fica para um dom nio de aplica es por m altamente parametriz vel Essa estrat gia viabiliza a reutiliza o de componentes previamente desenvolvidos e testados reduzindo o tempo de projeto Esse reuso pode ser ainda mais refor
48. ndo o loop infinito recomendado para programas embarcados PORTA PORTA PORTB PORTB PORTC PORTC PORTD PORTD PORTE PORTE Estes comandos utilizam o para realizar uma invers o bin ria acendendo os pinos do port caso ele esteja desligado e desligando caso ele esteja aceso Isto permite acender e apagar os LEDs conectados aos pinos Delay ms 100 Este comando faz com que o n cleo de processamento espere 100 ciclos antes de continuar a executar o programa Neste caso ele utilizado para que um usu rio humano possa observar o resultado antes que seja alterado novamente Esta chave marca o fim do comando while definido anteriormente e a parte final do loop infinito Este programa deve voltar ao in cio do comando while em condi es normais j que a condicional definida ser sempre verdadeira Esta chave marca o fim do programa O programa n o deve chegar at essa marca em condi es normais 101 Relat Inic Cient Um estudo explorat rio sobre sistemas operacionais embarcados O Quadro 4 demonstra o programa de Milinkovic 2012 que foi desenvolvido para um 102 microcontrolador ARM STM32 M3 Quadro 4 LEDs Piscantes com Sistema Operacional Embarcado tinclude FreeRTOS h Hinclude task h As bibliotecas necess rias do FreeRTOS para o funcionamento deste programa S o usadas as duas mais essenciais sendo a biblioteca task respons vel pelo gerenciamento das tarefas Hdefine le
49. nicia o cient fica sob a mesma institui o com o t tulo de Um Estudo Explorat rio Sobre Sistemas Operacionais Embarcados Participou tamb m da XVII Maratona de Programa o atingindo o 35 lugar na fase nacional Contato thomas tadeu gallassi Omsn com Fonte CNPQ Curr culo Lattes Prof Luiz Eduardo Galv o Martins Professor Adjunto do Instituto de Ci ncia e Tecnologia da Universidade Federal de S o Paulo UNIFESP lotado no campus de S o Jos dos Campos Tem experi ncia na rea de Engenharia de Software com nfase em Engenharia de Requisitos atuando principalmente nos seguintes temas de pesquisa e desenvolvimento Engenharia de Software para Sistemas Embarcados Sistemas Ciberf sicos Sistemas Rob ticos e Sistemas Adaptativos Contato martinslegOhotmail com Fonte CNPQ Curr culo Lattes
50. nto depend ncias de recursos e interfaces de corre o de gram tica O elos o sistema operacional embarcado livre e de c digo aberto mais adotado Lan ado em 1986 ele prov uma ferramenta de configura o gr fica e uma ferramenta de configura o por linhas para assim adaptar o sistema operacional para realizar requerimentos de aplica es espec ficas Este recurso permite ao usu rio configurar o sistema operacional para requerimentos espec ficos de mem ria e desempenho O servidor de desenvolvimento pode ser Windows ou Linux e ele suporta v rios tipos de processadores Seu agendamento permite at 32 n veis de prioridade O eCos tamb m possui primitivas de sincroniza o sem foros eventos e caixas de correio eletr nico H sistemas operacionais que s o especialmente desenvolvidos para sistemas embarcados menores como CREEM pSOSytem OSEKWorks e Ariel Eles t m severas restri es de execu o e modelos de armazenamento Alguns sistemas operacionais contempor neos como o Linux possuem extens es que os permitem suportar aplica es de tempo real como o RTAI o RT Linux e o uClinux mas s o adequados apenas para grandes sistemas de tempo real por causa da sua arquitetura Ainda assim h preocupa es com seguran a e privacidade Com algumas solu es propostas foram criados o L4 OS e o Minix OS Na tabela 2 s o apresentados qu o bem alguns dos sistemas operacionais embarcados mencionados se ad quam ou forne
51. o verificadas Para organizar e guardar os arquivos a maioria dos sistemas operacionais oferece a tecnologia de diret rios como um modo de agrupar os arquivos Tamb m s o necess rias chamadas ao sistema para criar renomear e remover diret rios al m de chamadas para colocar e remover arquivos de um diret rio Um diret rio pode ter entradas de arquivos ou outros diret rios o que nos permite representar essa hierarquia em uma estrutura de rvores como no exemplo da Figura 4 Figura 4 Hierarquia de Diret rios Guret nio raiz legenda Programa o Banco de Dados eprograma 1 programa 2 destrutura dexemplo Fonte baseado em TANENBAUM 2003 Cada arquivo ou diret rio pode ser especificado fornecendo se o caminho a partir do topo da hierarquia diret rio raiz Isso forma uma lista dos diret rios que devem ser percorridos a partir do diret rio raiz para se chegar ao arquivo Cada processo tem um diret rio de trabalho atual ou seja suas buscas e ou especifica es de arquivos iniciam desse diret rio de trabalho 84 Relat Inic Cient Um estudo explorat rio sobre sistemas operacionais embarcados H tamb m arquivos chamados de pipes que s o arquivos que servem de comunica o entre dois ou mais processos um processo escreve no arquivo e outro processo l TANENBAUM 2003 2 4 5 Seguran a Computadores cont m informa es que seus usu rios muitas vezes querem manter confidenciais e cabe ao sis
52. ode at causar preju zos CARRO 2003 como exemplificado na Figura 6 Figura 6 Retorno Financeiro e Janelas de Tempo Retorno financeiro perda pelo atraso HE CAREN obsol ncia da PIA 4 inova o tempc introdu o do introdu o com novo produto atraso no mercado Fonte CARRO 2003 O uso de tecnologia embarcada em produtos f sicos n o nova Como exemplo na d cada de 80 computadores de controle num ricos obtiveram aumentos dr sticos em produtividade e qualidade de processos Produtos que usam tecnologia embarcada podem identificar e corrigir problemas antes que ocorra uma falha capturando e processando eventos geralmente atrav s de sensores A tecnologia embarcada torna f cil operar diagnosticar servir e personalizar produtos al m de oferecer informa es cr ticas aos fabricantes o que os permitem oferecer novos servi os entrar em processo de inova o e construir rela es diretas com os clientes Assim a tecnologia embarcada tem implica es importantes para o escopo de empresas competi o industrial e aplica es em neg cios Ela tamb m permite a produtores e prestadores de servi o mapear a sa de de um produto atrav s de seu ciclo de vida capturando o valor de servi o durante seu ciclo de vida e integrando opera es f sicas com processos de neg cios Esse mapeamento fornece informa es importantes como problemas de qualidade e estado de manuten o o que permite melhor
53. ograma e sua pilha Em sistemas de tempo compartilhados periodicamente o sistema operacional interrompe e salva geralmente em uma tabela de processos todas as informa es de um processo em execu o e come a a executar outro programa reiniciando a execu o do processo salvo mais tarde As principais chamadas ao sistema de gerenciamento de processos s o aquelas que lidam com a cria o e t rmino de processos mas incluem tamb m requisi o de mais mem ria libera o de mem ria e sobreposi o de um processo depois de seu t rmino Um processo pode criar outros processos chamados de processos filhos e assim podemos montar uma estrutura de rvore Processos que cooperam para realizar uma tarefa precisam frequentemente se comunicar e sincronizar suas atividades o que chamado de comunica o interprocessos Um processo pode pedir ao sistema operacional para ser notificado caso n o haja resposta de recebimento de uma mensagem isso mais comum entre processos que se comunicam atrav s de uma rede de computadores assim quando o sistema operacional enviar o sinal de alarme para o processo interromper e salvar tudo o que estiver fazendo e inicie um procedimento especial para tratamento desse sinal geralmente para reenviar a mensagem Todo processo possui entre seus registradores uma UID Identifica o de Usu rio do ingl s User Identification que serve para identificar o usu rio sob o qual o processo foi criado Ger
54. omunica o sem fio interfaces gr ficas com o usu rio final e acesso a Internet Por m devido curta vida dos produtos e prazos de desenvolvimento cada vez mais limitados a padroniza o do processo de desenvolvimento est sendo essencial o que leva utiliza o de sistemas operacionais embarcados que ajudam a padronizar e diminuir o tempo de desenvolvimento Existem v rias denomina es para sistemas embarcados que podem ser encontradas na literatura e no mercado de desenvolvimento de tais sistemas Sistemas embarcados tamb m s o conhecidos pelas denomina es Sistemas embutidos Sistemas dedicados Sistemas reativos Sistemas din micos Sistemas de tempo real embora nem todo sistema embarcado seja um sistema de tempo real A defini o do que seja um sistema embarcado controversa e dada a variedade de aplica es para tais sistemas e do tipo de tecnologia empregada dif cil conseguir uma defini o geral No entanto existe um conjunto de caracter sticas que s o comuns maioria dos sistemas embarcados independentemente do tipo de aplica o Estas caracter sticas ser o estudadas em cap tulos subsequentes 1 2 Objetivo O objetivo geral deste artigo demonstrar um estudo explorat rio sobre os principais sistemas operacionais utilizados no desenvolvimento de sistemas embarcados descrevendo suas principais caracter sticas e aplica es Os objetivos espec ficos deste artigo s o e Discutir a impor
55. or 97 return estadoanterior retorna o estado anterior se nenhum bot o tiver sido pressionado Caso nenhum bot o tenha sido pressionado est fun o deve retornar o valor de sinaliza o recebido simulando o pressionamento de um dos bot es para que o programa possa continuar executando float capturartemp int pinoan fun o para capturar o valor de um pino anal gico e converte lo para formato digital Nesse caso ele est sendo usado para capturar um valor de um sensor de temperatura Uma fun o que deve receber um valor num rico do tipo inteiro e retornar um valor num rico do tipo real Ela serve para capturar e converter para o formato digital um valor que est sendo enviado para um pino anal gico de um microcontrolador Para tanto essa fun o deve receber um valor que representa o pino que deve ser verificado Essa fun o foi constru da com o objetivo de verificar os dados emitidos por um sensor de temperatura return float 5 Adc read pinoan 100 1024 f rmula de convers o de dados anal gicos Esse comando usa uma f rmula para converter um valor anal gico nesse caso recebido do sensor de temperatura para o formato digital e retorna o valor para a fun o que pediu a verifica o nesse caso a fun o principal int disp seg int unidade fun o de ativa o de pinos para displays de 7 segmentos Uma fun o que deve receber um valor num rico do tipo inteiro e retornar outro valor n
56. oram e Sistemas tradicionais diferem consideravelmente de sistemas embarcados Sistemas embarcados s o fisicamente bem limitados Sistemas embarcados possuem fun es bem especificadas Sistemas embarcados geralmente s o r pidos Produtos embarcados possuem uma janela de tempo de desenvolvimento e de venda curtos devido a constante evolu o tecnol gica e Sistemas operacionais embarcados s o melhores para aplica es complexas devido a suporte programa o multitarefas e Sistemas operacionais embarcados desempenham bem mesmo em aplica es simples e Sistemas operacionais embarcados ajudam a padronizar projetos de sistemas embarcados independentes de complexidade e Sistemas operacionais embarcados modificam consideravelmente o estilo de programa o e Padroniza o essencial para o desenvolvimento de sistemas embarcados pois diminuem o tempo gasto com desenvolvimento e H muitas ferramentas para o uso e simula o de tecnologia embarcada Com os resultados obtidos e com os estudos da revis o bibliogr fica pode se concluir que e H um pouco de confus o ou disc rdia entre diferentes autores sobre a defini o correta de sistemas embarcados especialmente sobre seus nomes alternativos mas ainda assim todos concordam que sistemas embarcados s o fisicamente limitados e desempenham poucas fun es mas ainda assim s o precisos e r pidos e O mercado est parcialmente ciente e interessado nesta tecnologia
57. ou melhoramento das antigas Manter controle sobre todos estes requisitos n o tarefa f cil especialmente em projetos de grande porte e de or amento limitado 3 5 Sistemas Operacionais Embarcados No caso de sistemas embarcados que cont m componentes program veis o software de aplica o pode ser composto por m ltiplos processos distribu dos entre diferentes processadores e comunicando se atrav s de mecanismos variados Um sistema operacional oferecendo servi os como comunica o e escalonamento de processos pode ser necess rio CARRO 20083 Um sistema operacional embarcado tais recursos para um sistema embarcado facilita o desenvolvimento de aplica es mas idealmente deve impactar pouco nas restri es do sistema embarcado CARRO 2003 3 5 1 Caracter sticas As caracter sticas de um sistema operacional embarcado s o muito parecidas com as de sistemas embarcados j que um sistema operacional embarcado uma extens o do sistema a qual pertence e n o deve interferir em suas funcionalidades b sicas assim ele deve possuir alto desempenho baixo custo confiabilidade seguran a privacidade escalabilidade e pouco consumo de energia mem ria processador e espa o Deve tamb m ajudar os programas que habitam o sistema a desempenhar suas fun es al m de tratar das falhas de software e hardware Os sistemas operacionais embarcados tamb m devem ser flex veis e configur veis Eles servem ainda para escalonar org
58. para imprimir em um display de LCD Essa fun o n o retorna nenhum valor apesar de receber um texto Ela tem como objetivo imprimir o texto enviado no display de LCD ativo da fun o LCD Cmd LCD CURSOR OFF Esse comando desliga e esconde o cursor do display de LCD ativo Reusar esse comando garante que o cursor continuar desligado e escondido LCD Out 1 1 text Relat Inic Cient Um estudo explorat rio sobre sistemas operacionais embarcados Esse comando imprime no display de LCD ativo come ando da primeira posi o o texto contido na vari vel recebida O motivo para n o usar um comando para limpar o display de LCD previamente porque o simulador estava religando o cursor por m n o houve 100 problemas com a demonstra o dos resultados porque os textos possuem sempre o mesmo tamanho e sobrescrevem os anteriores mm char temp0 17 temp1 17 vari veis para guardar e transferir texto para os displays Declara es de vari veis para manipula o das fun es Ambas as vari veis s o usadas para guardar as temperaturas dos sensores em formato de texto para facilitar a impress o delas TRISA 0 PORTA 0 configura o dos ports do microcontrolador TRISB 0 PORTB 0 TRISC 0 PORTC 0 TRISD 0 PORTD 0 TRISE 0 PORTE 0 Esse conjunto de vari veis serve para configurar os ports do microcontrolador definindo o estado inicial e as permiss es de recebimento e envio de dados pa
59. pode transmitir mais mensagens ao mesmo tempo Ela permite paralelismo e facilmente escal vel basta colocar mais roteadores A efici ncia de uma NoC por m depende de v rios fatores como o tamanho do canal de roteamento quantidade de fios que fazem parte do mesmo a pol tica de prioridade de mensagens a topologia da pr pria NoC e a estrat gia de chaveamento Al m disso a dist ncia de certos componentes do NoC pode ser cr tica como a mem ria e o processador Por ltimo importante enfatizar que o custo de um roteador alto e uma NoC possui v rios roteadores Na Figura 7 exemplificado tr s modelos de NoCs CARRO 2003 Figura 7 Modelos de NoCs u3 u2 UI U u2 U1 uo 3 02 D1 DOJ 03 D02 DI DO j O3 D02 1 DO D3 D02 ES Em TE Es es Torus Arvore gorda Fonte CARRO 2003 D Grelha 88 Relat Inic Cient Um estudo explorat rio sobre sistemas operacionais embarcados 3 4 Requisitos de Sistemas Embarcados A maioria dos projetos de sistemas embarcados possuem requisitos bem definidos Entre os requisitos mais comuns temos 1 Computa o de Recursos Restritos como os recursos em um sistema embarcado s o escassos necess rio us los eficientemente 2 Requisitos de Tempo Real muitas aplica es embarcadas interagem profundamente com o mundo real e por isso t m requisitos estritos de tempo 3 Portabilidade para garantir custos menores os componentes devem ter a possibilidade
60. put GPIO Digital Output amp GPIOE BASE GPIO PINMASK ALL Set PORTE as digital output Este conjunto de vari veis serve para configurar os ports do microcontrolador definindo o estado inicial e as permiss es de recebimento e envio de dados para cada port Neste caso os ports A B C D e E s o configurados para envio dados no formato digital GPIOA ODR 0 GPIOB ODR 0 GPIOC ODR 0 GPIOD ODR 0 GPIOE ODR 0 Inicia todos os ports em 0 o ignifica que todos os pinos estar o desligados e consecutivamente os LEDs xTaskCreate vLedBlinkingTask signed char LED ledSTACK SIZE NULL mainBLINKING TASK PRIORITY xTaskHandle NULL E r a Prepara a nica task ou tarefa do programa mas ainda n o a inicia vTaskStartScheduler Inicia o agendador de tarefas respons vel por iniciar e gerenci las utilizando para isso as configura es de prioridades de cada task Esta chave marca o fim do programa O programa n o deve chegar at essa marca em condi es normais Comparando os Quadros 3 e 4 percept vel que o sistema embarcado com sistema operacional mais complexo e necessita de mais mem ria por m mais male vel para mudan as o que facilita extens o como Milinkovic 2012 fez com vers es subsequentes e a utiliza o do aplicativo como base outros aplicativos facilitando a padroniza o de projetos futuros Ainda assim o sistema e
61. r encontrado na Figura 3 Figura 3 Processador Superescalar unidade de unidade de m unidade de busca decodifica o execu o buffer de unidade de execu o unidade de busca unidade de execu o Fonte baseado em TANENBAUM 2003 A maioria das CPUs possuem dois modos de funcionamento o modo n cleo onde os programas possuem acesso a todas as instru es das CPUs e podem usar todos os atributos do hardware e o modo usu rio onde o acesso e os atributos s o restritos a apenas um subconjunto O sistema operacional sempre executado em modo n cleo e se os programas precisarem de acesso a instru es ou atributos do hardware que s o restritos estes podem fazer uma chamada ao sistema que alterna o modo usu rio para modo n cleo e passa o controle para o sistema operacional Quando a instru o completada o sistema operacional alterna novamente a CPU para o modo usu rio e retorna o resultado para o programa que fez a requisi o TANENBAUM 2003 2 3 2 Mem ria O segundo principal componente dos computadores a mem ria Idealmente a mem ria deveria ser grande barata e mais veloz que a execu o de uma instru o para que a CPU n o fosse atrasada por m nenhuma tecnologia atende esses requisitos e por isso a mem ria dos sistemas constru da baseada em uma hierarquia de camadas onde as mem rias mais r pidas por m menores e mais caras est o mais pr ximas em termos d
62. ra cada port Nesse caso os ports A B C D e E s o configurados para envio de dados mas isto n o impede que eles tamb m recebam dados LCD Init amp PORTB inicia o LCD do port B Esse comando ativa o display de LCD ligado ao port B LCD Cmd LCD CLEAR limpa o conte do do LCD Esse comando limpa qualquer texto que possa estar contido no display de LCD ativo que deve ser o display ligado ao port B O uso desse comando o motivo pelo qual os displays de LCD j est o sendo ativados LCD Cmd LCD CURSOR OFF esconde o cursos do LCD Esse comando desliga e esconde o cursor do display de LCD ativo LCD Init amp PORTD inicia o LCD do port D Esse comando ativa o display de LCD ligado ao port D desligando qualquer outro display de LCD ativo LCD Cmd LCD CLEAR limpa o conte do do LCD Esse comando limpa qualquer texto que possa estar contido no display de LCD ativo que deve ser o display ligado ao port D O uso desse comando o motivo pelo qual os displays de LCD j est o sendo ativados LCD Cmd LCD CURSOR OFF esconde o cursos do LCD Esse comando desliga e esconde o cursor do display de LCD ativo while 1 fun o de loop infinito O comando while um comando de retorno condicional ou seja o programa ou fun o retorna quando determinada condi o atingida e prossegue com o programa ou fun o caso n o seja atingida Nessa situ
63. ra entender e comparar as diferen as com os sistemas embarcados e os sistemas operacionais embarcados O cap tulo 3 apresenta os sistemas embarcados suas caracter sticas seus componentes e seus requisitos al m de abordar os sistemas operacionais embarcados e suas caracter sticas para comparar alguns sistemas operacionais embarcados enquanto o cap tulo 4 apresenta algumas ferramentas de desenvolvimento de sistemas embarcados exploradas durante os experimentos desenvolvidos O cap tulo 5 apresenta os experimentos propriamente ditos explicando seus objetivos e demonstrando seu desenvolvimento e o cap tulo 6 apresenta os coment rios finais e a conclus o obtidos atrav s da an lise das refer ncias bibliogr ficas e dos experimentos 2 SISTEMAS OPERACIONAIS Para que se possa falar sobre sistemas operacionais embarcados necess rio conhecer um pouco sobre sistemas operacionais tradicionais de inform tica e seus conceitos para assim entender as similaridades e diferen as entre ambos os tipos de sistemas Portanto neste cap tulo s o apresentados alguns conceitos sobre sistemas operacionais que embasam o uso de sistemas operacionais embarcados 2 1 Caracter sticas Um sistema computacional moderno consiste em pelo menos um processador mem ria principal teclado mouse monitor interfaces de rede discos impressoras e outros dispositivos de entrada e sa da de dados Isso significa que desenvolver programas para manter o control
64. sistema A quarta camada a de linguagem de m quina que move os dados atrav s de instru es recebidas e controla os dispositivos de entrada e sa da de dados carregando valores chamados de registradores de dispositivos Por ser uma camada com um conjunto de instru es detalhadas espec ficas e complexas o sistema operacional respons vel por simplific las e agrup las para ent o fornecer aos programadores e aos usu rios A quinta camada a de microarquitetura na qual os dispositivos f sicos da sexta camada s o agrupados em unidades funcionais J a sexta camada por sua vez constitu da dos dispositivos f sicos como chips de circuitos integrados fios fontes de alimenta o tubos de raios cat dicos e dispositivos semelhantes E importante notar que os chips de circuitos integrados podem ser considerados sistemas 80 Relat Inic Cient Um estudo explorat rio sobre sistemas operacionais embarcados embarcados que ser o estudados posteriormente As tr s ltimas camadas juntas constituem o n vel de hardware de um sistema TANENBAUM 20083 2 2 Fun es Um sistema operacional pode ser visto como uma m quina estendida ou seja um simplificador dos comandos de linguagem de m quina e do hardware e fornecedor de servi os tornando mais f cil a programa o mas pode ser visto tamb m como um gerenciador de recursos que fornece uma aloca o ordenada e controlada de processadores mem rias e dispositivos
65. sores de Temperatura com Displays de LCD Durante este experimento foram usadas as ferramentas Proteus 7 4 SP3 Build 6792 MikroC 8 1 0 0 Open Watcom 1 9 MPLAB IDE 8 73 e MPLAB C18 3 39 Foi proposto o desenvolvimento de um sistema embarcado sem sistema operacional que gerencia dois sensores de temperatura sequencialmente e depois disso a evolu o do sistema para um sistema operacional embarcado de tarefas concorrentes com o FreeRTOS e o MPLAB A primeira etapa do experimento ocorreu sem muitos problemas por m houve problemas na segunda etapa com o MPLAB Nem mesmo os exemplos do FreeRTOS com o MPLAB executaram corretamente o que indica que seria necess rio um tempo consideravelmente maior para o estudo da mesma ferramenta O motivo pelo qual n o foi usado o MikroC na implementa o do sistema embarcado porque este n o possui compatibilidade com o FreeRTOS O projeto eletr nico para ambos os casos pode ser encontrado na Figura 14 enquanto a codifica o para o programa sem o sistema embarcado pode ser encontrado na subse o 5 3 1 e com o sistema embarcado com as limita es descritas anteriormente na subse o 5 3 2 Figura 14 Sensores de Temperatura com Displays de LCD nau o NOTHO gt gt gt us 5daadaad oa ao OSCTCLKI RCOT1OSOMICKI Ls MCLRAVPP RC1 T10SI CCP2A RC2 CCP1 n i RADJANO RCI SCK SCL R RATAN RC4ISDIISDA RCSISDO RCBITXICK RA4TOCKI RC7RXDT RASANLSSALYDIN RABIOSC2CLKO RDOPSPO RD1P
66. t ncia do desenvolvimento de sistemas embarcados na atualidade e Apresentar a diferen a entre os sistemas operacionais tradicionais e os sistemas operacionais embarcados e Identificar os sistemas operacionais mais utilizados e Fazer um comparativo entre os sistemas operacionais embarcados mais populares e Apresentar a import ncia do uso de sistemas operacionais no contexto do desenvolvimento de sistemas embarcados 1 3 Justificativa Este artigo insere se dentro da rea de sistemas embarcados que tem chamado a aten o da comunidade de desenvolvimento de software nos ltimos anos Sistemas embarcados s o potencialmente ricos pois fazem parte de produtos extremamente variados como eletr nicos de consumo equipamentos automotivos telecomunica es equipamentos m dicos sistemas de automa o entre outros Os sistemas operacionais embarcados est o sendo cada vez mais utilizados pois os processadores de 32 bits est o se tornando mais baratos e portanto mais acess veis ao desenvolvimento de tais sistemas O dom nio dos sistemas operacionais embarcados tem se revelado um diferencial de mercado para os profissionais da rea de TI que pretendem atuar no nicho Relat Inic Cient Um estudo explorat rio sobre sistemas operacionais embarcados 1 4 Organiza o do artigo O cap tulo 2 apresenta os sistemas computacionais e sistemas operacionais suas caracter sticas e seus componentes Estas informa es s o necess rios pa
67. tema operacional gerenciar o sistema de seguran a para que os arquivos e recursos sejam acess veis apenas a usu rios autorizados e para que o computador n o seja invadido por usu rios externos ou v rus TANENBAUM 2003 2 4 6 Interpretador de Comandos O sistema operacional serve como c digo que executa as chamadas ao sistema assim editores compiladores montadores ligadores e interpretadores de comandos normalmente n o fazem parte do sistema operacional mesmo que sejam importantes e teis Embora n o seja parte de um sistema operacional um interpretador de comandos utiliza extensivamente os aspectos do sistema operacional al m de poder ser a interface principal entre o usu rio e o sistema operacional a outra possibilidade uma interface gr fica de usu rio TANENBAUM 2003 3 SISTEMAS EMBARCADOS Houve muito interesse em tecnologia da informa o na ltima d cada mas pouca pesquisa tem sido concentrada em reengenharia de produtos f sicos respons vel por incorporar sensores simples em microprocessadores embarcados complexos e sistemas de software tecnologia embarcada da informa o em produtos Por m com a competitividade em muitos setores tem havido um crescente foco em tecnologia embarcada da informa o KONANA 2007 Este cap tulo aborda diversos aspectos sobre os sistemas embarcados suas caracter sticas seus componentes sua utiliza o em projetos assim como caracter sticas de sistemas operacionais
68. um rico do tipo inteiro Ela tem como objetivo verificar um algarismo e retornar a convers o desse algarismo para um valor que o represente em um port conectado apropriadamente a um display de sete segmentos do tipo c todo switch unidade verifica qual o digito obtido Esse comando um comando condicional ou seja toma decis es baseados em c lculos e compara es de valores O valor que esta sendo verificado nesse caso o valor recebido como algarismo return 63 cada valor representa um conjunto de pinos sequenciais que devem estar ativos para mostrar o n mero adequado return 6 return 91 return 9 return 102 9 5 return return return 7 return 127 return 111 Cada um desses comandos uma condi o a qual o algarismo pode assumir Para cada caso poss vel feita uma convers o para um formato leg vel para um display de sete segmentos do tipo c todo e depois enviada como resposta chamada da fun o default return 0 Caso o algarismo n o seja leg vel ou v lido retornado um valor que n o mostra nada em um display de sete segmentos do tipo c todo int tempalta int tempalt int valoralt fun o usada para comparar a temperatura atual e a temperatura superior de alerta Uma fun o que recebe dois valores num ricos do tipo inteiro e retorna outro valor num rico do tipo inteiro Ela foi feita com o objetivo de verificar se a temperatura ultrapassou um limite definido
69. unto de vari veis serve para configurar os ports do microcontrolador definindo o estado inicial e as permiss es de recebimento e envio de dados para cada port Nesse caso os ports A B C D e E s o configurados para envio de dados mas isto n o impede que eles tamb m recebam dados while 1 la o infinito O comando while um comando de retorno condicional ou seja o programa ou fun o retorna quando determinada condi o atingida e prossegue com o programa ou fun o caso n o seja atingida Nessa situa o a condicional 1 o que significa verdadeiro e deixa o programa com uma condicional sempre verdadeira criando o loop infinito recomendado para programas embarcados ligado ligdeslig ligado verificar bot es de ligar e desligar if ligado o dispositivo est ligado E atribu do a uma vari vel o retorno da fun o que verifica se algum bot o de ligar ou hibernar o microcontrolador foi pressionado e logo ap s verificado atrav s do valor obtido se o microcontrolador deve ser religado ou hibernado inttemp10 int capturartemp 5 10 captura a temperatura e multiplica por 10 para efeito de compara o de dados Caso o microcontrolador n o esteja hibernando E atribu do a uma vari vel e multiplicado por 10 para fins de c lculos posteriores o valor de temperatura que um dos pinos anal gicos est recebendo F inttemp10 1000 lt 1 centena 3
70. uzidos s o sistemas embarcados Por m uma tecnologia que requer planejamento para seu uso pois seus produtos tendem a se tornar obsoletos rapidamente Por outro lado os sistemas operacionais embarcados podem ajudar a padronizar e encurtar a fase de desenvolvimento aumentando a vida til do produto no mercado especialmente de projetos complexos mas a utiliza o de sistemas operacionais embarcados requer um estudo sobre as vantagens e desvantagens assim como a utiliza o dos mesmos Sem um estudo ou conhecimento pr vio desenvolvedores de software que utilizam tais sistemas operacionais podem desenvolver produtos mais lentos do que deveriam ser Os objetivos do artigo que inclu ram desenvolver um estudo explorat rio e discutir a import ncia atual de sistemas embarcados identificar e comparar os principais sistemas operacionais embarcados utilizados detalhando suas caracter sticas e descrevendo suas aplica es diferenciar sistemas operacionais tradicionais de sistemas operacionais embarcados e apresentar a import ncia de seu uso foram todos cumpridos Este artigo traz ainda a oportunidade aos leitores de conhecer um pouco sobre sistemas embarcados e sistemas operacionais embarcados Os resultados obtidos durante o desenvolvimento dos experimentos n o foram muito diferentes dos obtidos durante a revis o bibliogr fica especialmente considerando as limita es f sicas de um sistema embarcado Os principais resultados obtidos f
71. valor guardado na primeira vari vel de texto Essa chave marca o fim do comando while definido anteriormente e a parte final do loop infinito Esse programa deve voltar ao inicio do comando while em condi es normais j que a condicional definida ser sempre verdadeira Essa chave marca o fim do programa O programa n o deve chegar at essa marca em condi es normais 5 3 LEDs Piscantes Como houve alguns problemas em utilizar o MPLAB para realizar experimentos com o FreeRTOS no Isis algumas alternativas foram pesquisadas Uma delas levou s modifica es de Milinkovic 2012 no FreeRTOS para possibilitar o funcionamento sob o mikroC PRO for ARM As suas modifica es incluem altera es em certas bibliotecas do FreeRTOS como queue c e tasks c seguido de um programa de testes que est na vers o 0 0 0 4 Neste experimento foi estudada a vers o 0 0 0 1 do programa de testes desenvolvido por Milinkovic 2012 e replicados os resultados para um projeto sem sistema operacional embarcado utilizando o mikroC Relat Inic Cient Um estudo explorat rio sobre sistemas operacionais embarcados 8 1 0 0 O mikroC PRO for ARM 2 50 foi necess rio para compilar o projeto de Milinkovic j que este foi desenvolvido para uso no microcontrolador ARM STM32 MB Em nota especial o Isis do Proteus 7 4 SP3 Build 67 92 n o possui suporte para este microcontrolador por m algumas bibliotecas de terceiros podem ser utiliz
72. veis Alguns dos sistemas operacionais embarcados mais tradicionais como o VxWorks WinCE Sistema Compacto Embarcado Windows do ingl s Windows Embedded Compact QNX PalmOS OS 9 LynxOS e Symbian s o tipicamente grandes centenas de KBs de mem ria sistemas de prop sitos gerais com um rico conjunto de interfaces de programa o S o voltados projetos com mais recursos de mem ria e processamento e geralmente suportam multitarefas prote o de mem ria conex es de rede APIs Interfaces de Programa o de Aplica es do ingl s Application Programming Interface e prote o contra falhas O VxWorks da Wind River o sistema operacional embarcado de prop sito geral mais adotado a Esta o Espacial Internacional usa ele Ele foi criado no come o da d cada de 80 e fornece uma API com 1800 m todos incluindo suporte a rede hierarquia de arquivos e gerenciamento de entrada e sa da de dispositivos e dados Ele tamb m traz a bancada de trabalho da Wind River que uma cole o de ferramentas para acelerar o desenvolvimento com o VxWorks O servidor de desenvolvimento pode ser Red Hat Linux Solaris SuSE Linux Windows 2000 Professional ou Windows XP Ele prov tamb m um ambiente de desenvolvimento visual Ele suporta agendamento com 256 n veis de prioridades O QNX baseado na ideia de executar sistemas operacionais como pequenas tarefas conhecidas como servers Isso difere dos sistemas operacionais tradicionais nos qu
73. w Help M EEEE a ox D DOS 16 bit Executable exe Source files c sw B AFREERTOS SOURCESDEMO CODE basic io c n a 4 NFREERTOS SOURCEtheap 3 c n a 4 NFREERTOS SOURCEMist c n a nA NFREERTOS SOURCEXPORTABLE port c n a NFREERTOS SOURCEXPORTABLE portcomn c n a 4 AFREERTOS SOURCE queue c n a 4 NFREERTOS SOURCE Nasks c n a main c cd C Examples E xample001 wmake f C tE xamplestE xample001Srtosdemo mk h e a C E xamplestE xample00OT basic io obj Error F 38 CAFREERTOS SOURCEDEMO CODE basic io c does not exist and cannot be made fr Error E 02 Make execution terminated Execution complete 4 5 MPLAB O MPLAB uma DE Ambiente Integrado de Desenvolvimento do ingl s Integrated Development Environment para microcontroladores da Microchip Technology que facilita o desenvolvimento de projetos com m ltiplos arquivos e possui compatibilidade com o uso do FreeRTOS Por ser apenas um IDE o MPLAB precisa dos compiladores para funcionar MICROCHIP TECHNOLOGY 2005 como o MPLAB C18 essencial para se trabalhar com microcontroladores PIC 18 A Figura 12 demonstra a IDE do MPLAB Figura 12 IDE do MPLAB Dix File Edit view Project Debugger Programmer Tools Configure window Help D SE svna SADAR EE C Documents and Settings Thomas Desktopi FreeRTOS Demo PICIS_MPLAB mainii e Demo app include files E rtosdemo1 mcp finclude PollQ h E Source Files finclude integer h l i JA
Download Pdf Manuals
Related Search
Related Contents
1260/1261 - Communications Specialties, Inc. Communications Superior Pump 93501 Instructions / Assembly Télécharger - Industrie Canada Radio Shack TRC-509 User's Manual トータルアシスト自動車保険 Copyright © All rights reserved.
Failed to retrieve file