Usando Visual Studio (VS) para desenvolver em C/C++ para Raspberry Pi

Visual Studio

Objetivo

 

Neste tutorial veremos como usuários Windows podem desenvolver programas em C/C++ para Raspberry Pi de forma fácil e rápida usando o Visual Studio da Microsoft (VS).

 

 

Sumário

 

  • Introdução;
  • Hardware necessário;
  • Acesso SSH à Rapberry Pi;
  • Programas necessários;
  • Primeira execução do Visual Studio com VisualGDB;
  • Editando, compilando e rodando o programa.

 

 

Introdução

 

O VS é uma IDE (ambiente integrado de desenvolvimento) muito poderosa e versátil, desenvolvida pela Microsoft, que nos últimos anos evoluiu muito, sendo hoje muito utilizada no desenvolvimento de aplicações Windows, Windows Phone, Web, e agora com o Windows 10, até mesmo para IoT (Internet das coisas).

 

Com o lançamento da versão Community Edition, gratuita e com recursos similares à antiga versão Professional, vários desenvolvedores que não a usavam devido ao alto custo passaram a desenvolver aplicações usando a mesma.

 

Mais. Graças a plugins (da Microsoft ou de terceiros, grátis ou pagos) temos como desenvolver em C, C++, C#, F#, VisualScript, Python, web pages, web services, entre outras linguagens, e até mesmo desenvolver aplicações (visuais ou não) para sistemas Linux.

 

Esse é o foco deste artigo.

 

 

Hardware Necessário

 

Como nosso objetivo é desenvolver em C/C++ para a Raspberry Pi é claro que temos de ter à mão uma Raspberry Pi, com o sistema RaspBian já gravado no cartão SD.

 

Inicialmente vamos usar a placa pura e simples, com a distribuição Raspbian básica, sem adaptadores Wi-Fi e sem monitor, teclado e mouse.

 

 

Número IP, acesso SSH (via putty ou similar) e senha de root

 

  1. Número IP da placa: Caso ainda não tenha o número IP de sua placa na rede, você deve providenciar uma conexão cabeada a um roteador, e ter acesso à configuração do mesmo. Geralmente após o boot da Raspberry Pi o roteador vai selecionar um número IP para a mesma, que poderá ser visto na configuração "DHCP Clients" ou similar;
  2. Acesso SSH: De posse do IP da placa, faça uma conexão SSH com ela e ajuste a senha do usuário root (caso ainda não tenha feito). Este passo é muito importante pois o acesso root é necessário para ter acesso ao hardware da placa.

 

Importante: A instalação do Raspbian no cartão SD, criação do usuário root, conexão de rede, uso do Putty ou similar, não são foco deste artigo.

 

 

Programas necessários

 

1) Visual Studio Community Edition (*)

 

Caso não tenha o Visual Studio Community Edition (ou qualquer versão comercial) em sua máquina, proceda com o seu download e instalação.

 

Download: https://go.microsoft.com/fwlink/?LinkId=532606&clcid=0x409

 

Baixe o arquivo "vs_community.exe", tamanho estimado de 2,9 MB, em um local de sua preferência. Caso o site acima não funcione no momento que tentar fazer o download, basta procurar na internet.

 

(*) O Visual Studio Express não aceita a instalação do Visual GDB.

 

Instalação: Execute o arquivo no modo padrão e tenha paciência...muita paciência.

 

A instalação deve levar de 30 a 60 minutos (ou mais) numa conexão de 10-20 MB/s.

 

 

2) VisualGDB

 

O VisualGDB é um plugin para o VS que permite desenvolver:

  • Aplicações embedded (STM32, MSP430, CC3200, Freescale Kinets, NXP,...);
  • Android;
  • Linux (Raspberry Pi, Beaglebone Black, Cubieboard, Ubuntu,...).

 

Embora seja uma ferramenta paga, posso garantir que vale cada centavo gasto. A versão para Linux engloba a versão Embedded e custa US$ 109,00.

 

Para nosso estudo instalaremos a versão 5, trial por 30 dias. Tenho certeza de que após usa-la por esse tempo você vai se apaixonar pela ferramenta.

 

Download: http://sysprogs.com/files/visualgdb/VisualGDB-5.0r3-trial.msi

 

Baixe o arquivo, tamanho estimado de 8 MBytes, em um local de sua preferência.

 

Instalação:

 

1 - Execute o arquivo e selecione o modo CUSTOM;

2 - Expanda o item 'VisualGDB' e selecione a opção 'Classic Edition', clicando na seta para baixo, e marque "Entire feature will be installed on local hard drive";

 Visual Studio: Instalação do visualGDB

 

3 - Selecione a opção 'Android Edition', clicando na seta para baixo, e marque "Entire feature will be unavailable"

 Visual Studio: Android Edition

 

