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
- 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;
- 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: https://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“;
3 – Selecione a opção ‘Android Edition’, clicando na seta para baixo, e marque “Entire feature will be unavailable“
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.
- Na janela seguinte clique em “Start Visual Studio”.
- Aparecerá então a janela de boas vindas do Visual GDB.
- Clique em “Start 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:
- Selecione na barra de menu: File > New > Project (atalho CTRL+SHIFT+N).
- Surgirá a janela para criação do novo 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)
- 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”.
- Na janela a seguir apenas clique em “Next >“.
- 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.
- Aparecerá a janela Create a new SSH connection:
- 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.
- A conexão será iniciada (janela abaixo) e se não ocorrerem erros, a placa ja estará conectada ao Visual Studio + VisualGDB.
- Caso tudo corra bem teremos a janela abaixo, com as seguintes informações:
- Build the project under Linux over network selecionado.
- Endereço do “Remote Computer”: root@192.168.1.104 (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.
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.
- 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.
- 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.
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.
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:
- Agora selecione no menu: Build > Build Solution (Atalho: CTRL+SHIFT+B).
A compilação terá início….
- E ao final teremos um resumo do processo e a indicação de que tudo correu bem:
- 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.
- Executando o programa…
Vamos agora dar o comando para que o programa seja executado. Dê um clique na seta verde.
- 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:
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.
- Podemos agora clicar em Continue (1) ou parar o debugger (2) e voltar ao editor.
Cross-compilation e bibliotecas de acesso ao hardware
Em um próximo artigo veremos:
- Como acessar os pinos de GPIO da placa usando a biblioteca WiringPi;
- Como fazer a compilação local (no PC) e rodar na Raspberry Pi;
- Uso das janelas de Watch e breakpoints.









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