Otimizando os sistemas embebidos

Recentemente calhou em conversa com um amigo meu sobre programação de sistemas embebidos, visto que ele estava a avançar com um projeto muito interessante com um equipamento semelhante ao Arduino. Esta conversa relembrou-me os tempos em que programava em ANSI C (de 89) num LPC2106 da Phillips e aos tempos que andava a aprender ANSI C (de 89) e o belo do assembly, e surgiu a ideia para este artigo.

Quando alguém começa a programar num Arduino (ou equipamentos semelhantes) vai seguindo os exemplos que vai encontrando e vai adaptando às usa necessidades. No entanto, mais cedo ou mais tarde, vai querer implementar uma ideia que teve e, quem sabe, mais tarde transformar essa solução num produto que possa comercializar. A ideia deste artigo é oferecer um conjunto de técnicas e de pontos de interesse a ter em atenção por forma a maximizar os recursos que já têm, reduzindo o “desperdício” dos recursos.

Vou partilhar um caso que aconteceu quando eu estava na faculdade a realizar um projeto de uma unidade curricular de hardware. O projeto era para concretizar um equipamento de controlo de acessos, com algumas características interessantes e um conjunto limitado de chips que tínhamos à disposição. Esse projeto até estava a correr bem para todos os grupos, mas chegou a uma altura que um componente esgotou e a tiveram que encomendar mais pelo que os grupos estavam com o trabalho condicionado. Bem, o grupo onde eu estava decidiu que enquanto os chips não chegavam íamos otimizar o nosso código e tentar maximizar a utilização dos recursos disponíveis que tínhamos. Long story short, finalizamos o projeto com uma solução que usava menos componentes que os restantes grupos e era a solução mais eficiente que os professores haviam recebido já há alguns anos.

Porque é que esta história é relevante? Assumindo que a solução apresentada seria para comercializar, os custos de produção baixavam bastante em grande escala porque usava menos componentes e como a utilização dos componentes foi maximizada, o produto tornou-se bastante eficiente.

[...]

Leia o artigo completo na edição 56 da Revista PROGRAMAR