C #  - Apresentando o .NET Micro Framework (NETMF)


Se você pretende desenvolver para dispositivos embarcados 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 que você crie 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 desenvolvida nesta plataforma necessitam de poucos recursos de hardware sendo portanto uma plataforma ideal para o desenvolvimento para dispositivos pequenos como relógios, displays eletrônicos, sensores, GPS, mídias digitais, etc.

Vantagens do .NET Micro Framework para desenvolvimento em dispositivos embarcados:

1. Roda no Microsoft Visual C# Express que é grátis e tem uma IDE de alta performance;
2. .NET Micro Framework é gratuito e open-source;
3. Seu código irá rodar em todos os dispositivos com poucas modificações;
4. Capacidade de debug completo (Breakpoints, execução passo a passo, variáveis...etc.);
5. Tem sido testado em muitos produtos comerciais de forma que a qualidade foi garantida;
6. Inclui muitos drivers (SPI, UART , I2C...etc.);
7. Não há necessidade de datasheets do processador graças ao padrão do Framework;
8. 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:

Configurando o sistema

Antes de iniciar, temos que configurar o PC com o  software necessário. Para isso, vamos primeiro fazer o download e instalar o Visual C# Express 2010 ( Funciona também no Microsoft Visual Studio 2008 SP1 (C# tem que estar instalado) ou Microsoft Visual C# 2008 Express Edition com SP1):  http://www.microsoft.com/express/vcsharp/

A seguir faça o download e instale NET Micro Framework 4.1 SDK (não o kit de portabilidade) : .NET Micro Framework 4.1 SDK

Obs: Se o link acima não funcionar, procurar ".NET Micro Framework 4.1 SDK"

Por fim, instale o SDK GHI NETMF. Você pode obtê-lo aqui: http://www.tinyclr.com/dl/

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 nosso primeiro projeto, vamos usar um emulador para rodar uma aplicação simples.

Abra o Visual C# 2010 Express Edition e selecione o menu FIle-> New Project;

Selecione o item Micro Framwork para exibir os templates instalados conforme a figura abaixo;

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 você pode abri-lo clicando em "View> Solution Explorer" no menu.

Como é nossa primeira aplicação vamos fazer algo bem simples. Altere o código acima conforme mostrado abaixo:

Agora vamos executar o emulador mas antes vamos garantir que temos tudo configurado corretamente.

Clique em Project-> Properties no menu. Na janela que aparecer, você irá selecionar o emulador. Na esquerda, selecione .NET Micro framework e certifique-se da janela parecida com a abaixo.

Agora vamos executar e podemos fazer isso pressionando F5 , mas se fizermos isso , tudo ocorrerá tão rápido que 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 então a tecla F11 em vez de F5, que 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 seta amarela

Pressionando F11 novamente a aplicação será encerrada.

Podemos usar um beakpoint 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, podemos garantir que esteja conectado corretamente. O SDK NETMF vem com um programa chamado Microsoft MFDeploy. Existem diversas maneiras de usar MFDeploy inclusiva enviar um Ping no Hardware.

Abaixo vemos a tela inicial do MFDeploy em execução:

Como não tenho 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 percebemos que o NETMF torna muito mais fácil o desenvolvimento para aplicações embarcadas.

Existe muito mais do que apresentamos aqui para ser estudado sobre o NETMF e, 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 existe um guia para iniciantes em português: bom estudo.

Eu sei é apenas C# e .NET Micro Framework, mas eu gosto...

Referências:

José Carlos Macoratti