Hello Windows Embedded (Compact) World!

Windows Embedded Compact

Este artigo foi originalmente publicado no site O mundo do Windows Embedded por Guilherme Fernandes.

 

Dando continuidade aos meus posts a respeito de Windows Embedded Compact, finalmente vamos fazer um Hello World! A coisa principal que eu gosto de mostrar nesta etapa, e talvez a principal mensagem deste post, é desmistificar e mostrar como pode ser simples desenvolver sistemas embarcados, de arquitetura ARM (para deixar o cenário mais complicado), utilizando Windows Embedded Compact.

 

 

O Hardware

 

Para este tutorial utilizarei um Computador em Módulo (CoM) Toradex Colibri VF50, se você quiser saber um pouco mais sobre computadores em módulo, recomendo a leitura deste artigo que escrevi para o portal embarcados: Fast Time to Market com Computadores em Módulo. O Hardware apresentado na figura 1 é um CoM que tem como coração o System on Chip (SoC) Vybrid VF50 da Freescale. Este pequeno processador é um ARM Cortex-A5 com pico de processamento em 400MHz. Além do processador o CoM possui 128MB de RAM e mais 128MB de memória NAND. O computador em módulo está conectado a uma placa base (Carrier Board) e a um Display TFT 7’’.

 

Toradex Colibri VF50
Figura 1: Hardware utilizado, Toradex Colibri VF50 com placa de suporte Iris e Display de 7’’

 

No site de suporte a desenvolvimento da Toradex a empresa disponibiliza imagens para o Windows Compact Embedded 6.0, Windows Embedded Compact 7.0 e o Windows Embedded Compact 2013. Além destas, a empresa também disponibiliza os BSPs e os Workspaces para Platform Builder para todas as versões. Neste exemplo utilizaremos o Windows Embedded Compact 7.0. Em um post futuro vamos utilizar este BSP para criar nossa própria imagem do Windows EC.

 

 

O Ambiente de desenvolvimento para Windows Embedded Compact

 

O meu ambiente de desenvolvimento é um Notebook tradicional com Windows 7 Pro e com o Visual Studio 2008 Professional instalado. Além disso é necessária a instalação das seguintes atualizações para VS2008:

 

Além as devidas instalações, será necessária a instalação de um SDK, note que as instalações que comento neste post são para simples desenvolvimento de aplicação para Windows Embedded Compact e não para customização ou programação do S.O. Por isso não precisamos neste momento instalar o Platform Builder, conforme o artigo da Vivian em Windows Embedded Compact. Essa é mais uma das vantagens do Windows EC, pode-se separar desenvolvimento de aplicação do desenvolvimento do S.O. Justamente para isso serve o SDK que comentei no início do artigo. O SDK é o conjunto de informações e instruções que o compilador do Visual Studio precisa saber para poder compilar e fazer o debug da aplicação para um S.O. diferente do próprio host (cross-compiling). Note que no meu exemplo, até mesmo a arquitetura de computador é diferente!!

 

Mais uma vez a Toradex oferece em seu site de apoio ao desenvolvedor os SDKs para cada versão do Windows EC e as instruções para instalação. Se você estiver compilando sua própria versão você deverá criar seu próprio SDK para fornecer para os desenvolvedores de aplicação (esse é assunto para um post futuro!).

 

 

Tudo pronto, vamos lá!

 

Abra o seu VS2008 e inicie um novo projeto em VC++, note que após realizar as instalações necessárias você passa a ter a opção de um projeto para Smart Device. Vou escolher a opção Win32 Smart Device Project e colocar o nome do projeto para então avançar (Figura 2).

 

Smart Device no VS2008
Figura 2: Seleção de projeto para Smart Device no VS2008

 

O VS2008 abre um Wizard para auxiliar sua seleção no restante do projeto, na primeira tela um simples next é suficiente. Na segunda tela (figura 3) o Wizard solicita que você selecione para quais plataformas sua aplicação será criada, note que você pode selecionar mais de uma. Conforme explicado acima selecione o SDK correto conforme a figura.

 