4 - Clique em Next e finalize a instalação.

 

 

Primeiro uso do Visual Studio com o VisualGDB

 

Como ainda não usamos o Visual Studio + VisualGDB para comunicar com a Raspberry Pi, o compilador GCC e a conexão SSH via Visual Studio ainda não estão ajustados.

 

 Vamos fazer um projeto simples com compilação remota (isto é, compilando na Raspberry Pi) apenas para configurar a conexão SSH.

 

Importante: Neste momento você já tem de ter o número IP da sua Raspberry Pi (via roteador).

 

  • Inicie o VS.

 

  • Se for sua primeira vez aparecerá uma tela de boas vindas. Se desejar clique em Not now, maybe later, ou faça um cadastro na Microsoft para login.

 

Visual Studio-login

 

  • Na janela seguinte clique em "Start Visual Studio".

 

  • Aparecerá então a janela de boas vindas do Visual GDB.

 Visual Studio: boas vindas

 

  • Clique em "Start Trial".

 

Visual Studio-Trial

 

  • Clique em "OK' e na janela seguinte em "Continue trial".

 

  • Estas janelas aparecem apenas na primeira vez que iniciamos o Visual Studio com o VisualGDB e não aparecerão nas próximas vezes.

 

  • Teremos então a tela inicial do Visual Studio:

 

Visual Studio: Tela Inicial

 

  • Selecione na barra de menu: File > New > Project (atalho CTRL+SHIFT+N).

 

Visual Studio: Novo Projeto

 

  • Surgirá a janela para criação do novo projeto:

 

Visual Studio: Tipo do Projeto

 

  • Selecione na coluna da esquerda VisualGDB e na direita Linux Project Wizard conforme destaques em azul na figura acima e dê um clique no botão "Browse" para escolher a pasta de destino.

 

Em meu caso criei anteriormente a pasta "C:\Workspace_Curso_PI" e a selecionei no menu. Você pode escolher qualquer outra pasta de sua preferência!

 

(Aparência da janela "Project Location" após criação da pasta de destino)

 Visual Studio-Pasta Projeto

 

  • Ao clicar em Selecionar pasta você retornará à janela anterior, mas agora a pasta de destino será a que você escolheu.

 

  • Antes de continuar indique um nome para o projeto. No exemplo abaixo escolhi 00-INICIAL. Quando finalizar clique em "OK".

 

Visual Studio: Nome Projeto

 

  • Na janela a seguir apenas clique em "Next >".

 

Visual Studio: Config do Projeto

 

  • Na próxima janela (abaixo) selecione o primeiro item: Build the project under Linux over network e no campo "Remote Computer" clique na seta para baixo e selecione Create a new SSH connection.

 

Visual Studio: SSH

 

  • Aparecerá a janela Create a new SSH connection:

 

Visual Studio: SSH config

 

  • Em host name, coloque o número IP da sua placa.

 

  • Em User name, coloque root.

 

  • Em Authentication Method, selecione Password e coloque a sua senha de root. Importante: Para ter acesso ao hardware o acesso root é obrigatório, por isso que no início foi dito que você deveria se conectar à placa via putty ou similar, fazer o login e ajustar a senha de root.

 

  • Marque o item Setup public key....

 

  • Clique em "Create".

 

  • Neste ponto o VisualGDB vai levantar os dados da conexão e sugerir que sejam salvos. Clique em "Save" e prossiga.

 

Visual Studio: SSHsave

 

  • A conexão será iniciada (janela abaixo) e se não ocorrerem erros, a placa ja estará conectada ao Visual Studio + VisualGDB.

 

Visual Studio: Autenticação

 

  • Caso tudo corra bem teremos a janela abaixo, com as seguintes informações:

 

Visual Studio: SSH

 

  • Build the project under Linux over network selecionado.
    • Endereço do "Remote Computer": [email protected] (SSH).
    • Remote Toolchain: Como a compilação será realizada na Raspberry Pi e a mesma já tem na instalação padrão do Raspbian o compilador GCC, temos indicado Default GCC toolchain on 192.168.1.104.

 

  • Observe o desenho ilustrativo. O computador à esquerda é a estação de trabalho, e o logo indica máquina Windows. O computador da direita é o alvo (target) para o qual o programa será desenvolvido e

onde será executado. Observe o logo do Linux. O martelo indica onde a compilação será executada.

 

  • Ao clicar em "Next" o VisualGDB vai verificar a consistência dos arquivos e pastas, pois o mesmo mantém uma cópia do ambiente, dos fontes, das bibliotecas necessárias.

 

Visual Studio: verificando

 

