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 >>
Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

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

Software » Hello Windows Embedded (Compact) World!
Comentários:
Notificações
Notificar
guest
12 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Wagner Viana
Wagner Viana
12/08/2020 15:21

Boa tarde! Fiz uma aplicação em c# 2003 e gerei os CABs. Minha plataforma é Windows CE .net 4.2 e de um OEM. Minha aplicação exige a instalação do .NET compact framework 3.5 e roda normalmente. SOmete após o restart do sistema, perco a instalação do .net framwork. Alguém sabe uma maneira de deixar essa instalação persistente?

Caio Pereira
Caio Pereira
15/05/2015 14:58

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
Guilherme Fernandes
Reply to  Caio Pereira
19/05/2015 09:15

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
Caio Pereira
Reply to  Guilherme Fernandes
20/05/2015 11:44

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
Davi Marques
Reply to  Caio Pereira
08/06/2015 13:20

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
Caio Pereira
Reply to  Davi Marques
10/06/2015 09:04

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
Guilherme Fernandes
Reply to  Caio Pereira
10/06/2015 20:33

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
Caio Pereira
Reply to  Guilherme Fernandes
11/06/2015 09:32

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
Rafael Assakawa
15/05/2015 09:39

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
Guilherme Fernandes
Reply to  Rafael Assakawa
15/05/2015 11:18

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
Guilherme Fernandes
Reply to  Rafael Assakawa
28/05/2015 18:08

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
15/05/2015 00:05

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

Talvez você goste:

Séries



Outros da Série

Menu