14.1. פיתוח קושחה

עמודים אלה מיועדים ל-מפתחי קושחה – אנשים שרוצים לשנות את קוד ה-C שרץ על ה-OpenMV Cam, ולא רק לכתוב סקריפטים ב-MicroPython. הם מכסים את כל המחזור: הקמת עורך, התקנת שרשרת כלי הבנייה (toolchain), הידור הקושחה עבור כל לוח נתמך, צריבת הבנייה שלכם על מצלמה, וניפוי באגים שלה על חומרה אמיתית עם בדיקת J-Link וניפוי באגים ברמת המקור צעד-אחר-צעד ב-VS Code.

בסיומם אתם אמורים להיות מסוגלים לקחת מכונה נקייה, לבנות את הקושחה, להעלות אותה על מצלמה, להציב נקודת עצירה (breakpoint) בקוד המקור של ה-C, ולהריץ צעד-אחר-צעד את המעבד.

הערה

קושחת OpenMV היא הסתעפות (fork) של MicroPython עם תוספת ספריית הראייה הממוחשבת של OpenMV, מנהלי ההתקן והפורטים של הלוחות. המקור נמצא ב-github.com/openmv/openmv. מודולי ה-Python image / ml / csi שבהם אתם משתמשים בסקריפטים הם קוד C במאגר זה.

14.1.1. כיצד הבנייה עובדת

שני דברים כדאי להבין לפני שמתחילים, מכיוון שהם מסבירים כל הוראה שלהלן:

  • הבנייה מונעת-SDK. אינכם מתקינים בעצמכם את מהדר ה-ARM, את CMake, את Python, או את כלי ST. המאגר מקבע גרסת OpenMV SDK מדויקת (קובץ SDK_VERSION1.6.0 בעת כתיבת שורות אלה), ו-make sdk מוריד ומחלץ את אותו SDK אל ~/openmv-sdk-<version>/. הבנייה לאחר מכן מקדימה את תיקיות ה-gcc, llvm, cmake, python וכלי ST של ה-SDK אל ה-PATH. משמעות הדבר היא שכולם בונים עם שרשרת הכלים הזהה לחלוטין, וההגדרה במחשב המארח זעירה.

  • אין בנייה מקורית ל-Windows. שרשרת הכלים וסקריפטי הבנייה מיועדים ל-Linux (x86-64) ול-macOS (arm64) בלבד. ב-Windows אתם בונים בתוך WSL (Windows Subsystem for Linux), שהיא סביבת Linux אמיתית – כך שלאחר ש-WSL מותקן, משתמשי Windows עוקבים אחר הוראות ה-Linux בדיוק. בנייה מבוססת Docker ומכונה וירטואלית של Linux הן גם אפשרויות.

הרצף ברמה הגבוהה בכל מערכת נתמכת הוא תמיד:

  1. התקינו עורך (VS Code).

  2. השיגו מעטפת (shell) דמוית Linux (Linux מקורי, macOS, או WSL ב-Windows).

  3. שכפלו את המאגר ואת תת-המודולים שלו.

  4. make sdk – התקנת שרשרת כלים חד-פעמית.

  5. make -C lib/micropython/mpy-cross – בנו את מהדר ה-bytecode.

  6. make TARGET=<board> – בנו את הקושחה.

  7. צרבו אותה (OpenMV IDE או dfu-util).

  8. באופן אופציונלי, חברו J-Link ונפו אותה.

העמודים שלהלן מדריכים דרך כל שלב לפי הסדר.