Beaglebone Black + Qt Embedded + Yocto - parte 2

qt embedded yocto
Este post faz parte da série Beaglebone Black + Qt Embedded + Yocto. Leia também os outros posts da série:

Na primeira parte da série vimos como configurar o ambiente e gerar uma distribuição Linux Embarcado para Beaglebone Black com Qt Embedded e Yocto Project.

Agora vamos aprender como gerar e configurar as ferramentas necessárias para o desenvolvimento de aplicações Qt que serão executadas no nosso target, a Beaglebone Black. Basicamente precisaremos de uma toolchain contendo os utilitários e bibliotecas para podermos "cross-compilar" as aplicações desenvolvidas através da IDE Qt Creator.

 

Gerando a Toolchain

É importante que você tenha realizado todos passos descritos no primeiro artigo da série. Para gerarmos a toolchain devemos carregar as variáveis de ambiente do Yocto e instruí-lo a construir a toolchain para o Qt Embedded.

O instalador da toolchain gerado está disponível em:

 ~/yocto/build-dora/tmp/deploy/sdk/ 

e serve tanto para construção de aplicações Qt Embedded quanto para aplicações Linux que não utilizam o Qt.

Instalando a Toolchain

Vamos executar o script com a opção de instalação no caminho padrão sugerido.

Após a instalação nossa toolchain estará disponível em: /opt/poky/1.5.1/ .

Instalando o Qt Creator

Vamos baixar a versão 3.0.1 e instala-lá utilizando as opções padrão sugeridas:

Configurando o Qt Creator

Vamos realizar as configurações necessárias para que o Qt Creator utilize a toolchain que geramos. Feche o programa caso ele esteja aberto.

A primeira coisa a ser feita é adicionar as variáveis de ambiente da toolchain no script de inicialização do Qt Creator. Para isso adicione o conteúdo abaixo na primeira linha do arquivo ~/qtcreator-3.0.1/bin/qtcreator.sh.

O resultado final do arquivo ~/qtcreator-3.0.1/bin/qtcreator.sh. deve ser:

Agora vamos executar o Qt Creator. É importante dizer que SEMPRE que formos abrir o programa utilizaremos o comando abaixo, caso contrário o Qt Creator não funcionará corretamente com a toolchain gerada:

A figura abaixo mostra a tela inicial do aplicativo:

qt-embedded-yocto-2 

Agora vamos criar um Kit contendo as informações do nosso target (Beaglebone Black) e da nossa toolchain. Siga os passos descritos abaixo:

Ao final desses procedimentos devemos ter a tela de configuração das opções "Build & Run" semelhante a essa:

qt-embedded-yocto-3

Compilando uma aplicação

Como não poderia deixar de ser, vamos criar uma aplicação "Hello World". Execute os seguintes comandos no shell:

Teremos um arquivo de projeto ~/qte-helloworld/helloworld.pro:

E um código fonte da aplicação ~/qte-helloworld/main.cpp:

Vamos importar nosso projeto para dentro do Qt Creator. Para isso, vá em "File" -> "Open File or Project", e selecione o arquivo ~/qte-helloworld/helloworld.pro.

Na próxima tela aparecerá qual Kit deverá ser utilizado, se você marcou o Kit BBB como default ("Make Default") na seção anterior ele já estará selecionado. Para finalizar clique em "Configure Project".

 Agora vamos construir a aplicação em "Build" -> "Build Project helloworld"

Testando a aplicação 

Copie o binário gerado pelo Qt Creator em ~/build-helloworld-BBB-Debug/helloword para a raíz de um pendrive.

Insira o pendrive na BBB, plugue um cabo conversor USB Serial e abra uma conexão serial.

Insira o microSD card gerado na primeira parte dessa série, conecte a BBB a uma TV através de uma cabo HDMI, conecte o pendrive com o binário gerado e energize a placa, logue como root e execute os seguintes comandos:

Note que rodamos a aplicação com os parâmetros "-qws", isso indica ao Qt que ele deve rodar no modo embedded e usar o seu gerenciador de janela interno.

A TV ficará com a seguinte imagem:

qt-embedded-yocto-3

Conclusão

Com as partes 1 e 2 desse tutorial é possível gerar uma distribuição Linux embarcado customizado usando o Qt Embedded e desenvolver aplicações sem muitas complicações.

Se você é novato no mundo de programação Qt, sugiro que dê uma lida no material Qt for beginners.

Saiba mais

Embedded Linux Build Systems

Cozinhando com o Yocto Project

Desvendando Yocto Project – Primeiros passos

 

Outros artigos da série

<< Beaglebone Black + Qt Embedded + Yocto - parte 1
Este post faz da série Beaglebone Black + Qt Embedded + Yocto. Leia também os outros posts da série:
NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Diego Sueiro
Formado em Engenharia de Controle e Automação pela UNIFEI e CEO do Embarcados, atualmente trabalho na Inglaterra com Desenvolvimento de Sistemas Linux Embarcado Real Time. Sou consultor e desenvolvedor de software para Sistemas Embarcados com vasta experiência em projetos com processadores de 8bits a 32bits, sistemas bare metal, RTOS, Linux Embarcado e Android Embarcado. Um apaixonado por Pink Floyd e Empreendedorismo.

14
Deixe um comentário

avatar
 
12 Comment threads
2 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
3 Comment authors
Martin BeaudetDiego SueiroEduardo ScherrerDesenvolvendo um Kiosk Interativo para a Beaglebone Black com Yocto - parte 3Projeto de Kiosk Interativo para a Beaglebone Black com Yocto - parte 1 Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
trackback

[…] Beaglebone Black + Qt Embedded + Yocto – parte 2 […]

trackback

[…] Beaglebone Black + Qt Embedded + Yocto – parte 2 […]

trackback

[…] Beaglebone Black + Qt Embedded + Yocto – parte 2 […]

Martin Beaudet
Visitante
Martin Beaudet

Hi Diego, I successfully build the meta-toolchain-qt5 SDK using this command : bitbake meta-toolchain-qt5 I follow your instruction to setup QtCreator but I'm not able to compile, I'm getting this error : "c command not found". So I guest there something broken in setup environment. I have took a look to setup environment file in "/opt/poky/1.6.2/environment-setup-cortexa8t2hf-vfp-neon-poky-linux-gnueabi" and then I did not see any OE_QMAKE environment variable set, this is not normal ? If I well understand, in "meta-embarcados/classes/populate_sdk_qt5", should append the setup environment variable that are missing. But here is what I have in the file "/opt/poky/1.6.2/environment-setup-cortexa8t2hf-vfp-neon-poky-linux-gnueabi" http://pastebin.com/8uvwVcmP I do… Leia mais »

Martin Beaudet
Visitante
Martin Beaudet

Yessss, I got it 🙂

I have to this line also to the "qtcreator.sh"

$ source /opt/poky/1.6.2/sysroots/x86_64-pokysdk-linux/environment-setup.d/qt5.sh

trackback

[…] foi publicada uma série [8] [9] com a mesma finalidade, porém usando a versão QtEmbedded (Qt4) […]

trackback

[…] Beaglebone Black + Qt Embedded + Yocto – parte 2 […]

trackback

[…]  Beaglebone Black + Qt Embedded + Yocto – parte 2 […]

trackback

[…] foi publicada uma série [8] [9] para a Beaglebone Black, porém usando a versão QtEmbedded […]

trackback

[…] Beaglebone Black + Qt Embedded + Yocto – parte 2 […]

trackback

[…] Beaglebone Black + Qt Embedded + Yocto – parte 2 […]