Se você pretende desenvolver para dispositivos embarcados, saiba que o .NET Micro Framework pode ser a solução ideal para desenvolver aplicações de baixo custo e com rapidez.
O .NET Micro Framework , de agora diante apenas NETMF, é uma versão inicializável do .NET Framework que permite criar projetos para dispositivos embutidos usando a linguagem C#, uma linguagem de alto nível, o que dá um ganho de produtividade muito grande, principalmente para quem já conhece a linguagem.
Como é um .NET Framework reduzido, as aplicações desenvolvidas nesta plataforma necessitam de poucos recursos de hardware. Portanto, é uma plataforma ideal para o desenvolvimento para os dispositivos de itens pequenos como relógios, displays eletrônicos, sensores, GPS, mídias digitais, etc.
Vantagens do .NET Micro Framework para desenvolvimento em dispositivos embarcados
- Roda no Microsoft Visual C# Express que é grátis e tem uma IDE de alta performance;
- .NET Micro Framework é gratuito e open-source;
- Seu código irá rodar em todos os dispositivos com poucas modificações;
- Capacidade de debug completo (Breakpoints, execução passo a passo, variáveis…etc.);
- Tem sido testado em muitos produtos comerciais de forma que a qualidade foi garantida;
- Inclui muitos drivers (SPI, UART , I2C…etc.);
- Não há necessidade de datasheets do processador graças ao padrão do Framework;
- Se você já é um programador C# para PC, então você esta pronto para ser um desenvolvedor de sistemas embarcados com NETMF.
O NETMF pode ser dividido em dois componentes principais: o núcleo e HAL (Hardware Access Layer). As principais bibliotecas do núcleo são feitas para que sejam independentes do hardware. Normalmente não são necessárias modificações nas bibliotecas do núcleo. Os desenvolvedores precisam fazer seu próprio HAL para que o NETMF funcione em um dispositivo.
Características principais do NETMF:
- Usando em dispositivos conectados, embarcados, pequenos, com interface gráfica;
- Roda em processadores ARM7, ARM9, MMU, 250-500 Kb com código gerenciável;
- Possui um consumo de energia muito baixo;
- Pode ser usado em sensores, visores, controles remotos, periféricos, sistemas multimídias, etc.;
- Possui um CLR bootável que roda diretamente no hardware e não precisa de um sistema operacional.
Configurando o sistema
Antes de iniciar, devemos primeiro configurar o PC com o software necessário. Para isso, faça aqui o download e instale o Visual C# Express 2010.
Observação: Funciona também no Microsoft Visual Studio 2008 SP1 (C# tem que estar instalado) ou Microsoft Visual C# 2008 Express Edition com SP1.
Em seguida, faça o download e instale o NET Micro Framework 4.1 SDK (não o kit de portabilidade): .NET Micro Framework 4.1 SDK
Observação: Se o link acima não funcionar, procure por “.NET Micro Framework 4.1 SDK”
Por fim, instale o SDK GHI NETMF. Você pode obtê-lo aqui.
Arquitetura
O diagrama a seguir mostra a arquitetura do .NET Micro Framework:
- Application Layer – Representa o código da aplicação com todas as suas bibliotecas;
- Class LIbrary Layer – Camadas da plataforma .NET, do WPF, etc;
- Runtime Component Layer – Responsável pelo mecanismo de execução do runtime, tipagem do sistema, garbage colector e interop;
- A camada HAL é responsável por gerenciar os drives fazendo com que o hardware execute as operações solicitadas pela CLR, sendo responsável por acionar os registradores.
O Emulador e a primeira aplicação
O NETMF inclui um emulador que permite a execução de uma aplicação NETMF diretamente no PC. O emulador pode ser usado para desenvolvimento sem precisar de um hardware, mas mesmo tendo um hardware o emulador otimiza a utilização dos recursos. O emulador conta com botões , tela LCD, simulação de entradas e saídas, etc.
Para o primeiro projeto, vamos usar um emulador para rodar uma aplicação simples. Abra o Visual C# 2010 Express Edition e escolha File-> New Project. Agora selecione o item Micro Framwork para exibir os templates instalados conforme a figura abaixo:
Em seguida, selecione o template Console Application e informe o nome MF_Demo:
O projeto tem somente o arquivo C#, chamado Program.cs, que contém poucas linhas de código. O arquivo é mostrado na janela “Solution Explorer”. Se o Windows não está mostrando isso, então abra-o clicando em “View> Solution Explorer” no menu.
Como é nossa primeira aplicação vamos fazer algo bem simples. Altere o código conforme mostrado na imagem abaixo:
Antes de executar o emulador, vamos garantir que temos tudo configurado corretamente. Clique em Project-> Properties no menu e na janela que aparecer, você irá selecionar o emulador. Na esquerda, selecione .NET Micro framework e certifique-se que seja parecida com o que mostra a imagem abaixo:
Agora podemos executá-lo pressionando o F5. Só que dessa forma, tudo ocorrerá muito rápido e não teremos tempo de ver quase nada, por isso, vamos depurar o código. Depurar significa que você pode ver o passo-a-passo através do código do programa. Esta é uma das principais características do NETMF.
Pressione F11 em vez de F5, pois isso vai acompanhar as instruções, ao invés de apenas executar o programa. Isto irá disparar o aplicativo no emulador e parar na primeira linha de código. Isto é indicado pela setinha amarela.
E pressionando F11 novamente, a aplicação será encerrada.
Podemos ainda usar um breakpoint para que a execução pare em uma linha desejada. Para isso, clique duas vezes na margem esquerda do código para que um botão vermelho apareça, indicando o breakpoint.
Antes de utilizar um hardware, garanta que esteja conectado corretamente. O SDK NETMF vem com um programa chamado Microsoft MFDeploy. E existem diversas maneiras de usar MFDeploy, inclusive enviar um ping no hardware.
Logo abaixo vemos a tela inicial do MFDeploy em execução:
Como não tem um hardware conectado não há como prosseguir na utilização do MFDeploy. Além disso, o NETMF dá suporte ao DPWS (Devices Profile for Web Services), que oferece um padrão para disponibilizar Web Services permitindo assim a troca de mensagens entre dispositivos através da rede.
Dessa rápida introdução podemos perceber o NETMF torna muito mais fácil o desenvolvimento para aplicações embarcadas. E existe muito mais do que apresentamos aqui. Se você tem interesse em desenvolver aplicações para dispositivos embarcados sugiro que consulte o vasto material que pode ser encontrado na web. Nas referências sugiro um guia para iniciantes em português. Bom estudo!
Eu sei, é apenas C# e .NET Micro Framework, mas eu gosto!!
Referências:
http://meu.imasters.com.br/autor/publicacao/editor/
*http://www.microsoft.com/netmf/default.mspx
*API de Referência: http://msdn.microsoft.com/en-us/library/ee435793.aspx
*Understanding .NET Micro Framework Architecture
*Guia para iniciantes em C# .NET Micro Framework
*Conectando dispositivos usando o .NET Micro Framework