Novo projeto para Windows CE
Figura 3: Wizard que guia a configuração de um novo projeto para Windows CE

 

Nesta última tela o sistema solicita algumas informações adicionais para criação do projeto, figura 4. Para simplificar, vou apenas criar um Console Application, clique em Finish e veja o resultado. O VS2008 cria o projeto para você.

 

Console Application
Figura 4: Definição de uma console Application

 

Escrevi um pequeno código em nosso programa recém criado para realizar um teste de Debug e depois compilei a solução (Build > Build Solution). Veja o resultado na figura 5.

 

Hello Word programado em C no Visual Studio
Figura 5: Exemplo Hello Word programado em C no Visual Studio

 

O próximo passo é conectar o dispositivo ao seu host de desenvolvimento. Farei isso através da porta USB OTG presente na Carrier Board do meu sistema embarcado. Ao realizar esta ação o Windows abre o Windows Mobile Center e conecta ao módulo, repare na figura 6 que pelo próprio Windows Explorer podemos agora acessar a memória RAM e Flash do sistema embarcado que está conectado, tudo isso quem fez pra você foi o próprio Windows EC!

 

Windows CE conectado ao Host de desenvolvimento através do Windows Mobile Device Center
Figura 6: Windows CE conectado ao Host de desenvolvimento através do Windows Mobile Device Center

 

Uma vez que o dispositivo estiver conectado, pronto, é sé clicar em Debug > Start Debuging. O VS2008 irá conectar no disposto, transferir e iniciar a aplicação nele e enviar as mensagens de debug diretamente para o seu PC de desenvolvimento, veja as figuras 7 e 8 com o programa rodando no sistema embarcado de testes, um Computador de arquitetura ARM, enquanto você monitora o passo a passo do programa direto no VS2008 em seu PC de desenvolvimento. Simples, fácil e eficiente! Ideal para quem quer produtividade no desenvolvimento de sistemas embarcados!

 

Programa desenvolvido em VS2008 em modo Debug
Figura 7: Sistema Embarcado rodando programa desenvolvido em VS2008 em modo Debug

 

Break Point parando a execução do programa.
Figura 8: Break Point atingido parando a execução do programa.

Até a próxima!

 

 

Saiba mais sobre Windows Embedded Compact

 

As vantagens de usar o Windows Embedded Compact, por Guilherme Fernandes

Hello Windows Embedded (Compact) World!, por Guilherme Fernandes

BeagleBone Black + Windows Embedded Compact, por Marcelo Jo

Desenvolvendo Sistemas Embarcados com Windows Embedded Compact, por Guilherme Fernandes

Placas de desenvolvimento compatíveis com Windows, por Fábio Souza

Outros artigos da série

<< As vantagens de usar o Windows Embedded CompactCustomizando a imagem do Windows Embedded Compact >>
NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Guilherme Fernandes
Mestre em Engenharia Mecatrônica pela Escola de Engenharia de São Carlos (USP) atua como diretor da Toradex Brasil, trabalhando na implantação do escritório de vendas e suporte da empresa para o Brasil. Trabalhou 7 anos como gerente de engenharia de sistemas na área de automação industrial desenvolvendo mais de 300 projetos de máquinas para linhas de montagem e teste de produção para o setor de autopeças.

11
Deixe um comentário

avatar
 
3 Comment threads
8 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
4 Comment authors
Carlos Davi Marques da SilvaCaio PereiraGuilherme FernandesRafael AssakawaConfira as vantagens de usar o Windows Embedded Compact - Embarcados Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Caio Pereira
Visitante
Caio Pereira

Guilherme, muito interessante seu artigo. Os artigos de Windows embarcado são escassos não permitindo ao público conhecer e poder escolher o Windows de acordo com a necessidade. Você tem conhecimento do Windows Compact ou outra versão para embarcado (IMX 6 por exemplo) se já possui drivers para os codecs de vídeo (h264 1080p por exemplo) já estão disponíveis? Esses drivers são pagos a parte? o custo de licenciamento do Windows e desenvolvimento são muito altos?

Guilherme Fernandes
Visitante
Guilherme Fernandes

