• Nenhum resultado encontrado

4.4 Avaliação das Metodologias e Recomendações

4.4.1 Ferramentas de Desenvolvimento

As ferramentas de desenvolvimento irão influenciar diretamente o tem po de desenvolvimento e consequentemente no lançamento do sistema embutido. As ferramentas

de software podem ser classificadas em: compiladores, simuladores, software para gravação do programa e ambientes de desen volvimento integrado (IDE).

O compilador faz a tradução d e um conjunto de com andos, de baixo ou alto nível, para a linguagem de máquina de um determinado processador. Inicialmente os processadores eram programados diretamente em linguagem de máq uina, dificultando o desenvolvimento do software. Com o desenvolvimento d os processadores, houve a necessidade de melhorar a forma de programação dos mesmos, surgindo o compilador para a linguagem de montagem do processador, mais amigável, porém considerada de baixo nível. Com o objetivo de diminuir a distância entre o usuário e a arquitetura do processador, surgiram os compiladores para as linguagens de alto nível, facilitando o desenvolvimento e criando alguma portabilidade para o software.

Os ambientes de desenvolvimento integrado, facilitam o desenvolvimento do software embutido, pois apresentam todas as ferramentas necessárias para o desenvolvimento da aplicação, como compilador, simulador e software para gravação. Existem ambientes de desenvolvimento integrado que oferecem a mesma interface para diferentes famílias de processadores de um mesmo fabricante, como o Mplab (Microchip), Code Warrior (Freescale), HEW (Hitachi) e ou tros. Existe um amb iente integrado desenvolvido pela IAR Systems que mantém a mesma interface para diferentes processadores de diferentes fabricantes.

As ferramentas de hardware podem ser divididas, conforme [28], em dois grandes grupos: ferramentas invasivas e não invasivas. As ferramentas invasivas po dem afetar o funcionamento do processador, causando pequenas variações no tempo de execução e problemas no funcionamento de periféricos e das interrupções. As ferramentas não invasivas são cuidadosamente projetadas para replicar todas as funções do processador, garantindo o funcionamento do mesmo em qualquer condição de emulação do sistema.

4.5 Conclusão

Com base na pesquisa realizada, conclui-se que n ão foi encontrado n a literatura uma metodologia completa para seleção de p rocessadores. Porém existem inúmeras recomendações onde são abordados itens que devem ser observados nesse processo, destacando o benchmark, o custo do processador e as ferramentas de desenvolvimento. A

tabela 1 procura compilar todos os itens e classificar as metod ologias e recomendaçõ es, identificando pontos em comum e delineando uma proposta de metodologia para seleção de processadores para sistemas embutidos.

Nenhuma metodologia pesquisada faz referência explicita à especificação do sistema embutido como ponto inicial para a seleção. Elas descrevem diretamente os aspectos que devem ser observados para determinar o processador. Entretanto, fica claro que a seleção do processador depende de uma boa esp ecificação do sistema embutido a ser desenvolvido, pois é através desta que as características do processador são definidas, atreladas a um objetivo de custo para todo o sistema.

Uma metodologia completa é aquela que contempla o sistema embutido, utilizando uma sintaxe padrão para a modelagem tanto da sua parte de software como da sua parte de hardware, documentando todas as restrições e características do sistema. Partindo deste modelo do sistema embutido, é possível determinar as restrições e características que o processador deverá possuir. Também deve-se considerar características externas ao sistema que influenciam diretamente o custo e o tempo de desenvolvimento, como experiência do projetista com alguma família de processador, verificar se a empresa po ssui ferramentas de desenvolvimento de hardware ou de software para alguma família de processador e a possibilidade de reutilização de software.

Após a especificação do sistema embutido deve ser realizado o particionamento do hardware e do software. Considerando as etapas do projeto de sistemas embutidos, definidas no co-design, a seleção do processador com melhor custo/beneficio deve ser executada após a definição das partes qu e serão implementadas por hardware e por software, ou seja, após o particionamento. As partes que serão implementadas por software utilizam um processador, o qual deve oferecer todos requisitos exigidos pela aplicação e desempenho suficiente para executa-la.

