quinta-feira, 10 de setembro de 2015

Etapas de projeto: O software embarcado



Durante o processo de definição de um projeto baseado em plataforma, um cuidado especial se dá ao software que será implementado. Quando os microcomputadores pessoais apareceram, havia muitas restrições quanto à rapidez do processamento, ou ao uso de memória, e diversos artifícios eram utilizados para se aproveitar recursos da melhor forma possível. Atualmente, programar para um PC comum não é uma tarefa que exija muito conhecimento do hardware. Lança-se mão de diversas bibliotecas, sem muitas vezes tomar cuidado com o código que se está inserindo no seu projeto. Mas, no desenvolvimento de um software para um sistema com restrições de energia, espaço, memória, prazos de execução, etc... a coisa é um pouco diferente. Vamos usar um exemplo: Um sistema que monitora a ocorrência de relâmpagos em uma área qualquer. Se no momento do evento o software não estiver de prontidão para captar a sua ocorrência, de nada serve um hardware potente. O processamento pelo hardware pode ser muito rápido, mas tem-se que considerar os acessos a memória, ou acessos de entrada e saída quando no momento do registro do evento, para que o dispositivo retorne à prontidão exigida no momento certo e possa esperar por outros eventos. É uma restrição de tempo muito rígida e que pode afetar o funcionamento do sistema inteiro, se esse software não for bem escrito. Quanto ao uso de memória, tem-se que considerar que, normalmente, os dispositivos não dispõem de muita memória, então, meu código não pode usar variáveis à vontade, como muitas vezes fazemos ao desenvolver para um computador comum. Quanto ao uso da energia, posso estar preso a uma restrição ainda pior. Nesse caso, como vou alimentar o meu sistema interfere diretamente no seu bom funcionamento e na sua eficiência. Desenvolver software embarcado exige um mínimo conhecimento do hardware usado. Então não ignore as especificações do seu sistema, busque entendê-las ao máximo. É necessário também desenvolver o software em etapas de refinamento que incluem modificações para otimizar o seu código, várias e várias vezes. 

Nenhum comentário:

Postar um comentário