Kit de ferramentas baseado em Eclipse e GTK +, para “Toradex Colibri T20 (Linux)”

Este artigo tem como objetivo principal economizar tempo ao criar um kit de ferramentas, mas ao mesmo tempo tentarei contar tudo de maneira bastante volumosa.

Descrição do Conselho de Avaliação
A placa é baseada no processador dual-core "NVIDIA Tegra Cortex-A9".
Pode funcionar no Windows CE 7.0 * e Linux.
RAM: 512MB
As especificações completas estão disponíveis aqui .
* Eu devo avisar você - eu não recomendo o WinCE7.0 como sistema operacional para esta placa, se o C ++ for crucial para o desenvolvimento, porque não foi fácil para mim construir o kit de ferramentas pessoalmente. Uma exceção é se seu aplicativo é um aplicativo de console, então não deve haver problemas. CoDeSys e C # - não causam problemas.
Aparência da placa
imagem
imagem


Conteúdo
  1. Baixe tudo o que você precisa
  2. Instalação do SDK
  3. Verificação do SDK
  4. Instale o Eclipse
  5. Conecte o GTK ao Eclipse
  6. Configurando um Projeto Eclipse
  7. Resultado


Baixe tudo o que você precisa:


O primeiro é o SDK do conselho, que pode ser baixado do site oficial da Toradex .
Segundo , precisamos de um host com o Ubuntu 16.04 LTS .
O terceiro é o próprio Eclipse para C / C ++ .

Instale o SDK:


Importante: instale-o melhor no caminho padrão, para evitar todos os tipos de erros.

mon@mon:~$ cd /Downloads/SDK mon@mon:~$ chmod +x angstrom-glibc-x86_64-armv7at2hf-vfp-v2017.12-toolchain.sh mon@mon:~$ ./angstrom-glibc-x86_64-armv7at2hf-vfp-v2017.12-toolchain.sh Angstrom SDK installer version nodistro.0 ========================================= Enter target directory for SDK (default: /usr/local/oecore-x86_64): You are about to install the SDK to "/usr/local/oecore-x86_64". Proceed[Y/n]? y 

Após a instalação do SDK, poderemos executar o script para integrar automaticamente as variáveis:

 . /usr/local/oecore-x86_64/environment-setup-armv7at2hf-vfp-angstrom-linux-gnueabi 

Nota: sempre que abrir um novo terminal, você deve executar o script novamente.

Etapa opcional

Verificação do SDK


1. Altere o shell do Ubuntu de dash para bash:

 sudo update-alternatives --install /bin/sh sh /bin/bash 100 

2. Crie o arquivo FirstTest.c, com o seguinte conteúdo:

 #include <stdio.h> int main(int argc, char *argv[]){ printf("Hello world!!!\n"); return 0; } 

3. Compile:

 ${CC} -Wall FirstTest.c -o FirstTest 

4. De qualquer forma, redefina o PLC e execute:

Captura de tela
imagem Tudo parece estar em ordem.


Instale o Eclipse


1. Java é necessário para o Eclipse funcionar, instale-o:

 sudo apt-get update sudo apt-get install default-jre 

2. Vamos para o diretório em que temos o Eclipse e descompacte-o:

 cd ~ mkdir -p ~/eclipse/neon-3 tar xf ~/Downloads/eclipse-cpp-neon-3-linux-gtk-x86_64.tar.gz -C ~/eclipse/neon-3/ 

3. Vamos para o diretório Eclipse:

 cd ~/eclipse/neon-3/eclipse 

4. Exporte as variáveis ​​e execute o Eclipse:

 . /usr/local/oecore-x86_64/environment-setup-armv7at2hf-vfp-angstrom-linux-gnueabi ./eclipse 

Isso completa a instalação.

Conecte e configure o GTK no Eclipse


1. Instale os pacotes necessários:

 sudo apt-get install libgtk-3-dev gdb eclipse-cdt build-essential cmake git pkg-config 

2. para Ajuda-> Eclipse Marketplace

Captura de tela
imagem

3. Encontre e instale o pkg-config

Captura de tela
imagem

Depois disso, reinicie o Eclipse.

4. Vá para Propriedade -> Compilação C / C ++ -> Configurações -> "pkg-config"

Captura de tela
imagem

5. Encontre o GTK e marque-o.

Captura de tela
imagem

Além disso, eu recomendo que, para trabalhar mais rápido e melhor com a interface - instale o Glade.

 sudo apt-get install glade-gnome 

Configurando o projeto Eclipse:


Antes de iniciar o Eclipse, não se esqueça de integrar as variáveis:

 . /usr/local/oecore-x86_64/environment-setup-armv7at2hf-vfp-angstrom-linux-gnueabi 

1. Crie um novo projeto C ++:

Captura de tela
imagem

2. Vá para as propriedades do projeto:

Captura de tela
imagem

3. Vá para C / C ++ Build -> Configurações

Captura de tela
imagem

4. Agora precisamos passar variáveis ​​do Eclipse, por exemplo:

Captura de tela
imagem

Para o Cross GCC Compiler, é o seguinte:

 ${CC} 

Para Cross GCC Compiler -> Miscellaneous é:

 ${CFLAGS} -c 

Para o Cross G ++ Compiler, é o seguinte:

 ${CC} 

Para Cross G ++ Compiler -> Diversos é:

 ${CFLAGS} -c 

Para o Cross G ++ Linker, é o seguinte:

 ${CXX} 

Para Cross G ++ Linker -> Diversos é:

 ${LDFLAGS} 

Para Cross GCC Assembler, são eles:

 ${AS} 

É isso, agora você pode criar um projeto, compilar e testá-lo em um PLC.

Resultado


Código
 #include <gtk/gtk.h> static void print_hello (GtkWidget *widget, gpointer data) { g_print ("Hello World\n"); } static void activate (GtkApplication *app, gpointer user_data) { GtkWidget *window; GtkWidget *button; GtkWidget *button_box; window = gtk_application_window_new (app); gtk_window_set_title (GTK_WINDOW (window), "Window"); gtk_window_set_default_size (GTK_WINDOW (window), 400, 400); button_box = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); gtk_container_add (GTK_CONTAINER (window), button_box); button = gtk_button_new_with_label ("Hello World"); g_signal_connect (button, "clicked", G_CALLBACK (print_hello), NULL); g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_widget_destroy), window); gtk_container_add (GTK_CONTAINER (button_box), button); gtk_widget_show_all (window); } int main (int argc, char **argv) { GtkApplication *app; int status; app = gtk_application_new ("org.gtk.example", G_APPLICATION_FLAGS_NONE); g_signal_connect (app, "activate", G_CALLBACK (activate), NULL); status = g_application_run (G_APPLICATION (app), argc, argv); g_object_unref (app); return status; } 


Captura de tela
imagem

Obrigado por sua atenção, boa sorte no desenvolvimento.

Source: https://habr.com/ru/post/pt484342/


All Articles