Introduction: Desenvolvendo Aplicações Remotamente Para a Dragonboard 410c Usando IDE Eclipse
O objetivo deste documento é mostrar as etapas necessárias para configurar o ambiente de desenvolvimento, de modo que o HostPC (Computador / Notebook), através do IDE Eclipse compile os códigos e exporte para o Alvo (Dragonboard 410c) via SSH.
Step 1: Pré Requisitos:
Hardware
- (1) Computador / Notebook (HostPC)
- (1) Dragonboard 410c (Alvo)
Software
Infra estrutura de rede
- Rede WiFi disponível
- Permissão para comunicação SSH na rede
Step 2: Ambiente De Desenvolvimento:
Mesmo sendo possível desenvolver softwares de forma nativa, diretamente na Dragonboard 410c (Plataforma Alvo), recomenda-se usar um Computador / Notebook (HostPC) para o desenvolvimento de suas aplicações.
Para esse guia estamos assumindo que Host está usando sistema operacional Linux. No entanto, esse desenvolvimento pode ser feito em Microsoft Windows e Apple MacOS.
Step 3: Toolchain:
Toolchain é um conjunto de ferramentas de programação usadas para gerar binários de softwares. Os elementos de uma Toolchain são:
- Assembler
- Compiler
- Linker
- Debugger
- Runtime Libraries
- Utilities
Tipos de Toolchain:
- Nativo
Compilação para a mesma arquitetura onde está sendo gerado o binário da aplicação.
- Cross Compile
Cross compile é um método utilizado para gerar executáveis de software para diferentes arquiteturas de computadores. É usado quando a plataforma de desenvolvimento (Host) tem arquitetura diferente do alvo.
Step 4: Configurando O Cross Compile No HostPC:
A Dragonboard 410c usa arquitetura ARM e para esse exemplo estamos considerando que o HostPC utiliza arquitetura arquitetura x86 ou x64. Como vimos na sessão anterior, Cross Compile é um método utilizado para
gerar executáveis de software para diferentes arquiteturas de computadores.
Download
- HostPC Linux 32 Bits: https://releases.linaro.org/components/toolchain/binaries/4.9-2016.02/armeb-linux-gnueabihf/gcc-linaro-4.9-2016.02-x86_64_armeb-linux-gnueabihf.tar.xz
- HostPC Linux 64 bits: https://releases.linaro.org/components/toolchain/binaries/4.9-2016.02/aarch64-linux-gnu/gcc-linaro-4.9-2016.02-x86_64_aarch64-linux-gnu.tar.xz
Instalação
Após a conclusão do download do cross-compile, o próximo passo é extrair os arquivos para algum diretório do sistema operacional. Para esse exemplo, estamos extraindo para o diretório "/opt":
tar xf gcc-linaro-4.9-2016.02-x86_64_aarch64-linux-gnu.tar.xz -C /opt
Feito isso, temos o cross-compile configurado no HostPC :)
Step 5: IDE Eclipse:
Eclipse é um IDE - Integrated Development Environment, ambiente de desenvolvimento integrado, que permite o desenvolvimento de softwares usando diferentes linguagens de programação.
Download e Instalação
Acesse http://www.eclipse.org e clique no botão Download, localizado no canto superior do site, em seguida faça download da versão compatível com seu host (computador/notebook).
Ao iniciar a instalação, uma interface GUI com diferentes projetos será iniciada. Selecione a opção: Eclipse IDE for C/C++ Developers.
Step 6: Criando Uma Aplicação E Transferindo Para Dragonboard 410c Via IDE Eclipse E SSH:
Os próximos passos são as etapas necessárias para criar um projeto de software usando Eclipse e portar esse código na Dragonboard 410c via protocolo SSH.
Primeiro passo é abrir o Eclipse:
./eclipse
Em seguida iremos criar um projeto ARM:
- File -> New -> C-Project
E preencher os campos:
- Project name: helloworld
- Project type: Hello World ANSI C Project
- Toolchains: Cross GCC
Step 7: Configurações Básicas Da Aplicação:
As configurações básicas da aplicação são as seguintes informações:
- Author
- Copyright notice
- Hello world greeting
- Source
Clique em Next.
Step 8: Configuração De Deploy:
Para a configuração de Deploy vamos selecionar as opções Debug e Release:
- Selecione a opção Select All
Em seguida, clique em Next.
Step 9: Configuração Do Cross Compile:
A configuração do cross-compile no Eclipse consiste em setar as informações de Cross compiler prefix e o caminho do Toolchain.
- Cross Compiler Prefix
HostPC 32 bits:arm-linux-gnueabihf-
HostPC 64 bits:aarch64-linux-gnu-
- Path
- /opt/gcc-linaro-4.9-2016.02-x86_64_aarch64-linux-gnu/bin
Em seguida, clique em Next.
Step 10: Compilação Do Projeto:
Para compilar o projeto clique com botão direito na pasta do projeto, em seguida selecione a opção Build Project.
Step 11: Criando Conexão Com a Dragonboard (Parte 1)
Clique com botão direito na pasta do projeto e selecione a opção Run configurations.
Step 12: Criando Conexão Com a Dragonboard (Parte 2)
Dê dois cliques na opção C/C++ Remote Application, resultando na adição de uma nova configuração de projeto remoto.
Em seguida, em Connection selecione a opção Remote Host.
Step 13: Criando Conexão Com a Dragonboard (Parte 3)
Na sessão anterior criamos uma nova conexão, o próximo passo é configurar os parâmetros de conexão SSH:
- Host
- User
- Password based autentication
Step 14: Criando Conexão Com a Dragonboard (Parte 4)
Nessa sessão, vamos configurar o local de armazenamento dos códigos compilados. Essa configuração é feita quando clicamos na botão Browser.
Após clicar botão Browser, selecione o diretório onde deseja exportar os binários gerados.
Step 15: Executando a Aplicação Na Dragonboard 410c Via Eclipse
Agora com tudo configurado, podemos executar o projeto remotamente, clicando em Run.
Step 16: Resultado Da Compilação No Eclipse
O resultado no Eclipse é:
Last login: Fri Nov 25 18:24:20 2016 from 192.168.0.7 /home/linaro/Documents/helloworld;exit linaro@linaro-alip:~$/home/linaro/Documents/helloworld;exit !!! Hello World!!! logout
Step 17: Resultado Da Compilação Na Dragonboard 410c
Nas configurações da conexão entre o Eclipse (HostPC) e a Dragonboard 410c foi definido um diretório para armazenar os códigos binários gerados. Acesse esse diretório:
linaro@linaro-alip:~$ cd /home/linaro/Documents/
Em seguida, dê permissão de execução para o binário gerado:
linaro@linaro-alip:~$ chmod u+x helloworld
Execute o binário:
linaro@linaro-alip:~$ ./helloworld
!!! Hello World!!!