"рдЯреЛрд░рдбреЗрдХреНрд╕ рдХреЛрд▓реАрдмреНрд░реА рдЯреА 20 (рд▓рд┐рдирдХреНрд╕)" рдХреЗ рд▓рд┐рдП рдПрдХреНрд▓рд┐рдкреНрд╕ рдФрд░ рдЬреАрдЯреАрдХреЗ + рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдЯреВрд▓рдХрд┐рдЯ

рдпрд╣ рд▓реЗрдЦ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЯреВрд▓рдХрд┐рдЯ рдмрдирд╛рддреЗ рд╕рдордп рд╕рдордп рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА рдореИрдВ рд╣рд░ рдЪреАрдЬ рдХреЛ рдмрд╣реБрдд рд╕реНрд╡реЗрдЪреНрдЫрд╛ рд╕реЗ рдмрддрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ред

рдореВрд▓реНрдпрд╛рдВрдХрди рдмреЛрд░реНрдб рд╡рд┐рд╡рд░рдг
рдмреЛрд░реНрдб рджреЛрд╣рд░реЗ-рдХреЛрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ "NVIDIA Tegra Cortex-A9" рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред
рдпрд╣ рд╡рд┐рдВрдбреЛрдЬ рд╕реАрдИ 7.0 * рдФрд░ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред
RAM: 512MB
рдкреВрд░реНрдг рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдпрд╣рд╛рдБ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ ред
* рдореБрдЭреЗ рдЖрдкрдХреЛ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП - рдореИрдВ рдЗрд╕ рдмреЛрд░реНрдб рдХреЗ рд▓рд┐рдП рдУрдПрд╕ рдХреЗ рд░реВрдк рдореЗрдВ WinCE7.0 рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ, рдЕрдЧрд░ рд╕реА ++ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рд▓рд┐рдП рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЯреВрд▓рдХрд┐рдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рдерд╛ред рдПрдХ рдЕрдкрд╡рд╛рдж рдпрджрд┐ рдЖрдкрдХрд╛ рдЖрд╡реЗрджрди рдПрдХ рд╕рд╛рдВрддреНрд╡рдирд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИ, рддреЛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред CoDeSys рдФрд░ C # - рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИред
рдмреЛрд░реНрдб рдЙрдкрд╕реНрдерд┐рддрд┐
рдЫрд╡рд┐
рдЫрд╡рд┐


рд╕рд╛рдордЧреНрд░реА
  1. рдЬрд░реВрд░рдд рдХреА рд╣рд░ рдЪреАрдЬ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ
  2. рдПрд╕рдбреАрдХреЗ рд╕реНрдерд╛рдкрдирд╛
  3. рдПрд╕рдбреАрдХреЗ рдиреЗ рдЬрд╛рдВрдЪ рдХреА
  4. рдЧреНрд░рд╣рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
  5. рдЬреАрдЯреАрдХреЗ рдХреЛ рдЧреНрд░рд╣рдг рд╕реЗ рдЬреЛрдбрд╝реЗрдВ
  6. рдПрдХ рдЧреНрд░рд╣рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕реНрдерд╛рдкрдирд╛
  7. рдкрд░рд┐рдгрд╛рдо


рдЖрдкрдХреА рдЬрд╝рд░реВрд░рдд рдХреА рд╣рд░ рдЪреАрдЬрд╝ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ:


рдмреЛрд░реНрдб рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ рдПрд╕рдбреАрдХреЗ рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЯреЛрд░рдбреЗрдХреНрд╕ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рджреВрд╕рд░рд╛ , рд╣рдореЗрдВ Ubuntu 16.04 LTS рдХреЗ рд╕рд╛рде рдПрдХ рд╣реЛрд╕реНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рддреАрд╕рд░рд╛ рд╕реА / рд╕реА ++ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдпрдВ рдЧреНрд░рд╣рдг рд╣реИ ред

рдПрд╕рдбреАрдХреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:


рдорд╣рддреНрд╡рдкреВрд░реНрдг: рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрдЧ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкрде рдкрд░ рдЗрд╕реЗ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред

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 

рдПрд╕рдбреАрдХреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЪрд░ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ:

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

рдиреЛрдЯ: рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рдПрдХ рдирдпрд╛ рдЯрд░реНрдорд┐рдирд▓ рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдирд╛ рд╣реЛрдЧрд╛ред

рд╡реИрдХрд▓реНрдкрд┐рдХ рдХрджрдо

рдПрд╕рдбреАрдХреЗ рдиреЗ рдЬрд╛рдВрдЪ рдХреА


1. рдбреИрд╢ рд╕реЗ рджрдВрд╢ рддрдХ рдЙрдмрдВрдЯреВ рдЦреЛрд▓ рдмрджрд▓реЗрдВ:

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

2. рдирд┐рдореНрди рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде, FirstTest.c рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:

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

3. рд╕рдВрдХрд▓рди:

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

4. рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ, рдкреАрдПрд▓рд╕реА рдореЗрдВ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ рдЪрд▓рд╛рдПрдВ:

рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ
рдЫрд╡рд┐ рд╕рдм рдХреБрдЫ рдХреНрд░рдо рдореЗрдВ рд▓рдЧрддрд╛ рд╣реИред


рдЧреНрд░рд╣рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ


1. рдЧреНрд░рд╣рдг рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛ рдХреЛ рдХрд╛рдо рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

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

2. рдЪрд▓реЛ рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЬрд╛рдПрдВ рдЬрд┐рд╕рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЧреНрд░рд╣рдг рд╣реИ рдФрд░ рдЗрд╕реЗ рдЕрдирдкреИрдХ рдХрд░реЗрдВ:

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

3. рдЖрдЗрдП рдЧреНрд░рд╣рдг рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрд░ рдЬрд╛рдПрдВ:

 cd ~/eclipse/neon-3/eclipse 

4. рдЪрд░ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВ рдФрд░ рдЧреНрд░рд╣рдг рдЪрд▓рд╛рдПрдБ:

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

рдпрд╣ рд╕реНрдерд╛рдкрдирд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред

рдЧреНрд░рд╣рдг рдореЗрдВ GTK рдХреЛ рдХрдиреЗрдХреНрдЯ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ


1. рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

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

2. рд╣реЗрд▓реНрдк-> рдПрдХреНрд▓рд┐рдкреНрд╕ рдорд╛рд░реНрдХреЗрдЯрдкреНрд▓реЗрд╕ рдкрд░ рдЬрд╛рдПрдВ

рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ
рдЫрд╡рд┐

3. pkg-config рдвреВрдВрдвреЗрдВ рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ

рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ
рдЫрд╡рд┐

рдЙрд╕рдХреЗ рдмрд╛рдж, рдЧреНрд░рд╣рдг рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВред

4. рд╕рдВрдкрддреНрддрд┐ рдкрд░ рдЬрд╛рдПрдВ -> C / C ++ рдмрд┐рд▓реНрдб -> рд╕реЗрдЯрд┐рдВрдЧреНрд╕ -> "pkg-config"

рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ
рдЫрд╡рд┐

5. GTK рдвреВрдВрдвреЗрдВ рдФрд░ рдЗрд╕реЗ рдмрдВрдж рдХрд░реЗрдВред

рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ
рдЫрд╡рд┐

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рддреЗрдЬреА рд╕реЗ рдФрд░ рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - рдЧреНрд▓реЗрдб рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред

 sudo apt-get install glade-gnome 

рдЧреНрд░рд╣рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕реНрдерд╛рдкрдирд╛:


рдЧреНрд░рд╣рдг рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЪрд░ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордд рднреВрд▓рдирд╛:

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

1. рдПрдХ рдирдпрд╛ C ++ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ:

рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ
рдЫрд╡рд┐

2. рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЧреБрдгреЛрдВ рдкрд░ рдЬрд╛рдПрдВ:

рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ
рдЫрд╡рд┐

3. C / C ++ рдмрд┐рд▓реНрдб -> рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкрд░ рдЬрд╛рдПрдВ

рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ
рдЫрд╡рд┐

4. рдЕрдм рд╣рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЧреНрд░рд╣рдг рдЪрд░ рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ
рдЫрд╡рд┐

рдХреНрд░реЙрд╕ рдЬреАрд╕реАрд╕реА рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╣реИ:

 ${CC} 

рдХреНрд░реЙрд╕ рдЬреАрд╕реАрд╕реА рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП -> рд╡рд┐рд╡рд┐рдз рдпрд╣ рд╣реИ:

 ${CFLAGS} -c 

рдХреНрд░реЙрд╕ рдЬреА ++ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╣реИ:

 ${CC} 

рдХреНрд░реЙрд╕ рдЬреА ++ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП -> рд╡рд┐рд╡рд┐рдз рдпрд╣ рд╣реИ:

 ${CFLAGS} -c 

рдХреНрд░реЙрд╕ рдЬреА ++ рд▓рд┐рдВрдХрд░ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╣реИ:

 ${CXX} 

рдХреНрд░реЙрд╕ рдЬреА ++ рд▓рд┐рдВрдХрд░ рдХреЗ рд▓рд┐рдП -> рд╡рд┐рд╡рд┐рдз рдпрд╣ рд╣реИ:

 ${LDFLAGS} 

рдХреНрд░реЙрд╕ рдЬреАрд╕реАрд╕реА рдЕрд╕реЗрдВрдмрд▓рд░ рдХреЗ рд▓рд┐рдП, рдпреЗ рд╣реИрдВ:

 ${AS} 

рдмрд╕ рдпрд╣реА рд╣реИ, рдЕрдм рдЖрдк рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрд╕реЗ рдПрдХ рдкреАрдПрд▓рд╕реА рдкрд░ рд╕рдВрдХрд▓рд┐рдд рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдкрд░рд┐рдгрд╛рдо


рдХреЛрдб
 #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; } 


рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ
рдЫрд╡рд┐

рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╢реБрднрдХрд╛рдордирд╛рдПрдБред

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


All Articles