תוכן עניינים:
- שלב 1: דרישות תוכנה
- שלב 2: התקנת דרייבר ותצורה
- שלב 3: OpenOCD, שרשרת כלים ו- Gdb
- שלב 4: חיווט ובדיקה ראשונה
- שלב 5: הוסף תצורת באגים לקוד Visual Studio
וִידֵאוֹ: ESP32 - פתרון זול עבור באגים בסירקרוט: 5 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:16
שלום, במדריך זה מתואר כיצד להגדיר מתאם JTAG זול המבוסס על שבב FTDI 2232HL, עם קוד ויזואלי ותוסף ארדואינו.
- מודול FTDI 2232HL עם מחבר USB החל מ 8 $ ב- eBay ואין צורך בתוכנה בתשלום. זהו פתרון מצוין לחובבים שאינם רוצים להוציא 50 $+ על מתאם JTAG מקצועי.
- מתאם זה יכול לשמש לאיתור באגים של פלטפורמות אחרות כמו ESP8266, ARM, AVR ועוד רבות אחרות. תצורה מסוימת תלויה בפלטפורמת היעד, הוראה זו מכסה רק התקנה עבור ESP32.
- אם כבר יש לך מתאם JTAG כלשהו, תוכל להשתמש בו כאשר הוא נתמך על ידי openOCD, פשוט הפעל את openocd עם קובץ תצורה שונה בהתאם לסוג מתאם jtag שלך.
- platform.io יכול להקל עליך את ההתקנה, אך ניפוי באגים נתמך רק בגרסה מקצועית בתשלום.
- עובד עם רוב מודולי ESP32. (למשל wemos lolin 32 בזול)
- מתאם jtag זה אמור לעבוד גם עם לינוקס, אך אני אישית לא בדקתי אותו.
שלב 1: דרישות תוכנה
Arduino IDE גירסה 1.8 ואילך. אין תמיכה בגרסת חנות Windows. עליך להשתמש בגרסת ההתקנה הקלאסית הניתנת להורדה מדף Arduino הרשמי
קוד אולפן ויזואלי של מיקרוסופט
תוספות אלה לקוד אולפן ויזואלי הן חובה
- Arduino
- באגים מקוריים
אני ממליץ גם להתקין תוסף זה המאפשר אינטליסנס עבור C/C ++
C/C ++
במדריך זה אשתמש ב -2 תיקיות עבודה:
D: / devel / ESP32 / tools / - כאן הנחתי את כל הכלים
C: / Users / xxxxx / Documents / Arduino / YourProject / - זו תיקיה עם סקיצה
אתה יכול למקם את הקבצים שלך בכל מקום אחר אם אתה רוצה, רק אל תשכח לעדכן את כל ההפניות בנתיב שלך בפועל.
שלב 2: התקנת דרייבר ותצורה
גם אם חלונות מזהים אוטומטית את FT2232 כברירת מחדל, מנהלי התקני ברירת המחדל של Windows אינם מספיקים לכל התכונות המקדימות ויש צורך להוריד ולהתקין את מנהל ההתקן מאתר FTDI
כאשר מותקן מנהל ההתקן הנכון, אתה אמור לראות את מודול ה- FT2232 שלך במנהל ההתקנים לא רק כשתי יציאות טוריות, אלא גם כ"ממיר סידורי USB A "ו"ממיר סידורי USB B"
השלב השני הוא שינוי דרייבר לערוץ אחד של הממיר שלנו. הורד את הכלי zadig מ https://zadig.akeo.ie/. אם אני מבין נכון זה כלי קישור winUSB מנהל ההתקן למכשיר FTDI המאפשר תקשורת ברמה נמוכה בין openOCD והתקן USB.
בכלי zadig, בתפריט "אפשרויות" סמן "הצג את כל המכשירים", ואז אתה אמור לראות את המתאם שלך ברשימת המכשירים הזמינים. בחר "RS232-HS כפול (ממשק 0)" ולאחר מכן בחר מנהל התקן חלופי "WinUSB v6.1.xxxx" ולחץ על כפתור החלף מנהל ההתקן.
כאשר אתה מחבר את המתאם שלך ליציאת USB אחרת של המחשב שלך, יש צורך לשנות שוב את הגדרות הנהג באמצעות הכלי zadig, אחרת openOCD לא ימצא את המתאם שלך.
שלב 3: OpenOCD, שרשרת כלים ו- Gdb
1. OCD פתוח הוא כלי לניפוי באגים, מצד אחד הוא מדבר עם שבב בצד השני הוא מספק שרת gdb שבו באגים (לקוח) יכולים להתחבר. הורד את openOCD עבור ESP32 מ- https://github.com/espressif/openocd-esp32/releases ופרק אותו לתיקייה D: / devel / ESP32 / tools
2. ערוך קבצי תצורה של openOCD:
esp-wroom-32.cfg
הנתיב המלא לקובץ זה הוא:
D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / board / esp-wroom-32.cfg
בקובץ זה תוכל להגדיר את מהירות התקשורת על ידי שינוי פרמטר "adapter_khz". לדוגמה "adapter_khz 8000" פירושו 8Mhz.
ברירת המחדל היא 20 מגה -הרץ והיא עשויה להיות גבוהה מדי אם אתה משתמש בחוטי מגשר ארוכים יותר או לוח קרש. אני ממליץ להתחיל ב- 1Mhz ואם הכל בסדר, לך למהירות גבוהה יותר, בשבילי 8Mhz עובד בצורה אמינה.
minimodule.cfg
הנתיב המלא לקובץ זה הוא: D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / interface / ftdi / minimodule.cfg
אם אני מבין נכון, מינימודול מקורי הוא לוח בלימה במחיר מופקע עם FT 2232 המיוצר על ידי FTDI וההבדל היחיד בין מינימודוד אמיתי למודול זול או שבב חשוף הזמין בשוק הוא תיאור ברירת המחדל של USB. open OCD מחפש מתאם jtag המבוסס על תיאור המכשיר, גם את פריסת init צריך להתאים.
מודול זול כולל תיאור "כפול RS232-HS". אם אינך בטוח לגבי תיאור המכשיר שלך, תוכל לבדוק אותו במנהל ההתקנים -> מאפייני התקן -> פרטי כרטיסייה -> ערך הנכס "אוטובוס דיווח על תיאור מכשיר"
התוכן של minimodule.cfg אמור להיראות כמו הדוגמה שלהלן, ניתן למחוק שורות שמתחילות ב- #.
ממשק ftdi #ftdi_device_desc "FT2232H MiniModule" ftdi_device_desc "כפול RS232 -HS" ftdi_vid_pid 0x0403 0x6010 #ftdi_layout_init 0x0018 0x05fb ftdi_layout_init 0x0008 0x000b ftdat_lay
esp32.cfg
הנתיב המלא לקובץ זה הוא:
D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / target / esp32.cfg
הוסף את שתי השורות לסוף esp32.cfg. ללא שינוי זה, הוספת נקודות בלם לא תעבוד.
נקודות שבירה של #Force. ברגע שיש לנו מפת זיכרון, נוכל גם לאפשר תוכנה bps.gdb_breakpoint_override קשה
3. הורד והתקן את xtensa-esp32-elf toolchain-שרשרת הכלים הזו מכילה באגים בשורת הפקודה (לקוח gdb) שהוא חיוני לניפוי באגים מכל IDE גרפי. ניתן להוריד את כלי העבודה החשוף מאתר espressif, סעיף "התקנה חלופית"
שלב 4: חיווט ובדיקה ראשונה
חבר מודול FT2322 עם ESP. אני ממליץ להשתמש בחוטים קצרים ככל האפשר. אם אתה חדש ב- JTAG, אל תשכח כי TDI של מתאם יעבור ל- TDI של שבב, גם TDO של מתאם יעבור ל- TDO של שבב. קווי נתונים של JTAG אינם חוצים כמו Rx/Tx ב- uart!
לבדיקה הבאה אני ממליץ להעלות סקיצה לדוגמא להבהב או סקיצה אחרת שיכולה להצביע כאשר המעבד פועל או לא על ידי מהבהב נורית או צפצוף או כתיבה לקונסולה הסדרתית.
הפעל את openOCD על ידי ביצוע הפקודה הבאה
D: / devel / ESP32 / tools / openocd-esp32 / bin / openocd.exe-s D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts -f interface/ftdi/minimodule.cfg -f לוח /esp-wroom-32.cfg
זה יתחיל openOCD ואם הכל בסדר אתה צריך לראות בפלט שורת הפקודה מכיל את השורות הבאות:
מידע: מהירות שעון 8000 קילוהרץ מידע: ברז JTAG: esp32.cpu0 ברז/מכשיר נמצא: 0x120034e5 (mfg: 0x272 (Tensilica), חלק: 0x2003, ver: 0x1) מידע: ברז JTAG: esp32.cpu1 ברז/מכשיר נמצא: 0x120034e5 (mfg: 0x272 (Tensilica), חלק: 0x2003, ver: 0x1)
גם תהליך openocd יקשיב ביציאת TCP 3333
פתח מסוף חדש והפעל את לקוח gdb שורת הפקודה על ידי ביצוע הפקודה הבאה
D: / devel / ESP32 / tools / xtensa-esp32-elf / bin / xtensa-esp32-elf-gdb.exe
המתן שנייה וכאשר מסוף gdb יהיה מוכן כתוב את הפקודות אחת אחת
יעד מרחוק: איפוס 3333mon ממשיך להמשיך
הפקודה הראשונה פותחת את החיבור לשרת איתור באגים ב- openocd, השנייה תפסיק את ביצוע התוכנית ב- ESP וה- LED אמור להפסיק להבהב, המשך לשחזר את ביצוע התוכנית וה- LED צריך להתחיל להבהב שוב.
שלב 5: הוסף תצורת באגים לקוד Visual Studio
אני מניח שבשלב זה כבר הגדרת קוד אולפן ויזואלי ותוסף arduino בצורה נכונה ותוכל לאמת ולהעלות את הסקיצה שלך ללוח. אם לא, אנא בדוק כמה הוראות כיצד להגדיר קוד אולפן ויזואלי וארדואינו, למשל בדף זה
כדי לגרום לאיתור באגים לפעול יש צורך לציין תיקיית פלט build. מתחת לתיקיית הסקיצה שלך יש (מוסתר) תיקייה.vscode, היכן נמצא הקובץ arduino.json. הוסף לקובץ זה את השורה הבאה:
"output": "BuildOutput/"
הפעל לאמת או להעלות ולבדוק שוב את תיקיית הסקיצות שלך, אמורה להיות תיקיית BuildOutput חדשה ובתוכה קובץ עם הרחבת.elf. קובץ elf חיוני לניפוי באגים.
הגדרות באגים נמצאות ב- launch.json של הקובץ. צור קובץ זה עם התוכן הבא, או שאתה יכול להעתיק קובץ זה מפרויקט דוגמה מצורף. אל תשכח להתאים את קו 26 ולהגדיר את הנתיב הנכון לקובץ.elf הפרויקט שלך.
{// השתמש ב- IntelliSense כדי ללמוד על תכונות אפשריות. // רחף כדי להציג תיאורים של תכונות קיימות. // למידע נוסף, בקר בכתובת: https://go.microsoft.com/fwlink/?linkid=830387 "גרסה": "0.2.0", "תצורות": [{"name": "Arduino-GDB-openOCD "," type ":" cppdbg "," request ":" launch "," program ":" $ {file} "," cwd ":" $ {workspaceRoot}/BuildOutput/"," MIMode ":" gdb ", "targetArchitecture": "arm", "miDebuggerPath": "D: /devel/ESP32/tools/xtensa-esp32-elf/bin/xtensa-esp32-elf-gdb.exe", "debugServerArgs": "", " customLaunchSetupCommands ": [{" text ":" target target: 3333 "}, {" text ":" mon reset stop "}, {// variant variant" text ":" file c:/Users/xxxxx/Documents/Arduino /${workspaceFolderBasename}/BuildOutput/${fileBasename}.elf "// גרסה סטטית //" text ":" קובץ c: /Users/xxxxx/Documents/Arduino/YourProject/BuildOutput/YourProject.ino.elf "}, {"text": "flushregs"}, {"text": "thb app_main"}, {"text": "c", "ignoreFailures": true}], "stopAtEntry": true, "serverStarted": "מידע \: [w / d \.]*: / חומרה "," launchCompleteCommand ":" exec-continue "," filterStderr ": true," args ": }]}
כיצד להתחיל איתור באגים:
- השלם והעלה את הסקיצה שלך ללוח
- התחל openOCD עם פרמטרים
- הגדר את נקודות הבלם בקוד היכן שאתה רוצה
- לאחר הגדרת כל נקודות הבלם, ודא שפתחת את קובץ ה-.ino הראשי של הפרויקט. (או נתיב קוד קשיח לקובץ.elf ב- launch.json)
- פתח את לוח הבאגים מול הקוד (Ctrl + Shift + D)
- בחר באגים "Arduino-GDB-openOCD", אמור להיות זמין רק.
- הקש F5 כדי להתחיל איתור באגים
מוּמלָץ:
מארז טנק רובוט אקרילי זול עבור Arduino SN7300 Sinoning: 6 שלבים
מארז טנק רובוט אקרילי זול עבור Arduino SN7300 Sinoning: מארז טנק אקרילי זול עבור Arduino SN7000 Sinoning קנה מאת: SINONING ROBOT TANK
מגן WiFi ESP8266 זול יותר עבור Arduino ומיקרו אחרים: 6 שלבים (עם תמונות)
מגן WiFi ESP8266 זול יותר עבור Arduino ומיקרו אחרים: עדכון: 29 באוקטובר 2020 נבדק עם ספריית לוח ESP8266 V2.7.4 - works עדכון: 23 בספטמבר 2016 אין להשתמש בספריית לוח Arduino ESP V2.3.0 לפרויקט זה. V2.2.0 עובד עדכון: 19 במאי 2016 ש '14 בפרויקט זה משנה את הספריות ואת הקוד לעבודה עם
כיצד להשתמש באגים ב- ESP32: 11 שלבים (עם תמונות)
כיצד להשתמש באגים ב- ESP32: האם אי פעם רצית להציץ בתוך הקוד שלך כדי לראות מדוע הוא מתנהג כפי שהוא? באופן מסורתי בפרויקטים של ESP32, היית צריך להוסיף הצהרת הדפסה אינסופית כדי לנסות להבין מה קורה, אבל יש דרך טובה יותר
מאריך טווח WiFi זול עבור IoT: 8 שלבים
מאריך טווח WiFi זול עבור IoT: כיצד לבנות מאריך WiFi משלך ממודול WiFi ESP8266 זול של $ 2- $ *** עריכה: מאז כתיבת ההוראה הזו, הקושחה שופרה מאוד, עם תוספת של דף הגדרות GUI. (כמו נתב רגיל), חומת אש, איש כוח
פנס חנות זול למראה, זול: 5 שלבים
פנס חנות LED זול למראה, ובכן, אם מישהו מכם הוא כמוני, רוב נורות הלד פשוט יקרות מדי. רציתי נורת LED זולה שנראתה נחמדה. אז, קניתי פנס RCA של $ 1 מ- Food City, והיה לי ראש של נורת LED שבורה. אז החלטתי לחבר את השניים. פלי