Prezado Caio, Sim existe para iMX6 Windows Embedded Compact, vide o link a seguir, a Toradex oferece a imagem disponível para download, ela mantém o otimaza a imagem lançando uma atualização a cada 3 meses mais ou menos: http://developer.toradex.com/knowledge-base/apalis-imx6-wince-bring-up Outras empresas também oferecem BSP e outros para Download para iMX6 based hardware: http://www.compulab.co.il/products/computer-on-modules/cm-fx6/#devres Finalmente na página a seguir, temos diversos BSPs disponíveis, inclusive para iMX6: http://www.microsoft.com/windowsembedded/en-us/bspcatalog.aspx Com relação aos CODECs de vídeo, vou precisar pesquisar, na nossa linha (TEGRA) os drivers estão inclusos na imagem padrão, acredito que a abordagem no iMX6 será a mesma. Os custos de desenvolvimento (Aplicação)… Leia mais »

Caio Pereira
Visitante
Caio Pereira

Interessante Guilherme! Vou pesquisar mais à respeito, fiquei bastante decepcionado com o preço do Qt Enterprise e o custo de licenciamento. Para alguns projetos o Windows Embedded Compact pode ser bastante interessante. Obrigado!

Carlos Davi Marques da Silva
Visitante
Davi Marques

Saudações Caio! Poderia compartilhar o preço do Qt Enterprise? Estou procurando uma solução para software embarcado e o Qt parecia o mais promissor.

Caio Pereira
Visitante
Caio Pereira

Olá Davi , sim sem dúvidas o Qt é bem promissor.
O Enterprise ajuda a resolver alguns problemas que temos quando desenvolvemos uma aplicação embarcadas voltada a sistemas touchscreen (Teclado, gerenciamento de conexão, imagem otimizada etc...). Não posso divulgar os valores aqui na lista infelizmente. Mas é interessante ressaltar que o responsável pela América Latina está disposto a negociar o valor da licença e royalties.

Guilherme Fernandes
Visitante
Guilherme Fernandes

Olá Davi e Caio,

O QT é sem dúvida uma ferramenta fantástica! E também roda em Windows CE o que é ainda mais legal. Eu mesmo já fiz algumas brincadeiras nele com Toradex, vejam o link:

http://developer.toradex.com/knowledge-base/getting-started-with-qt

Abraços!

Caio Pereira
Visitante
Caio Pereira

Bacana Guilherme! bem legal!
Aproveitando a thread, tem um keyboard bem interessante para QT com licença LGPL maliit (https://github.com/maliit/) e já tem receita no yocto (Fido 1.8)

Rafael Assakawa
Visitante
Rafael Assakawa

Guilherme, ótimo artigo. Tenho algumas dúvidas referente a essa board e ao Windows Embedded.
O sistema operacional é carregado da NAND ou do cartão SD? A outra dúvida é se eu consigo desenvolver um aplicativo em C# e rodá-lo normalmente no Windows Embedded. Sei que no Windows CE 6.0 é possível, pois eu o utilizo no trabalho, juntamente do .NET Compact Framework, mas a minha dúvida é se esse suporte ainda existe!
Obrigado.

Guilherme Fernandes
Visitante
Guilherme Fernandes

Obrigado Rafael!

O Sistema operacional está na NAND do módulo. Sendo assim não é necessário um SD card para o boot do Windows CE.

Com relação ao C# é tão fácil quanto no CE6. Você só precisa instalar o .NET CF 3.5 no módulo embarcado, desenvolver sua aplicação e debugar online. Pra isso vai utilizar o VS2008.

Na página do fabricante existe uma infinidade de demos e how-to com o Windows CE: http://developer.toradex.com/knowledge-base/getting-started-with-toradex-arm-modules

Abraços!

Guilherme Fernandes
Visitante
Guilherme Fernandes

Rafael, escrevi um artigo sobre como fazer o hello world em C#: http://www.windowsembedded.net.br/programando-aplicacoes-graficas-para-windows-embedded-compact/

trackback

[…] - Hello Windows Embedded (Compact) World!, por Guilherme Fernandes […]