Caso algum arquivo ou pasta não esteja igual, por exemplo uma variável de ambiente ou um patch, o VisualGDB vai sugerir a correção automática.

 

Visual Studio-correção

 

  • Apenas clique em "OK" e pronto.

 

  • Será apresentada a janela final do projeto com todas as informações sobre o mesmo.
    • Local de armazenamento no seu computador;
    • Seleção de que a cada compilação os arquivos presentes na Raspberry Pi (*.cpp, *.h, ....) serão copiados para o PC;
    • Mapa indicando o caminho do PC para a Raspberry Pi.

 

Visual Studio: mapa

 

  • Finalmente, clique em "Finish".

 

  • A criação do projeto será finalizada, e teremos a janela principal do Visual Studio de volta com o projeto pronto para compilação e debug.

 

Visual Studio: Finish

 

 

Editando o fonte, compilando, fazendo o degub via SSH, e observando no Visual Studio o andamento do programa      

 

  • Dê um clique no arquivo indicado (00-INICIAL.cpp) para abri-lo na janela de edição.

 

Visual Studio: INICIAL

 

Visual Studio: Código gerado

 

Nesta janela temos o programa padrão gerado pelo VisualGDB. É uma versão do famoso "Hello World", onde ao rodar o programa a mensagem será mostrada na janela de debug.

 

  • Edite o programa para ficar assim:

 

Visual Studio: coding

 

  • Agora selecione no menu: Build > Build Solution (Atalho: CTRL+SHIFT+B).

 

Visual Studio: Build

 

A compilação terá início....

 

Visual Studio-inicio compilação

 

  • E ao final teremos um resumo do processo e a indicação de que tudo correu bem:

 

Visual Studio: Compilação com sucesso

 

  • Volte para a janela do editor, e na coluna cinza (lado esquerda), dê 1 clique na linha do comando printf.

 

  • Veja que aparecerá um círculo vermelho na linha selecionada.

 

  • Este círculo indica um "Breakpoint", ou ponto de parada.

 

Quando iniciarmos a execução do programa (esta execução ocorre na Raspberry Pi), o mesmo vai rodar até encontrar o 'breakpoint', então a execução para e o controle volta ao Visual Studio.

 

Visual Studio: Breakpoint

 

  • Executando o programa...

 

Vamos agora dar o comando para que o programa seja executado. Dê um clique na seta verde.

 

Visual Studio: Executando o programa

 

  • O programa será executado na Raspberry Pi e ao encontrar o breakpoint retornará ao Visual Studio, com as seguintes informações na janela do editor:

 

Visual Studio: breakpoint parando a execução

 

A seta amarela indica qual a próxima linha que será executada.

 

  • Na janela "Visual GDB Remote console" podemos ver o resultado da execução do programa. Em nosso exemplo, o nome da placa Raspberry Pi é pi02.

 

30-Visual Studio-Visual GDB Remote console

 

  • Podemos agora clicar em Continue (1) ou parar o debugger (2) e voltar ao editor.

 

31-Visual Studio-debugger opções

 

 

Cross-compilation e bibliotecas de acesso ao hardware

 

Em um próximo artigo veremos:

  1. Como acessar os pinos de GPIO da placa usando a biblioteca WiringPi;
  2. Como fazer a compilação local (no PC) e rodar na Raspberry Pi;
  3. Uso das janelas de Watch e breakpoints.
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.

3
Deixe um comentário

avatar
 
2 Comment threads
1 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
3 Comment authors
Vidal Pereira da Silva JuniorCleiton BuenoCiro Peixoto Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Cleiton Bueno
Visitante

Bacana o artigo Vidal.

Você que é familiarizado com a ferramenta, tirando ser o Visual Studio e abordando apenas o VisualGDB o que você diria ser um fator peso comparado ao Remote System Explorer (RSE) do Eclipse?

Creio que deva ter um truque na manga do VisualGDB para justificar o valor.

Vidal Pereira da Silva Junior
Visitante

Ola Cleiton
Na verdade o valor inclui um plugin para ARM e linux, logo voce pode usar a mesma interface para ARM (eu uso para o STM32), rPi, BBB, Cubieboard, aplicações desktop e linha de comando linux, ....
Sem contar que, embora lendo o artigo pareca algo complicado, posso dizer o seguinte: em poucos minutos após a instalação ja estava brincando com a BBB e a rPi de forma tão simples que nem acreditei.
Mais. Agora ja tem suporte para a Intel Edison
Até
Vidal

Ciro Peixoto
Visitante
Ciro Peixoto

OK ! Bom artigo bem explicado etc...

Mas como tudo da Microsoft tem até que fazer "macumba" pra fazer isto funcionar... e depois ainda tem que pagar!!!
Fico sem dúvida com open source...

Mas, parabens pelo artigo.