Introduction: Desenvolvendo Aplicações Remotamente Para a Dragonboard 410c Usando IDE Eclipse

About: Frederico Martins Pedroso Junior - Embedded Software Engineer.

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

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

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