مجموعة أدوات قائمة على Eclipse و GTK + ، من أجل "Toradex Colibri T20 (Linux)"

تهدف هذه المقالة في المقام الأول إلى توفير الوقت عند إنشاء مجموعة أدوات ، ولكن في نفس الوقت سأحاول أن أخبر كل شيء بكثرة.

تقييم مجلس الوصف
تعتمد اللوحة على المعالج ثنائي النواة "NVIDIA Tegra Cortex-A9".
يمكن أن تعمل على Windows CE 7.0 * و Linux.
ذاكرة الوصول العشوائي: 512 ميغابايت
المواصفات الكاملة متوفرة هنا .
* يجب أن أحذرك - لا أنصح باستخدام WinCE7.0 باعتباره نظام التشغيل لهذه اللوحة ، إذا كان C ++ ضروريًا للتنمية ، لأنه لم يكن من السهل بالنسبة لي إنشاء مجموعة أدوات شخصيًا. استثناء إذا كان التطبيق الخاص بك هو تطبيق وحدة التحكم ، فلا ينبغي أن تكون هناك مشاكل. CoDeSys و C # - لا تسبب مشاكل.
مظهر المجلس
صورة
صورة


محتوى
  1. قم بتنزيل كل ما تحتاجه
  2. تثبيت SDK
  3. فحص sdk
  4. تثبيت الكسوف
  5. ربط GTK إلى الكسوف
  6. إعداد مشروع الكسوف
  7. يؤدي


قم بتنزيل كل ما تحتاجه:


الأول هو SDK للوحة ، والتي يمكن تنزيلها من موقع Toradex الرسمي.
ثانيا ، نحن بحاجة إلى مضيف مع Ubuntu 16.04 LTS .
والثالث هو Eclipse نفسه لـ C / C ++ .

تثبيت SDK:


هام: قم بتثبيته بشكل أفضل على المسار الافتراضي ، وذلك لتجنب كل أنواع الأخطاء.

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 

بعد تثبيت SDK ، سنتمكن من تشغيل البرنامج النصي لدمج المتغيرات تلقائيًا:

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

ملاحظة: في كل مرة تفتح فيها محطة جديدة ، يجب تشغيل البرنامج النصي مرة أخرى.

خطوة اختيارية

فحص sdk


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. في أي حال ، إعادة تعيين إلى PLC وتشغيل:

قطة
صورة يبدو أن كل شيء في محله.


تثبيت الكسوف


1. يلزم استخدام Java لتشغيل Eclipse ، وتثبيته:

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

2. دعنا نذهب إلى الدليل الذي لدينا Eclipse وفكه:

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

3. دعنا نذهب إلى دليل Eclipse:

 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. اذهب إلى Help-> Eclipse Marketplace

قطة
صورة

3. البحث عن وتثبيت pkg-config

قطة
صورة

بعد ذلك ، أعد تشغيل Eclipse.

4. انتقل إلى الملكية -> C / C ++ Build -> الإعدادات -> "pkg-config"

قطة
صورة

5. البحث عن GTK ووضع علامة عليه.

قطة
صورة

أيضًا ، أوصي بأن تعمل بشكل أسرع وأفضل مع الواجهة - قم بتثبيت Glade.

 sudo apt-get install glade-gnome 

إعداد مشروع Eclipse:


قبل البدء في Eclipse ، لا تنسَ دمج المتغيرات:

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

1. قم بإنشاء مشروع C ++ جديد:

قطة
صورة

2. انتقل إلى خصائص المشروع:

لقطات
صورة

3. انتقل إلى C / C ++ Build -> الإعدادات

لقطات
صورة

4. نحتاج الآن إلى اجتياز متغيرات Eclipse ، على سبيل المثال:

لقطات
صورة

بالنسبة لـ Cross GCC Compiler ، هذا هو:

 ${CC} 

بالنسبة لبرنامج Cross GCC Compiler -> متنوعة ، فهو:

 ${CFLAGS} -c 

بالنسبة لبرنامج Cross G ++ Compiler ، هذا هو:

 ${CC} 

بالنسبة لبرنامج Cross G ++ Compiler -> متنوعة ، فهو:

 ${CFLAGS} -c 

بالنسبة إلى Cross G ++ Linker ، هذا هو:

 ${CXX} 

بالنسبة إلى Cross G ++ Linker -> متنوعة ، فهي:

 ${LDFLAGS} 

بالنسبة إلى Cross GCC Assembler ، هذه هي:

 ${AS} 

هذا كل شيء ، الآن يمكنك إنشاء مشروع وتجميعه واختباره على PLC.

يؤدي


قانون
 #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/ar484342/


All Articles