Uma proposta de seleção de processadores pode ser composta das seguintes etapas: - especificação e modelagem do sistema embutido;

- identificação das restrições e características do processador;

- pesquisa e seleção dos processadores com base n as restrições;

- realização de benchmark utilizando o modelo de software do sistema.

Com o aumento dos requisitos de desempenho das aplicações, os sistemas embutidos estão ficando mais complexos, exigindo uma rigorosa metodologia de projeto com a necessidade de uma ferramenta de projeto completa e abrangente.

Esta ferramenta além de permitir a modelagem das partes de hardware e software deve possuir mecanismos para modelagem dos processadores selecionados na pesquisa. Também deve executar o benchmark dos processadores selecionados utilizando o modelo do software do sistema como carga de trabalho e classificando-os conforme desempenho medido.

Após encontrado o processador com melhor custo/beneficio/desempenho, deve-se analisar as ferramentas de desenvolvimento oferecidas para o mesmo, verificando a existência de material de referência como manu ais e exemplos de aplicação e a ex istência de suporte técnico. Através desta verificação evita-se selec ionar algum processador, cujo custo/benefício é o melhor, mas as ferramentas de desen volvimento além de caras não apresentam referências de ajuda ou suporte técnico no desenvolvimento.

Também deve ser observado se o processador selecionado possui uma família (grupos de elementos com características semelhantes) que possibilite sua substituição por outro processador compatível pino a pino mas com capacidade m aior de memória ou algum periférico melhorado. Isso possibilita melhoramen tos no software do sistema embutido sem alterações no hardware do mesmo.

Capítulo 5

5 Usando SysML na Modelagem de Sistemas Embutidos

Usando SysML na Modelagem de Sistemas

Embutidos

Em geral, a primeira etapa do desenvolvimento de um sistema embutido é especificar seus requisitos funcionais e não funcionais. Para ajudar a entender e organizar o conjunto de requisitos de uma maneira sistemática, pode-se utilizar vários modelos conceituais. Dessa forma, um processo de desenvolvimento ou metodologia é freqüentemente visto como uma seqüência de passos que transformam uma esp ecificação abstrata em uma especificação detalhada que pode ser fabricada. Assim, a entrada d e uma metodologia é a especificação dos requisitos de um sistema, e a descrição final ou saída é a implementação.

Existem diversas maneiras de descrever o compo rtamento de um sistema. No caso do comportamento ser descrito em linguagem natural o sistema está descrito de maneira informal, podendo ter ambigüidades, o que dificultará o tratamento computacional automatizado. Por esse motivo é essencial inserir modelos formais ou semiformais, que sejam capazes de especificar os requisitos, viabilizando o emprego de métodos automatizados de projeto de sistemas computacionais, além de prover uma visão mais abstrata do sistema [30].

Antes de iniciar a etapa de modelagem do sistema é necessário a execução de uma etapa muito importante e fundamental, a etapa de análise de requisitos. A análise de requisitos é uma etapa informal, onde as características do sistema são descritas em

linguagem natural em documento de texto de forma abstrata, sem preocupação com os detalhes e regras metodológicos de uma especificação.

A modelagem de sistemas embutidos não é uma tarefa simples diante da heterogeneidade de seus componentes e diversidade de aplicações. Atualmente vários estilos de modelagem são utilizados dependendo da aplicação. Os modelos de especificação podem ser divididos em dois tipos:

- modelagem homogênea; - modelagem heterogênea.

Modelagem homogênea permite que um único modelo possa ser utilizado desde a especificação inicial até mesmo após o particionamento entre hardware e software. Como exemplo pode-se citar: modelo orientado a estados, modelo orientado a atividades e modelo orientado a estrutura [01].

Devido a dificuldade de encontrar um modelo com todas as características necessárias para a descrição de sistemas embutidos, utiliza-se uma com binação de vários modelos, caracterizando uma abordagem heterogênea. Esse tipo de modelagem é encontrado em linguagem de descrição e programação, na ten tativa de aumentar a capacidade de modelagem destas linguagens. Como exemplo pode-se citar o modelo orientado a objetos, linguagem de programação e linguagem de descrição de hardware [01].

Documentos relacionados