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.
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.

Comentários:
Notificações
Notificar
guest
3 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Cleiton Bueno
28/09/2015 12:40

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
Reply to  Cleiton Bueno
14/10/2015 21:23

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
Ciro Peixoto
28/09/2015 12:00

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.

Talvez você goste:

Séries

Menu