14 Comentários

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
Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

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

Beaglebone Black » Beaglebone Black + Qt Embedded + Yocto - parte 2
Comentários:
Notificações
Notificar
guest
14 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Martin Beaudet
Martin Beaudet
08/05/2015 11:08

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
Martin Beaudet
Reply to  Martin Beaudet
08/05/2015 12:40

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

Eduardo Scherrer
Eduardo C. Scherrer
17/04/2014 06:43

Muito bom, rodou redondinho.

Abraço

Eduardo Scherrer

Diego Sueiro
Diego Sueiro
Reply to  Eduardo C. Scherrer
17/04/2014 07:23

Olá Eduardo,

Dessa vez conferi os passos umas 3 vezes. hehehehe

Obrigado por testar.

Abraços

trackback
28/05/2015 03:00

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

trackback
28/05/2015 03:00

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

trackback
27/05/2015 02:37

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

trackback
19/12/2014 05:38

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

trackback
27/11/2014 09:58

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

trackback
21/11/2014 02:11

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

trackback
18/11/2014 00:03

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

trackback
10/11/2014 07:34

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

Talvez você goste:

Séries



Outros da Série

Menu

WEBINAR
 
Sensores e soluções para aplicações em indústria inteligente

Data: 13/08 às 15:00h - Apoio: STMicroelectronics
 
INSCREVA-SE AGORA »



 
close-link