אינציקלופדיה של רדיו אלקטרוניקה והנדסת חשמל איתור באגים במיקרו-בקרים באמצעות אמולטור ROM. אנציקלופדיה של רדיו אלקטרוניקה והנדסת חשמל אנציקלופדיה של רדיו אלקטרוניקה והנדסת חשמל / מיקרו-בקרים המורכבות של פיתוח וניפוי באגים של תוכנית העבודה של מכשיר אלקטרוני המכיל מיקרו-מעבד קובעת לעתים קרובות את עלות הפיתוח שלו בכללותו. במיקרו-בקרים (MCUs) המשלבים זיכרון וחלק מהתקנים היקפיים, הדבר בולט במיוחד. אחד הכלים שמקלים מאוד על איתור באגים הוא אמולטור ה-ROM המתואר ב-[1]. מאמר זה מתאר את הטכנולוגיה לעבודה איתו. יכולות איתור באגים אינן מוגבלות לטכניקות המתוארות. התהליך הזה, כמו עיצוב בכלל, הוא במידה מסוימת אומנות: כל אחד יוצר את "המוזיקה שלו" לאותו כלי. נהיה אסירי תודה לקוראים שישתפו את הכלים והשיטות המקוריים שלהם לאיתור באגים בתוכניות MK. המורכבות ועוצמת העבודה של תהליך איתור באגים בתוכנת MK נקבעת על ידי הגורמים הבאים [2]:
ניתן להשתמש בציוד בדיקה מסורתי (לדוגמה, אוסצילוסקופ) רק במידה מוגבלת לאיתור באגים של MCUs. השיטה הפשוטה ביותר (ויחד עם זאת הבלתי יעילה ביותר) של איתור באגים היא "שיטת ניסוי וטעייה": טעינת תוכנית לתוך התקן זיכרון לקריאה בלבד (RPM הניתן לתכנות מחדש), ניסיון להפעיל אותה, איתור ותיקון שגיאות ב- תוכנית וחומרה, מחיקת ה-ROM, טעינת התוכנה מחדש וכו' ד.התהליכי מחיקה וכתיבת נתונים לשבב EEPROM לוקחים הרבה זמן, ולאחר מספר מסוים של מחזורי תכנות מחדש הוא נכשל לחלוטין. התקנה והסרה חוזרת של המיקרו-מעגל מפחיתה את האמינות של המגעים החשמליים בשקע ה-ROM. אין כמעט אפשרות להשיג מידע באגים על המערכת. כיום, מיקרו-בקרים מתבצעים לרוב באגים באמצעות כלים צולבים המבוססים על מחשב אישי. זה מאפשר הסחת דעת מינימלית של משאבי ח"כ. ההתקן שפותח באגים, כפי שמוצג באיור, מחובר למחשב באמצעות כלי כלשהו, למשל, אמולטור ROM. קומפלקס כזה מאפשר לך להוריד ולערוך תוכנית, להזין לתוכה מודולי בדיקה, לקבל מידע מסוים על המערכת ועוד הרבה יותר, עליו נדון בהמשך. למרות שאמולטורים של ROM אינם הכלי היחיד או החזק ביותר לניפוי באגים, הם עדיין פופולריים. "אורך החיים" שלהם מוסבר בעצמאותם מסוג הח"כ (נדרשת רק יכולת עבודה עם זיכרון תוכניות חיצוני), תפעול בזמן אמת, מחיר נמוך ונגישות למגוון רחב של מפתחי ציוד וחובבי רדיו. הבה נבחן את הטכנולוגיה של איתור באגים בתוכניות באמצעות אמולטור ROM באמצעות הדוגמה של מיקרו-בקרים ממשפחת MCS-51 (8031, 8051, 80C31, 80C51. KR1816BE31, KR1816BE51, KR1830BE31, KR1830BE51, וכו '). כאשר מתחילים באגים, יש צורך לבדוק את הפונקציונליות של חומרת המערכת וה-MK עצמו. לשם כך, אתה יכול להשתמש במבחני "חשבון חינם" [3]. המורכבים מחיפוש בכל שילובי הקוד האפשריים בקווים של יציאות MK. במהלך הבדיקה, קווי היציאה יוגדרו למצב הפלט, אז קודם כל, בדקו מתרשים המעגלים של ההתקן שניתוק באגים שהם לא נטענים ביציאות של אלמנטים אחרים. נתק באופן זמני עומסים כאלה, אם קיימים. טען את אמולטור ה-ROM עם קודי פקודה "ללא פעולה" (NOP) בתוך כל מרחב הכתובות של תוכניות MK. עבור MCS-51 זהו קוד 00Н. בעת ביצוע "תוכנית" כזו, המיקרו-בקר מחפש ברצף את כל כתובות זיכרון התוכנית. בדוק את האותות של ALE, PME ויציאות P0, P2 עם אוסילוסקופ. האוסילוגרמות בקווי היציאה חייבות להתאים לדיאגרמות התזמון של המונה הבינארי, תוך התחשבות בריבוי הבתים הנמוכים של הכתובת והנתונים ב-P0. לאחר מכן, בדוק את היציאות P1 ו-R1 על ידי טעינת תוכנית הבדיקה המפורטת בטבלה 00 לאמולטור ה-ROM. 0. הוא מוציא רצף של קודים מ-XNUMXH עד XNUMXFFH על הקווים של היציאות שצוינו, המדמה מונה בינארי של שמונה סיביות. אם האוסילוגרמות מתאימות לאלו הנדרשות, שחזר את העומסים המנותקים מהיציאות והמשך לאיפוי באגים בתוכנית העבודה של חבר הכנסת. זכור שאתה מנקה באגים בחלקי התוכנה והחומרה של המערכת בו זמנית, ואל תשכח לנטר מעת לעת את האותות בנקודות בקרה עם אוסילוסקופ. הפער בין סוג האותות לרעיונות שלך לגביהם הוא סיבה לשיקוף רציני ולבדיקות נוספות. כדי להקל על פיתוח וניפוי באגים, עליך לדבוק בעיקרון המודולרי של התכנות, כלומר לחלק את תוכנית MK לחלקים לפי פונקציונליות. זה יקל על העברה של מודולים בודדים, ובמידת הצורך להשתמש בהם בפרויקטים אחרים. המודול שאליו מועברת השליטה לאחר הפעלת החשמל או איפוס ה-MK נקרא הראשי או הראשי. כדאי להעביר את השליטה לנקודת הכניסה לתוכנית באמצעות פקודת קפיצה ולא בקריאה תת שגרתית, כדי לא להעמיס את הערימה בכתובת ההחזרה. כדי להימנע מתוצאות תוכנית בלתי צפויות, הקפד להקצות ערך התחלתי לכל משתנה לפני השימוש בו בפעם הראשונה. במקרים מסוימים, ייתכן שיהיה צורך לאתחל ציוד היקפי. בלוק האתחול ממוקם בתחילת מודול התוכנית הראשי. תצוגה משוערת של מודול התוכנה הראשי בתחילת איתור הבאגים מוצגת בטבלה. 2. הוא מכיל רק את נקודת הכניסה לתוכנית ואת מטפל היציאה. למרות שפלט כזה נמצא בשימוש נדיר ביותר במערכות מיקרו-בקר, יש לספק אותו לצורך השלמתם הנכונה של מצבי חירום. בדוגמה הנבדקת, לאחר סיום העבודה, התוכנית "לולאת". הוא יוצא ממצב זה רק על ידי הפעלה מחדש של המערכת עם אות איפוס חומרה. במהלך איתור באגים, מודולי תוכנה אחרים מתווספים למודול הראשי כשהם מוכנים. הסדר שבו הם מחוברים וניפוי באגים משחק תפקיד חשוב. עליך להתחיל עם הדרייברים של התקני פלט מידע (תצוגה, ממיר דיגיטלי לאנלוגי וכו'), ולבצע את השיחות שלהם במודול הראשי. ואז מנהלי ההתקן של ההתקנים ההיקפיים הנותרים ושגרות עיבוד הנתונים מנופות באגים, ורק לאחר מכן נבדקת הפעולה המשותפת של כל מודולי התוכנה. אם יש תצוגה אלפאנומרית, מנהל ההתקן שלה מנותק תחילה ומשמש בעתיד להצגת מידע באגים, למשל, תוכן זיכרון הנתונים הפנימי של ה-MK. אם נעשה שימוש באמולטור ROM כך שהמידע הכלול בו יכול להיכתב ולקרוא הן על ידי מחשב הבקרה והן על ידי ההתקן המנוגד באגים, ה-MK יכול למקם נתוני איתור באגים באזור הזיכרון הפנוי של אמולטור ה- ROM, והפקד המחשב קורא אותם ומציג אותם על הצג שלו. לדוגמה, כדי להוציא את התוכן של זיכרון RAM הנתונים הפנימי של ה-MK, חבר את פלט אות הכתיבה שלו לזיכרון הנתונים החיצוני (WR) עם כניסת אות הכתיבה של אמולטור ה-ROM והשתמש בתת-השגרה המפורטת בטבלה. 3. ההנחה היא שגודל זיכרון התוכנה של ההתקן שפותח באגים אינו עולה על 32 KB, לכן מידע איתור הבאגים המוצב בזיכרון האמולטור מתחיל בכתובת 8000H. התוכן של האוגרים R0 ו-R1 נשלח בנפרד, מכיוון שהם משמשים מאוחר יותר בתת-השגרה לארגון הלולאה. לאחר הפלט של מידע איתור הבאגים, תוכנית MK מושעה, התוכן של תאי הזיכרון של אמולטור 8000H-807FH ROM נקרא על ידי מחשב הבקרה, מוצג ומנתח. באופן דומה, ניתן להציג את התוכן של כל אוגרי ה-MK הנגישים תוכניתית. כאשר מתחילים לנפות באגים במנהל ההתקן של התקן היקפי, נתק ממנו באופן זמני את אותות הבקרה שנוצרו על ידי המיקרו-בקר כדי למנוע כשל אפשרי במכשיר עקב שגיאות בתוכנית. אם התהליך הוא חד פעמי באופיו, "לולאה" אותו ותכנת את אות סנכרון האוסילוסקופ במידת הצורך. נפה באגים בדרייבר על ידי ניטור האותות שנוצרו על ידי ה-MC עם אוסילוסקופ. לאחר שווידאת שדיאגרמות התזמון של אותות הבקרה תואמות לאלו הנדרשים, חבר את ההתקן ההיקפי והמשך באגים במנהל ההתקן על חומרה אמיתית. לבסוף, הסר רכיבי ניפוי באגים ממודול התוכנה ובדוק את פעולתו בצורתו הסופית. השימוש במשאבי MK משותפים על ידי מודולים שונים מוביל לעתים קרובות למדי לעובדה שהתוכנה שנוגדה באגים מפסיקה לפעול כאשר תת שגרת נוספת מתווספת. לכן, לאחר איתור באגים במודול הבא, ודא שכל הדרייברים ותתי השגרות שנוגלו בעבר ימשיכו לפעול כהלכה. אם התוכנית שלך משתמשת בהפרעות, אל תבטל אותן אלא אם כן הכרחי. אין להסיר מודול שפותח באגים מהתוכנית, גם אם אין בו צורך כרגע. כאשר ה-MK קופא, שיטת לוקליזציית השגיאות הבאה שימושית: הזן נקודות בקרה לתוכנית המציגות מספרים הולכים וגדלים בתצוגה. לאחר ההקפאה, התצוגה תציג את המספר המתאים לנקודת הבידוק האחרונה שעברה בהצלחה. אם כמה מהנקודות הללו נתפסות בלולאה אינסופית, המספרים בתצוגה ישתנו במהירות. על מנת לקבוע אילו נקודות כלולות בלולאה, תצטרכו להאט באופן מלאכותי את שינוי המספרים על ידי קביעת עיכוב תוכנה בעת הפלט של כל אחת מהן, למשל, בצורה של לולאה סרק. אם למערכת שניתוק באגים אין תצוגה מובנית, ניתן להציג מידע על הצג של מחשב הבקרה דרך אזור הזיכרון הפנוי של אמולטור ה-ROM. לאחר ניפוי באגים בכל מנהלי ההתקנים, אנו מתחילים לנפות באגים בשגרות אחרות. אם מישהו מהם מיישם אלגוריתם מורכב לעיבוד או המרת נתונים, הצגת ערך משתנה ביניים אחד או יותר לרוב אינה מספקת מידע מספיק לניתוח שגיאות. כתיבת מידע ניפוי באגים של הנפח הנדרש לאזור הזיכרון הפנוי של ה-ROM אמולטור יעזור להתגבר על הקשיים כאן. לאחר שהשגת פעולה רגילה של כל מודולי התוכנה, אתה יכול לנפות אותם יחד. הקשיים המתעוררים במקרה זה מתחלקים לשתי קבוצות. הראשון כולל את הבעיות של שיתוף משאבים משותפים של המיקרו-בקר: יחידה אריתמטית-לוגית, זיכרון נתונים, יציאות קלט-פלט. השני קשור לתפעול של התקני מיקרו-בקר בזמן אמת. מערכות בזמן אמת הן בדרך כלל מרובות פתילים. מספר משימות תוכנה (שרשורים) פועלות במקביל, תוך אינטראקציה זו עם זו ומשתמשות במשאבים משותפים. אבל בכל רגע, ה-MC, בשל המבנה שלו, פותר רק אחד מהם, עובר לסירוגין לאחרים, תוך התחשבות בעדיפות. קונפליקטים בין משימות נוצרים הן עקב מחסור במשאבים והן עקב חוסר זמן לעיבוד נתונים. לכן, שימו לב במיוחד למשאבי MC המשמשים במודולי תוכנה, ולעיתים קרובות עקוב אחר שינויים במצבם על ידי הצגת מידע באגים. נסו לצמצם את מספר המשתנים הגלובליים, והחליפו אותם במקומיים במידת האפשר. עקוב אחר מצב הערימה. הערך את זמן הביצוע של חלקים קריטיים בתוכנית, בדוק את המערכת עבור ערכים שונים של אותות קלט האפשריים בפועל. באמצעות אמולטור ROM, ניתן גם לבצע ניפוי באגים בתוכנה המיועדת לעבוד בזיכרון הפנימי של ה-MK, אם תציב אותה באופן זמני בזיכרון התוכנה החיצוני. מכיוון שבמקרה זה היציאות P0 ו-P2 יהיו עסוקים בשירות הזיכרון החיצוני, אז אם קווי ה-I/O הפנויים הנותרים של ה-MK אינם מספיקים, P0 ו-P2 מוחלפים ביציאות I/O הכתובות כתאי זיכרון נתונים חיצוניים. הם מחוברים לפי מעגלים סטנדרטיים, באמצעות אוגרי טריגר להגדלת מספר קווי המוצא, ואלמנטים עם שלושה מצבי מוצא להגדלת מספר קווי הקלט. לאחר איתור באגים במערכת באמצעות אמולטור, הסר ממנו רכיבי איתור באגים, כתוב את התוכנית ל-ROM (או לזיכרון התוכנה הפנימי של ה-MK) ובדוק את פעולת המכשיר בצורתו הסופית. ספרות
מחברים: G. Vydolob, V. Samoilov, מוסקבה (זלנוגרד) ראה מאמרים אחרים סעיף מיקרו-בקרים. תקרא ותכתוב שימושי הערות על מאמר זה. חדשות אחרונות של מדע וטכנולוגיה, אלקטרוניקה חדשה: התמצקות של חומרים בתפזורת
30.04.2024 ממריץ מוח מושתל
30.04.2024 תפיסת הזמן תלויה במה מסתכלים
29.04.2024
עוד חדשות מעניינות: ▪ מצלמת פעולה Garmin VIRB Ultra 30 ▪ טיטאניק נאכלת על ידי חיידקים ▪ HP EliteBook Folio Notebook PC ▪ דרך אקולוגית למחזר פאנלים סולאריים ישנים עדכון חדשות של מדע וטכנולוגיה, אלקטרוניקה חדשה
חומרים מעניינים של הספרייה הטכנית החופשית: ▪ קטע של האתר חיים של פיזיקאים מדהימים. בחירת מאמרים ▪ מאמר מדוע בנג'מין פרנקלין התנגד לשים את הנשר על סמל ארה"ב? תשובה מפורטת ▪ מאמר אופני סילון מים. הובלה אישית ▪ מאמר מגבר כלכלי. אנציקלופדיה של רדיו אלקטרוניקה והנדסת חשמל ▪ מאמר מטען לתאים גלווניים. אנציקלופדיה של רדיו אלקטרוניקה והנדסת חשמל כל השפות של דף זה בית | הספרייה | מאמרים | <font><font>מפת אתר</font></font> | ביקורות על האתר www.diagram.com.ua |