Neste tutorial veremos como utilizar o Visual Studio da Microsoft (VS) para desenvolver programas para o Raspberry PI usando a linguagem C/C++.
por Vidal Pereira da Silva Junior - https://www.vidal.com.br/
Introdução
O Visual Studio é uma IDE (ambiente integrado de desenvolvimento) muito poderosa e versátil, desenvolvida pela Microsoft, que nos últimos anos evolui muito, sendo hoje muito utilizada no desenvolvimento de aplicações Windows, Windows Phone, Web, a 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 a 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.
Hardware Necessário
Como nosso objetivo é desenvolver em C/C++ para a Raspberry Pi (abreviada por rPi) é claro que temos de ter a mão uma Raspberry Pi, com o sistema RaspBian ja 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
A) 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 a 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.
B) Acesso SSH: De posse do IP da placa, faça uma conexão SSH com a placa 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 (O Visual Studio Express não aceita a instalação do Visual GDB)
Caso não tenha o Visual Studio Community Edition (ou qualquer versão comercial) em sua máquina, proceda ao download e instalação do "Visual Studio 2015 Community Edition".
Baixe o arquivo "vs_community.exe", tamanho estimado de 2,9 MBytes, em um local de sua preferência, caso o site acima não esteja disponível no momento, basta procurar no Google algum outro lugar que tenha o arquivo.
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 MBytes/s.
2) VisualGDB
O VisualGDB é um plugin para o Visual Studio 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 pago.
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 usá-la por 30 dias você vai se apaixonar pela ferramenta.
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 + VGDB para comunicar com a Raspberry Pi, o compilador GCC e a conexão SSH via Visual Studio ainda não estão ajustadas.
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 Visual Studio
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 VGDB 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 de um clique no botão "Browse" para escolher a pasta de destino.
Em meu caso selecionei o drive C: (raiz) criei e então selecionei a pasta "Workspace_Curso_PI". 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 retornaremos na 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 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:

1. Em host name, coloque o número IP da sua placa
2. Em User name, coloque root
3. 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 a placa via putty ou similar, fazer o login e ajustar a senha de root.
4. Marque o item Setup public key....
5. Clique em "Create"
Neste ponto o VGDB 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 já estará conectada ao Visual Studio + VGDB

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

1. Build the project under Linux over network selecionado
2. Endereço do "Remote Computer" no exemplo,
3. 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
4. Observe o desenho ilustrativo:
- O computador a 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, compilando, fazendo o degub via SSH e observando o andamento do programa
De 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 VGDB.
É 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á inicio....

No 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), de 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, dando um clique na seta verde.

O programa será executado na Raspberry Pi e ao encontrar o breakpoint, retornará ao Visual Studio, com s seguinte informação 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.
