MICROCHIP MPLAB XC8 C קאַמפּיילער ווייכווארג
דער דאָקומענט כּולל וויכטיק אינפֿאָרמאַציע מיט די MPLAB XC8 C קאַמפּיילער ווען טאַרגאַטינג מיקראָטשיפּ אַוור דעוויסעס.
ביטע לייענען עס איידער איר לויפן דעם ווייכווארג. זען די מעלדונג הערות פֿאַר MPLAB XC8 C קאַמפּיילער פֿאַר פּיק דאָקומענט אויב איר נוצן דעם קאַמפּיילער פֿאַר 8-ביסל פּיק דעוויסעס.
איבערview
הקדמה
די מעלדונג פון די מיקראָטשיפּ MPLAB® XC8 C קאַמפּיילער כּולל עטלעכע נייַע פֿעיִקייטן, זשוק פיקסיז און שטיצן פֿאַר נייַע מיטל.
בויען טאָג
דער באַאַמטער בויען טאָג פון דעם קאַמפּיילער ווערסיע איז 3 יולי 2022.
פֿריִערדיקע ווערסיע
די פריערדיקע MPLAB XC8 C קאַמפּיילער ווערסיע איז געווען 2.39, אַ פאַנגקשאַנאַל זיכערקייַט קאַמפּיילער, געבויט אויף 27 יאנואר 2022. די פריערדיקע נאָרמאַל קאַמפּיילער איז געווען ווערסיע 2.36, געבויט אויף 27 יאנואר 2022.
פאַנגקשאַנאַל סאַפעטי מאַנואַל
א פאַנגקשאַנאַל סאַפעטי מאַנואַל פֿאַר די MPLAB XC קאָמפּילערס איז בנימצא אין די דאַקיומענטיישאַן פּעקל ווען איר קויפן אַ פאַנגקשאַנאַל זיכערקייַט דערלויבעניש.
קאָמפּאָנענט ליסענסעס און ווערסיעס
די MPLAB® XC8 C קאַמפּיילער פֿאַר AVR MCU מכשירים זענען געשריבן און פונאנדערגעטיילט אונטער די GNU אַלגעמיינע פּובליק ליסענסע (GPL), וואָס מיטל אַז זיין מקור קאָד איז פרילי פונאנדערגעטיילט און בנימצא צו דעם ציבור. דער מקור קאָד פֿאַר מכשירים אונטער די GNU GPL קען זיין דאַונלאָודיד סעפּעראַטלי פֿון מיקראָטשיפּ webפּלאַץ. איר קענט לייענען די GNU GPL אין די file דער נאָמען איז ליגן די סובדירעקטאָרי פון דיין ינסטאַלירן וועגווייַזער. א אַלגעמיינע דיסקוסיע פון פּרינסאַפּאַלז אַנדערלייינג די GPL קען זיין געפֿונען דאָ. שטיצן קאָד צוגעשטעלט פֿאַר די כעדער files, לינקער סקריפּס און רונטימע לייברעריז זענען פּראַפּרייאַטערי קאָד און נישט באדעקט אונטער די GPL.
דער קאַמפּיילער איז אַן ימפּלאַמענטיישאַן פון GCC ווערסיע 5.4.0, בינוטילס ווערסיע 2.26, און ניצט avr-libc ווערסיע 2.0.0.
סיסטעם רעקווירעמענץ
די MPLAB XC8 C קאַמפּיילער און די לייסאַנסינג ווייכווארג וואָס עס ניצט זענען בארעכטיגט פֿאַר פאַרשידן אָפּערייטינג סיסטעמען, אַרייַנגערעכנט 64-ביסל ווערסיעס פון די פאלגענדע: פאַכמאַן אויסגאבעס פון Microsoft Windows 10; Ubuntu 18.04; און macOS 10.15.5. בינאַריעס פֿאַר Windows האָבן שוין קאָד-געחתמעט. בינאַריעס פֿאַר מעק האָבן שוין קאָד-געחתמעט און נאָטאַריזעד.
אויב איר לויפן אַ נעץ דערלויבעניש סערווער, בלויז קאָמפּיוטערס מיט אָפּערייטינג סיסטעמען געשטיצט דורך די קאַמפּיילערז קענען זיין געוויינט צו באַלעבאָס די דערלויבעניש סערווער. זינט Xclm ווערסיע 2.0, די נעץ דערלויבעניש סערווער קענען זיין אינסטאַלירן אויף אַ Microsoft Windows Server פּלאַטפאָרמע, אָבער דער דערלויבעניש סערווער דאַרף נישט לויפן אויף אַ סערווער ווערסיע פון די אָפּערייטינג סיסטעם.
סופּפּאָרטעד דעוויסעס
דער קאַמפּיילער שטיצט אַלע 8-ביסל AVR MCU דעוויסעס באַוווסט אין דער צייט פון מעלדונג. זען (אין די דאָק וועגווייַזער פון די קאַמפּיילער) פֿאַר אַ רשימה פון אַלע שטיצט דעוויסעס. די fileס אויך רשימה קאַנפיגיעריישאַן ביסל סעטטינגס פֿאַר יעדער מיטל.
אַדישאַנז און ליסענסע ופּגראַדעס
די MPLAB XC8 קאַמפּיילער קענען זיין אַקטיווייטיד ווי אַ לייסאַנסט (פּראָ) אָדער אַנלייסאַנסט (פריי) פּראָדוקט. איר דאַרפֿן צו קויפן אַן אַקטאַוויישאַן שליסל צו דער דערלויבעניש דיין קאַמפּיילער. א דערלויבעניש אַלאַוז אַ העכער מדרגה פון אַפּטאַמאַזיישאַן קאַמפּערד מיט די פריי פּראָדוקט. אַן אַנלייסאַנסט קאַמפּיילער קענען זיין אַפּערייטאַד ינדעפאַנאַטלי אָן אַ דערלויבעניש.
אַ MPLAB XC8 פאַנגקשאַנאַל סאַפעטי קאַמפּיילער מוזן זיין אַקטיווייטיד מיט אַ פאַנגקשאַנאַל זיכערקייַט דערלויבעניש פּערטשאַסט פֿון מיקראָטשיפּ. דער קאַמפּיילער וועט נישט אַרבעטן אָן דעם דערלויבעניש. אַמאָל אַקטיווייטיד, איר קענען אויסקלייַבן קיין אַפּטאַמאַזיישאַן מדרגה און נוצן אַלע די קאַמפּיילער פֿעיִקייטן. די מעלדונג פון די MPLAB XC פאַנגקשאַנאַל סאַפעטי קאַמפּיילער שטיצט די נעטוואָרק סערווירער ליסענסע.
זען די ינסטאָלינג און ליסענסינג MPLAB XC C קאָמפּילערס (DS50002059) דאָקומענט פֿאַר אינפֿאָרמאַציע וועגן דערלויבעניש טייפּס און ינסטאַלירונג פון די קאַמפּיילער מיט אַ דערלויבעניש.
ייַנמאָנטירונג און אַקטאַוויישאַן
זען אויך די מיגראַטיאָן ישוז און לימיטיישאַנז סעקשאַנז פֿאַר וויכטיק אינפֿאָרמאַציע וועגן די לעצטע דערלויבעניש פאַרוואַלטער אַרייַנגערעכנט מיט דעם קאַמפּיילער.
אויב איר נוצן MPLAB IDE, זיין זיכער צו ינסטאַלירן די לעצטע MPLAB X IDE ווערסיע 5.0 אָדער שפּעטער איידער איר ינסטאַלירן דעם געצייַג. פאַרלאָזן די IDE איידער איר ינסטאַלירן די קאַמפּיילער. לויפן די .עקסע (ווינדאָוז), .רון (לינוקס) אָדער אַפּ (מאַקאָס) קאַמפּיילער ינסטאַללער אַפּלאַקיישאַן, למשל XC8-1.00.11403-windows.exe און נאָכגיין די אינסטרוקציעס אויף דעם עקראַן.
די פעליקייַט ינסטאַלירונג וועגווייַזער איז רעקאַמענדיד. אויב איר נוצן לינוקס, איר מוזן ינסטאַלירן די קאַמפּיילער מיט אַ וואָקזאַל און פֿון אַ וואָרצל חשבון. ינסטאַלירן מיט אַ macOS חשבון מיט אַדמיניסטראַטאָר פּריווילאַדזשאַז.
אַקטאַוויישאַן איז איצט דורכגעקאָכט סעפּעראַטלי צו ינסטאַלירונג. זען דעם דאָקומענט ליסענסע מאַנאַגער פֿאַר MPLAB® XC C קאָמפּילערס (DS52059) פֿאַר מער אינפֿאָרמאַציע.
אויב איר קלייַבן צו לויפן דעם קאַמפּיילער אונטער די אפשאצונג דערלויבעניש, איר וועט איצט באַקומען אַ ווארענונג בעשאַס זאַמלונג ווען איר זענט ין 14 טעג פון די סוף פון דיין אפשאצונג צייַט. דער זעלביקער ווארענונג איז ארויס אויב איר זענט ין 14 טעג פון די סוף פון דיין HPA אַבאָנעמענט.
די XC נעטוואָרק ליסענסע סערווירער איז אַ באַזונדער ינסטאַללער און איז נישט אַרייַנגערעכנט אין די איין-באַניצער קאַמפּיילער ינסטאַללער.
די XC ליסענסע מאַנאַגער איצט שטיצט ראָומינג פון פלאָוטינג נעץ לייסאַנסיז. אַימעד צו רירעוודיק ניצערס, דעם שטריך אַלאַוז אַ פלאָוטינג דערלויבעניש צו גיין אַוועק די נעץ פֿאַר אַ קורץ צייט. מיט דעם שטריך, איר קענען דיסקאַנעקט פון די נעץ און נאָך נוצן דיין MPLAB XC קאַמפּיילער. זען די דאָק טעקע פון די XCLM ינסטאַלירן פֿאַר מער וועגן דעם שטריך. MPLAB X IDE כולל אַ ליסענסע פֿענצטער (מכשירים > ליסענסעס) צו וויזשוואַלי פירן ראָומינג.
סאַלווינג ינסטאַללאַטיאָן ישוז
אויב איר דערפאַרונג שוועריקייטן צו ינסטאַלירן די קאַמפּיילער אונטער קיין פון די Windows אָפּערייטינג סיסטעמען, פּרוּווט די פאלגענדע פֿירלייגן.
- לויפן די ינסטאַלירונג ווי אַ אַדמיניסטראַטאָר.
- שטעלן די פּערמישאַנז פון די ינסטאַללער אַפּלאַקיישאַן צו 'גאַנץ קאָנטראָל'. (רעכט גיט די file, אויסקלייַבן פּראָפּערטיעס, זיכערהייט קוויטל, סעלעקטירן באַניצער, רעדאַגירן.)
- שטעלן פּערמישאַנז פון די טעמפּ טעקע צו "גאַנץ קאָנטראָל!
צו באַשטימען דעם אָרט פון די טעמפּ טעקע, טיפּ% טעמפּ% אין די לויפן באַפֿעל (Windows לאָגאָ שליסל + ר). דאָס וועט עפענען אַ file Explorer דיאַלאָג וואָס ווייַזן דעם וועגווייַזער און וועט לאָזן איר צו באַשטימען דעם דרך פון דעם טעקע.
קאַמפּיילער דאַקיומענטיישאַן
די באַניצער גוידעס פון די קאַמפּיילער קענען זיין עפן פֿון די HTML בלאַט וואָס עפֿנט זיך אין דיין בלעטערער ווען איר קליקט אויף די בלוי הילף קנעפּל אין MPLAB X IDE דאַשבאָרד, ווי געוויזן אין די סקרעענשאָט.
אויב איר בויען פֿאַר 8-ביסל אַוור טאַרגאַץ, די MPLAB® XC8 C קאַמפּיילער באַניצער גייד פֿאַר AVR® MCU כּולל אינפֿאָרמאַציע וועגן די קאַמפּיילער אָפּציעס און פֿעיִקייטן וואָס זענען אָנווענדלעך צו דעם אַרקאַטעקטשער.
קונה שטיצן
מיקראָטשיפּ באַגריסן זשוק ריפּאָרץ, פֿירלייגן אָדער באַמערקונגען וועגן דעם קאַמפּיילער ווערסיע. ביטע דירעקט קיין זשוק ריפּאָרץ אָדער שטריך ריקוועס דורך די שטיצן סיסטעם.
דאַקיומענטיישאַן ופּדאַטעס
פֿאַר אָנליין און דערהייַנטיקט ווערסיעס פון MPLAB XC8 דאַקיומענטיישאַן, ביטע באַזוכן מיקראָטשיפּ ס אָנליין טעכניש דאַקיומענטיישאַן webפּלאַץ.
ניו אָדער דערהייַנטיקט AVR דאַקיומענטיישאַן אין דעם מעלדונג:
- MUSL דרוקרעכט מעלדונג
- ינסטאָלינג און ליסענסינג MPLAB XC C קאָמפּילערס (רעוויזיע M)
- MPLAB XC8 באַניצער גייד פֿאַר עמבעדיד ענדזשאַנירז - AVR MCUs (רעוויזיע א)
- MPLAB XC8 C קאַמפּיילער באַניצער גייד פֿאַר AVR MCU (רעוויזיע F)
- מיקראָטשיפּ וניפיעד נאָרמאַל ביבליאָטעק רעפערענץ גייד (רעוויזיע ב)
די מיקראָטשיפּ וניפיעד סטאַנדאַרד ביבליאָטעק רעפערענץ גייד באשרייבט די נאַטור פון און צובינד צו די פאַנגקשאַנז דיפיינד דורך די מיקראָטשיפּ וניפיעד סטאַנדאַרד ביבליאָטעק, ווי געזונט ווי די בדעה נוצן פון די ביבליאָטעק טייפּס און מאַקראָס. עטלעכע פון די אינפֿאָרמאַציע איז געווען אַמאָל קאַנטיינד אין די MPLAB® XC8 C קאַמפּיילער באַניצער! ס גייד פֿאַר AVR® MCU. מיטל-ספּעציפיש ביבליאָטעק אינפֿאָרמאַציע איז נאָך קאַנטיינד אין דעם קאַמפּיילער פירער.
אויב איר נאָר אָנהייבן מיט 8-ביסל דעוויסעס און די MPLAB XC8 C קאַמפּיילער, די MPLAB® XC8 User!'s Guide for Embedded Engineers - AVR® MCUs (DS50003108) האט אינפֿאָרמאַציע וועגן באַשטעטיקן פּראַדזשעקס אין די MPLAB X IDE און שרייבן קאָד. פֿאַר דיין ערשטער MPLAB XC8 C פּרויעקט. דער פירער איז איצט פונאנדערגעטיילט מיט די קאַמפּיילער.
די האַמאַטע באַניצער גייד איז אַרייַנגערעכנט אין די דאָקס וועגווייַזער אין דעם מעלדונג. דער פירער איז בדעה פֿאַר יענע וואָס לויפן Hamate ווי אַ סטאַנדאַלאָנע אַפּלאַקיישאַן.
וואָס ס ניו
די פאלגענדע זענען נייַע AVR-ציל פֿעיִקייטן וואָס די קאַמפּיילער איצט שטיצט. די ווערסיע נומער אין די סאַבכעדינגס ינדיקייץ דער ערשטער קאַמפּיילער ווערסיע צו שטיצן די פאלגענדע פֿעיִקייטן.
ווערסיע 2.40
נייַ מיטל שטיצן סופּפּאָרט איז איצט בנימצא פֿאַר די פאלגענדע אַוור פּאַרץ: AT90PWM3, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR64EA28, AVR64EA, AVR32EA און AVR64EA.
ימפּרוווד פּראַסידזשעראַל אַבסטראַקציע די פּראַסידזשעראַל אַבסטראַקציע (PA) אַפּטאַמאַזיישאַן געצייַג איז ימפּרוווד אַזוי אַז קאָד מיט אַ פונקציע רופן לימעד (רופן צוריקרופן)) קענען זיין אַוטליינד. דאָס וועט נאָר פּאַסירן אויב דער אָנלייגן איז נישט געניצט צו פאָרן אַרגומענטן צו אָדער באַקומען צוריק ווערט פון די פֿונקציע. דער אָנלייגן איז געניצט ווען רופן אַ פֿונקציע מיט אַ וועריאַבאַל אַרגומענט רשימה אָדער ווען רופן אַ פֿונקציע וואָס נעמט מער אַרגומענטן ווי עס זענען רעדזשיסטערז דעזיגנייטיד פֿאַר דעם צוועק. דעם שטריך קענען זיין פאַרקריפּלט מיט די מאָנק-פּאַ-אַוטליין-קאַללס אָפּציע, אָדער פּראַסידזשעראַל אַבסטראַקציע קענען זיין פאַרקריפּלט לעגאַמרע פֿאַר אַ כייפעץ file אָדער פונקציאָנירן דורך ניצן די -monk-pa-on-file און -mo.-pa-on-function ריספּעקטיוולי, אָדער דורך ניצן די ניפּאַ אַטריביוט (ניפּאַ ספּעסיפיער) סאַלעקטיוולי מיט פאַנגקשאַנז
קאָוד קאַווערידזש מאַקראָו דער קאַמפּיילער איצט דיפיינז די מאַקראָו __CODECOV אויב אַ גילטיק מקאָדעקאָוו אָפּציע איז ספּעסיפיעד.
זכּרון רעזערוואַציע אָפּציע דער xc8-cc שאָפער וועט איצט אָננעמען די -mreserve=space@start: סוף אָפּציע ווען איר בויען פֿאַר אַוור טאַרגאַץ. דער אָפּציע ריזערווז די ספּעסיפיעד זכּרון קייט אין די דאַטן אָדער פּראָגראַם זכּרון פּלאַץ, פּרעווענטינג די לינקער פון פּאַפּיאַלייטינג קאָד אָדער אַבדזשעקץ אין דעם געגנט.
סמאַרטער קלוג יאָ עטלעכע ימפּרווומאַנץ זענען געמאכט צו די Smart IO פאַנגקשאַנז, אַרייַנגערעכנט אַלגעמיינע טוויקס צו די פּרינטף האַרץ קאָד, טרעאַטינג די %n קאַנווערזשאַן ספּעסיפיער ווי אַ פרייַ וואַריאַנט, פֿאַרבינדונג אין וואַראַרג קנאַל רוטינז אויף פאָדערונג, ניצן קירצער דאַטן טייפּס אויב מעגלעך פֿאַר האַנדלינג IO פונקציע אַרגומענטן , און פאַקטאָר פּראָסט קאָד אין פעלד ברייט און פּינטלעכקייַט האַנדלינג. דאָס קען פירן צו באַטייטיק סייווינגז קאָד און דאַטן, ווי געזונט ווי פאַרגרעסערן די דורכפירונג גיכקייַט פון IO.
ווערסיע 2.39 (פאַנגקשאַנאַל סאַפעטי מעלדונג)
נעץ סערווירער ליסענסע די מעלדונג פון די MPLAB XC8 פאַנגקשאַנאַל סאַפעטי קאַמפּיילער שטיצט די נעטוואָרק סערווירער ליסענסע.
ווערסיע 2.36
קיינער.
ווערסיע 2.35
נייַ מיטל שטיצן שטיצן איז בארעכטיגט פֿאַר די פאלגענדע אַוור פּאַרץ: ATTINY3224, ATTINY3226, ATTINY3227, AVR64DD14, AVR64DD20, AVR64DD28 און AVR64DD32.
ימפּרוווד קאָנטעקסט סוויטשינג די נייַע -mcall-isr-prologues אָפּציע ענדערונגען ווי יבעררייַסן פאַנגקשאַנז שפּאָרן רעדזשיסטערז אויף פּאָזיציע און ווי די רעדזשיסטערז זענען געזונט ווען די ינטעראַפּט רוטין טערמאַנייץ. עס אַרבעט אין אַ ענלעך וועג צו די -mcall-prologues אָפּציע, אָבער בלויז אַפעקץ ינטעראַפּט פאַנגקשאַנז (ISRs).
אפילו מער ימפּרוווד קאָנטעקסט סוויטשינג די נייַע -mgas-isr-prologues אָפּציע קאָנטראָלס די קאַנטעקסץ יטשינג קאָד דזשענערייטאַד פֿאַר קליין יבעררייַסן סערוויס רוטינז. ווען ענייבאַלד, דעם שטריך וועט האָבן די אַסעמבאַלער יבערקוקן די ISR פֿאַר רעגיסטרירן באַניץ און בלויז ראַטעווען די געוויינט רעדזשיסטערז אויב פארלאנגט.
קאָנפיגוראַבלע בליץ מאַפּינג עטלעכע דעוויסעס אין די AVR DA און AVR DB משפּחה האָבן אַ SFR (למשל FLMAP) וואָס ספּעציפיצירט וואָס 32 ק אָפּטיילונג פון פּראָגראַם זכּרון וועט זיין מאַפּט אין די דאַטן זכּרון. די נייַע - mconst-data-in-config-mapped-proem אָפּציע קענען ווערן גענוצט צו לאָזן די לינקער שטעלן אַלע קאָנס קוואַלאַפייד דאַטן אין איין 32 ק אָפּטיילונג און אויטאָמאַטיש ינישאַלייז די באַטייַטיק SFR רעגיסטרירן צו ענשור אַז די דאַטן זענען מאַפּט אין די דאַטן זכּרון פּלאַץ , ווו עס וועט זיין אַקסעסט מער יפעקטיוולי.
מיקראָטשיפּ וניפיעד סטאַנדאַרד ליבראַריעס כל MPLAB XC קאָמפּילערס וועט טיילן אַ מיקראָטשיפּ וניפיעד סטאַנדאַרד ביבליאָטעק, וואָס איז איצט בנימצא מיט דעם מעלדונג פון MPLAB XC8. די MPLAB® XC8 C קאַמפּיילער באַניצער גייד / אָדער AVR® MCU ניט מער די דאַקיומענטיישאַן פֿאַר די נאָרמאַל פאַנגקשאַנז. די אינפֿאָרמאַציע קענען איצט זיין געפֿונען אין די מיקראָטשיפּ וניפיעד סטאַנדאַרד ביבליאָטעק רעפערענץ גייד. באַמערקונג אַז עטלעכע פאַנגקשאַנאַליטי ביז אַהער דיפיינד דורך avr-libc איז ניט מער בנימצא. (זע ביבליאָטעק): '. פאַנגקשאַנאַליטי ...)
סמאַרט יאָ ווי אַ טייל פון די נייַע יונאַפייד לייברעריז, IO פאַנגקשאַנז אין די דרוקן און יבערקוקן פאַמיליעס זענען איצט מנהג דזשענערייטאַד אויף יעדער בויען, באזירט אויף ווי די פאַנגקשאַנז זענען געניצט אין דעם פּראָגראַם. דאָס קען באטייטיק רעדוצירן די רעסורסן געניצט דורך אַ פּראָגראַם.
סמאַרט יאָ הילף אָפּציע ווען אַנאַלייזינג קאַללס צו סמאַרט יאָ פאַנגקשאַנז (אַזאַ ווי printf () אָדער scanf () ), דער קאַמפּיילער קען נישט שטענדיק באַשליסן פֿון די פֿאָרמאַט שטריקל אָדער אָפּשיקן פֿון די אַרגומענטן די קאַנווערזשאַן ספּעסיפיערס פארלאנגט דורך די רופן. ביז אַהער, דער קאַמפּיילער וואָלט שטענדיק מאַכן קיין אַסאַמפּשאַנז און ענשור אַז גאָר פאַנגקשאַנאַל יאָ פאַנגקשאַנז זענען לינגקט אין די לעצט פּראָגראַם בילד. א נייַע - msmart-io-format=fmt אָפּציע איז צוגעלייגט אַזוי אַז דער קאַמפּיילער קענען אַנשטאָט זיין ינפאָרמד דורך די באַניצער פון די קאַנווערזשאַן ספּעסיפיערס געניצט דורך סמאַרט IO פאַנגקשאַנז וועמענס באַניץ איז אַמביגיואַס, פּרעווענטינג יבעריק לאַנג IO רוטינז פון לינגקט. (זען Smart-io-Format אָפּציע פֿאַר מער דעטאַילס.)
פּלייסינג מנהג סעקשאַנז ביז אַהער, די -Wl, -section-start אָפּציע בלויז געשטעלט די ספּעסיפיעד אָפּטיילונג אין די געבעטן אַדרעס ווען די לינקער שריפט דיפיינד אַ רעזולטאַט אָפּטיילונג מיט די זעלבע נאָמען. ווען דאָס איז נישט דער פאַל, די אָפּטיילונג איז געווען געשטעלט אין אַ אַדרעס אויסדערוויילט דורך די לינקער און די אָפּציע איז יסענשאַלי איגנאָרירט. איצט די אָפּציע וועט זיין אַנערד פֿאַר אַלע מנהג סעקשאַנז, אפילו אויב די לינקער שריפט קען נישט דעפינירן דעם אָפּטיילונג. באַמערקונג, אָבער, אַז פֿאַר נאָרמאַל סעקשאַנז, אַזאַ . טעקסט, . bss אָדער . דאַטן, דער בעסטער פּאַסיק אַלאַקאַטאָר וועט נאָך האָבן גאַנץ קאָנטראָל איבער זייער פּלייסמאַנט, און די אָפּציע וועט האָבן קיין ווירקונג. ניצן די -Wl, -Tsection=add אָפּציע, ווי דיסקרייבד אין די באַניצער ס פירער.
ווערסיע 2.32
אָנלייגן גיידאַנס בנימצא מיט אַ פּראָ קאַמפּיילער דערלויבעניש, דער אָנלייגן גיידאַנס שטריך פון די קאַמפּיילער קענען ווערן גענוצט צו אָפּשאַצן די מאַקסימום טיפקייַט פון קיין אָנלייגן געניצט דורך אַ פּראָגראַם. עס קאַנסטראַקץ און אַנאַליזעס די רופן גראַפיק פון אַ פּראָגראַם, דיטערמאַנז די אָנלייגן באַניץ פון יעדער פֿונקציע, און טראגט אַ באַריכט, פֿון וואָס די טיפקייַט פון סטאַקס געניצט דורך די פּראָגראַם קענען זיין ינפערד. דעם שטריך איז ענייבאַלד דורך די -mchp-stack-usage באַפֿעלן שורה אָפּציע. א קיצער פון אָנלייגן באַניץ איז געדרוקט נאָך דורכפירונג. א דיטיילד אָנלייגן באַריכט איז בנימצא אין דער מאַפּע file, װא ם מע ן קע ן פארלאנגע ן אויפ ן געװײנלעכ ן אופן .
שטיצן פֿאַר נייַע מיטל איז בנימצא פֿאַר די פאלגענדע אַוור פּאַרץ: ATTINY 427, ATTINY 424, ATTINY 426, ATTINY827, ATTINY824, ATTINY826, AVR32DB32, AVR64DB48, AVR64DB64, AVR64DB28, AVR32DB28, AVR64DB32, AVR32DB48, AVRXNUMXDBXNUMX און AVRXNUMXDBXNUMX.
שטיצן פֿאַר ריטראַקטיד מיטל איז ניט מער בנימצא פֿאַר די פאלגענדע AVR פּאַרץ: AVR16DA28, AVR16DA32 און AVR16DA48.
ווערסיע 2.31
קיינער.
ווערסיע 2.30
ניו אָפּציע צו פאַרמייַדן דאַטן יניטיאַליזאַטיאָן א נייַע -mno-data-ini t דרייווער אָפּציע פּריווענץ די יניטיאַליזיישאַן פון דאַטן און די ויסמעקן פון bss סעקשאַנז. עס אַרבעט דורך סאַפּרעסינג די רעזולטאַט פון די do_ copy_ דאַטן און do_ clear_ bss סימבאָלס אין פֿאַרזאַמלונג files, וואָס וועט אין קער פאַרמייַדן די ינקלוזשאַן פון די רוטינז דורך די לינקער.
ימפּרוווד אָפּטימיזאַטיאָנס א נומער פון אַפּטאַמאַזיישאַן ימפּרווומאַנץ זענען געמאכט, אַרייַנגערעכנט די באַזייַטיקונג פון יבעריק קריק אינסטרוקציעס, די באַזייַטיקונג פון עטלעכע דזשאַמפּס נאָך אַ האָפּקען-אויב-ביסל-איז לימעד, און ימפּרוווד פּראַסידזשעראַל אַבסטראַקציע און די פיייקייט צו יטערייט דעם פּראָצעס.
נאָך אָפּציעס זענען איצט בנימצא צו קאָנטראָלירן עטלעכע פון די אָפּטימיזאַטיאָנס, ספּאַסיפיקלי -f אָפּטיילונג אַנגקערז, וואָס אַלאַוז אַקסעס פון סטאַטיק אַבדזשעקץ צו זיין פּערפאָרמד קאָרעוו צו איין סימבאָל; -mpai derations=n, וואָס אַלאַוז די נומער פון פּראַסידזשעראַל אַבסטראַקציע יטעריישאַנז צו זיין געביטן פון די פעליקייַט פון 2; און, -mpa- call cost- shortcall, וואָס פּערפאָרמז מער אַגרעסיוו פּראַסידזשעראַל אַבסטראַקציע, אין דער האָפענונג אַז דער לינקער קענען אָפּרוען לאַנג קאַללס. די לעצטע אָפּציע קענען פאַרגרעסערן קאָד גרייס אויב די אַנדערלייינג אַסאַמפּשאַנז זענען נישט איינגעזען.
נייַ מיטל שטיצן שטיצן איז בארעכטיגט פֿאַר די פאלגענדע AVR פּאַרץ: AVR16DA28, AVR16DA32,
AVR16DA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR128DB28, AVR128DB32, AVR128DB48, און AVR128DB.
ריטראַקטיד מיטל שטיצן שטיצן איז ניט מער בנימצא פֿאַר די פאלגענדע אַוור טיילן: ATA5272, ATA5790, ATA5790N,ATA5791,ATA5795,ATA6285,ATA6286,ATA6612C,ATA6613C,ATA6614Q, ATA6616C, ATA6617C, און ATA664251ATA.
ווערסיע 2.29 (פאַנגקשאַנאַל סאַפעטי מעלדונג)
כעדער file פֿאַר קאַמפּיילער געבויט-ינס צו ענשור אַז דער קאַמפּיילער קענען קאַנפאָרם צו שפּראַך ספּעסאַפאַקיישאַנז אַזאַ ווי MISRA, די כעדער file, וואָס איז אויטאָמאַטיש אַרייַנגערעכנט דורך , איז דערהייַנטיקט. דער כעדער כּולל די פּראָוטאַטייפּס פֿאַר אַלע אין-געבויט פאַנגקשאַנז, אַזאַ ווי _buil tin _avrnop () און _buil tin_ avr delay_ cycles (). עטלעכע געבויט-ינס קען נישט זיין MISRA געהאָרכיק; די קענען זיין איבערגעהיפּערט דורך אַדינג די דעפינירן _Xe_ STRICT_ MISRA צו די קאַמפּיילער באַפֿעלן שורה. די געבויט-ינס און זייער דעקלעריישאַנז זענען דערהייַנטיקט צו נוצן פאַרפעסטיקט ברייט טייפּס.
ווערסיע 2.20
נייַ מיטל שטיצן שטיצן איז בארעכטיגט פֿאַר די פאלגענדע אַוור פּאַרץ: ATTINY1624, ATTINY1626 און ATTINY1627.
בעסער בעסטער פּאַסיק אַלאַקיישאַן דער בעסטער פּאַסיק אַלאַקאַטאָר (BFA) אין די קאַמפּיילער איז ימפּרוווד אַזוי אַז סעקשאַנז זענען אַלאַקייטיד אין אַ סדר וואָס אַלאַוז בעסער אַפּטאַמאַזיישאַן. די BFA איצט שטיצט גערופֿן אַדרעס ספּייסאַז און בעסער כאַנדאַלז דאַטן יניטיאַליזיישאַן.
ימפּרוווד פּראַסידזשעראַל אַבסטראַקציע די פּראַסידזשעראַל אַבסטראַקציע אָפּטימיזאַטיאָנס זענען איצט דורכגעקאָכט אויף מער קאָד סיקוואַנסיז. פריער סיטואַטיאָנס ווו די אַפּטאַמאַזיישאַן קען האָבן געוואקסן קאָד גרייס האָבן שוין גערעדט דורך מאכן די אַפּטאַמאַזיישאַן קאָד אַווער פון די מיסט זאַמלונג פּראָצעס פון די לינקער.
אַוועק פון אַוור אַסעמבלער די AVR אַסעמבלער איז ניט מער אַרייַנגערעכנט אין דעם פאַרשפּרייטונג.
ווערסיע 2.19 (פאַנגקשאַנאַל סאַפעטי מעלדונג)
קיינער.
ווערסיע 2.10
קאָוד קאַווערידזש דעם מעלדונג כולל אַ קאָד קאַווערידזש שטריך וואָס פאַסילאַטייץ אַנאַליסיס פון די מאָס אין וואָס אַ פּרויעקט ס מקור קאָד איז עקסאַקיוטאַד. ניצן די אָפּציע -mcodecov=ram צו געבן עס. נאָך דורכפירונג פון די פּראָגראַם אויף דיין ייַזנוואַרג, קאָד קאַווערידזש אינפֿאָרמאַציע וועט זיין קאַלעקטאַד אין די מיטל, און דאָס קענען זיין טראַנספערד צו און געוויזן דורך די MPLAB X IDE דורך אַ קאָד קאַווערידזש פּלוגין. זען די IDE דאַקיומענטיישאַן פֿאַר אינפֿאָרמאַציע אויף דעם פּלוגין קענען זיין באקומען. די #פּראַגמאַ מקאָדעקאָוו קען זיין געוויינט צו ויסשליסן סאַבסאַקוואַנט פאַנגקשאַנז פון די קאַווערידזש אַנאַליסיס. ידעאַללי די פּראַגמאַ זאָל זיין מוסיף אין די אָנהייב פון די file צו ויסשליסן אַז גאַנץ file פון די קאַווערידזש אַנאַליסיס. אַלטערנאַטיוועלי, די אַטריביוט ((מקאָדעקאָוו)) קען זיין געניצט צו ויסשליסן אַ ספּעציפיש פֿונקציע פון די קאַווערידזש אַנאַליסיס.
דיווייס באַשרייַבונג files א נייַע מיטל file גערופן avr chipinfo. HTML איז ליגן אין די דאָקס Directory פון די קאַמפּיילער פאַרשפּרייטונג. דאס file רשימות אַלע דעוויסעס געשטיצט דורך די קאַמפּיילער. דריקט אויף אַ מיטל נאָמען, און עס וועט עפענען אַ בלאַט וואָס ווייַזן אַלע די אַלאַואַבאַל קאַנפיגיעריישאַן ביסל באַשטעטיקן / ווערט פּערז פֿאַר דעם מיטל, מיט עקס.amples.
פּראַסידזשעראַל אַבסטראַקציע פּראַסידזשעראַל אַבסטראַקציע אָפּטימיזאַטיאָנס, וואָס פאַרבייַטן פּראָסט בלאַקס פון פֿאַרזאַמלונג קאָד מיט קאַללס צו אַ יקסטראַקטיד קאָפּיע פון דעם בלאָק, האָבן שוין צוגעלייגט צו די קאַמפּיילער. די זענען דורכגעקאָכט דורך אַ באַזונדער אַפּלאַקיישאַן, וואָס איז אויטאָמאַטיש ינוואָוקט דורך די קאַמפּיילער ווען סאַלעקטינג מדרגה 2, 3 אָדער אַפּטאַמאַזיישאַנז. די אָפּטימיזאַטיאָנס רעדוצירן קאָד גרייס, אָבער זיי קען רעדוצירן דורכפירונג גיכקייַט און קאָד דיבאַגאַביליטי.
פּראַסידזשעראַל אַבסטראַקציע קענען זיין פאַרקריפּלט ביי העכער אַפּטאַמאַזיישאַן לעוועלס ניצן די אָפּציע -מנאָ-פּאַ, אָדער קענען זיין ענייבאַלד ביי נידעריקער אַפּטאַמאַזיישאַן לעוועלס (אונטער דיין דערלויבעניש) דורך ניצן -מפּאַ. עס קענען זיין פאַרקריפּלט פֿאַר אַ כייפעץ file ניצן -mno-pa-on-file=fileנאָמען, אָדער פאַרקריפּלט פֿאַר אַ פֿונקציע דורך ניצן -mno-pa אויף פֿונקציע = פֿונקציע.
ין דיין מקור קאָד, פּראַסידזשעראַל אַבסטראַקציע קענען זיין פאַרקריפּלט פֿאַר אַ פֿונקציע דורך ניצן _אַטריביאַטע_ ((נאָפּאַ)) מיט די דעפֿיניציע פון די פֿונקציע, אָדער דורך ניצן _nopa, וואָס יקספּאַנדז צו אַטריביוט ((נאָפּאַ, נאָינלינע)) און אַזוי פּריווענץ פונקציע ינליינינג. און עס איז אַבסטראַקטינג פון ינליינד קאָד.
לאַק ביסל שטיצן אין פּראַגמאַ די #פּראַגמאַ קאַנפיגיעריישאַן קענען איצט זיין געוויינט צו ספּעציפיצירן די AVR שלאָס ביטן און אנדערע קאַנפיגיעריישאַן ביטן. קוק די אַוור שפּאָן אינפֿאָרמאַציע. HTML file (דערמאנט אויבן) פֿאַר די באַשטעטיקן / ווערט פּערז צו נוצן מיט דעם פּראַגמאַ.
נייַ מיטל שטיצן שטיצן איז בארעכטיגט פֿאַר די פאלגענדע פּאַרץ: AVR28DA128, AVR64DA128, AVR32DA128 און AVR48DA128.
ווערסיע 2.05
מער ביטשיז פֿאַר דיין געלט די macOS ווערסיע פון דעם קאַמפּיילער און דערלויבעניש פאַרוואַלטער איז איצט אַ 64-ביסל אַפּלאַקיישאַן. דאָס וועט ענשור אַז דער קאַמפּיילער וועט ינסטאַלירן און לויפן אָן וואָרנינגז אויף די לעצטע ווערסיעס פון מאַקאָס.
קאָנסט אַבדזשעקץ אין פּראָגראַם זיקאָרן דער קאַמפּיילער קענען איצט שטעלן קאָנסט-קוואַלאַפייד אַבדזשעקץ אין די פּראָגראַם פלאַש זיקאָרן, אלא ווי אַז זיי זענען ליגן אין באַראַן. דער קאַמפּיילער איז מאַדאַפייד אַזוי אַז קאָנסט-קוואַלאַפייד גלאבאלע דאַטן זענען סטאָרד אין פּראָגראַם בליץ זכּרון און די דאַטן קענען זיין גלייך און מינאַצאַד אַקסעסט מיט די צונעמען אינסטרוקציעס פֿאַר פּראָגראַם זכּרון. די נייַע שטריך איז ענייבאַלד דורך פעליקייַט אָבער קענען זיין פאַרקריפּלט מיט די -mno-const-data-in-progmem אָפּציע. פֿאַר avrxmega3 און avrtiny אַרקאַטעקטשערז, דעם שטריך איז נישט פארלאנגט און איז שטענדיק פאַרקריפּלט, ווייַל פּראָגראַם זכּרון איז מאַפּט אין די דאַטן אַדרעס פּלאַץ פֿאַר די דעוויסעס.
נאָרמאַל פֿאַר פֿרייַ אַנלייסאַנסט (פריי) ווערסיעס פון דעם קאַמפּיילער איצט לאָזן אָפּטימיזאַטיאָנס אַרויף צו און אַרייַנגערעכנט מדרגה 2. דאָס וועט דערלויבן אַ ענלעך, כאָטש ניט יידעניקאַל, רעזולטאַט צו וואָס איז געווען ביז אַהער מעגלעך ניצן אַ נאָרמאַל דערלויבעניש.
ברוכים הבאים AVRASM2 די AVRASM2 אַסעמבאַלער פֿאַר 8-ביסל דעוויסעס איז איצט אַרייַנגערעכנט אין די XC8 קאַמפּיילער ינסטאַללער. דער אַסעמבלער איז נישט געניצט דורך די XC8 קאַמפּיילער, אָבער איז בארעכטיגט פֿאַר פּראַדזשעקס באזירט אויף כאַנדריטאַן פֿאַרזאַמלונג מקור.
נייַ מיטל שטיצן שטיצן איז בארעכטיגט פֿאַר די פאלגענדע פּאַרץ: ATMEGA1608, ATMEGA1609, ATMEGA808 און ATMEGA809.
ווערסיע 2.00
שפּיץ-מדרגה דרייווער א נייַע שאָפער, גערופן xc8-cc, איצט זיצט אויבן די פריערדיקע avr-gcc שאָפער און די xc8 דרייווער, און עס קענען רופן די צונעמען קאַמפּיילער באזירט אויף די סעלעקציע פון די ציל מיטל. דער שאָפער אַקסעפּץ גקק-נוסח אָפּציעס, וואָס זענען אָדער איבערגעזעצט פֿאַר אָדער דורכגעגאנגען דורך די קאַמפּיילער וואָס איז עקסאַקיוטאַד. דער שאָפער אַלאַוז אַ ענלעך גאַנג פון אָפּציעס מיט ענלעך סעמאַנטיקס צו זיין געוויינט מיט קיין AVR אָדער PIC ציל און איז אַזוי דער רעקאַמענדיד וועג צו רופן דעם קאַמפּיילער. אויב פארלאנגט, דער אַלט avr-gcc שאָפער קענען זיין גערופֿן גלייַך מיט די אַלט-נוסח אָפּציעס וואָס עס איז אנגענומען אין פריער קאַמפּיילער ווערסיעס.
פּראָסט C צובינד דער קאַמפּיילער קענען איצט קאַנפאָרם צו די MPLAB Common C צובינד, אַלאַוינג מקור קאָד צו זיין מער לייכט טראַנספּאָרטאַד אַריבער אַלע MPLAB XC קאַמפּיילער. די -mext=cci אָפּציע ריקוועס דעם שטריך, געבן אָלטערנאַטיוו סינטאַקס פֿאַר פילע שפּראַך יקסטענשאַנז.
נײע ר ביבליאטע ק שרײבער א נייַ ביבליאָטעק שאָפער איז פּאַזישאַנד אויבן די פריערדיקע PIC ביבליאָטעק ביבליאָטעק און די AVR אַוור-אַר ביבליאָטעק. דער דרייווער אַקסעפּץ אָפּציעס אין GCC-אַרטשייווער, וואָס זענען אָדער איבערגעזעצט פֿאַר אָדער דורכגעגאנגען דורך די ביבליאָטעק וואָס איז עקסאַקיוטאַד. דער נייַע שאָפער אַלאַוז אַ ענלעך גאַנג פון אָפּציעס מיט ענלעך סעמאַנטיקס צו זיין געוויינט צו שאַפֿן אָדער מאַניפּולירן קיין PIC אָדער AVR ביבליאָטעק file און איז אַזוי דער רעקאַמענדיד וועג צו רופן די ביבליאָטעק. אויב פארלאנגט פֿאַר לעגאַט פּראַדזשעקס, די פריערדיקע ביבליאָטעק קענען זיין גערופֿן גלייַך מיט די אַלט-נוסח אָפּציעס וואָס עס איז אנגענומען אין פריער קאַמפּיילער ווערסיעס.
מיגראַטיאָן ישוז
די פאלגענדע זענען פֿעיִקייטן וואָס זענען איצט כאַנדאַלד דיפערענטלי דורך די קאַמפּיילער. די ענדערונגען קען דאַרפן מאָדיפיקאַטיאָן צו דיין מקור קאָד אויב איר אַריבערפירן קאָד צו דעם קאַמפּיילער ווערסיע. די ווערסיע נומער אין די סאַבכעדינגז ינדיקייץ דער ערשטער קאַמפּיילער ווערסיע צו שטיצן די פאלגענדע ענדערונגען.
ווערסיע 2.40
קיינער.
ווערסיע 2.39 (פאַנגקשאַנאַל סאַפעטי מעלדונג)
קיינער.
ווערסיע 2.36
קיינער.
ווערסיע 2.35
האַנדלינג פון שטריקל-צו באַסעס (XCS-2420) צו ענשור קאָנסיסטענסי מיט אנדערע XC קאָמפּילערס, די XC8 שטריקל-צו פאַנגקשאַנז, ווי strtol () אאז"ו ו, וועט ניט מער פּרווון צו בייַטן אַ אַרייַנשרייַב שטריקל אויב די באַזע ספּעסיפיעד איז גרעסער ווי 36 און אַנשטאָט שטעלן עררנאָ צו EINVAL. די C סטאַנדאַרט טוט נישט ספּעציפיצירן די נאַטור פון די פאַנגקשאַנז ווען די באַזע ווערט איז יקסידיד.
ינאַפּראָופּרייט גיכקייַט אָפּטימיזאַטיאָנס פּראַסידזשעראַל אַבסטראַקציע אַפּטאַמאַזיישאַנז זענען ענייבאַלד ווען סאַלעקטינג מדרגה 3 אַפּטאַמאַזיישאַנז (-03). די אָפּטימיזאַטיאָנס רעדוצירן קאָד גרייס אויף די קאָסט פון קאָד גיכקייַט, אַזוי איר זאָל נישט האָבן דורכגעקאָכט. פּראַדזשעקס ניצן דעם אַפּטאַמאַזיישאַן מדרגה קען זען דיפעראַנסיז אין קאָד גרייס און דורכפירונג גיכקייַט ווען געבויט מיט דעם מעלדונג.
ביבליאָטעק פאַנגקשאַנאַליטי דער קאָד פֿאַר פילע סטאַנדאַרט C ביבליאָטעק פאַנגקשאַנז איצט קומען פֿון מיקראָטשיפּ ס וניפיעד סטאַנדאַרד ביבליאָטעק, וואָס קען ויסשטעלונג אַנדערש נאַטור אין עטלעכע צושטאנדן קאַמפּערד מיט די צוגעשטעלט דורך די ערשטע avr-libc ביבליאָטעק. פֿאַר עקסampאין דעם פאַל, עס איז ניט מער נייטיק צו לינק אין די lprintf_flt ביבליאָטעק (-פּרינט _פלט אָפּציע) צו ווענדן פאָרמאַטטעד יאָ שטיצן פֿאַר פלאָוט פֿאָרמאַט ספּעסיפיערס. די קלוג יאָ פֿעיִקייטן פון די מיקראָטשיפּ וניפיעד סטאַנדאַרד ביבליאָטעק מאכט דעם אָפּציע יבעריק. אַדדיטיאָנאַללי, די נוצן פון _p סאַפיקסט רוטינז פֿאַר שטריקל און זכּרון פאַנגקשאַנז (למשל strcpy_P () עטק .. ) וואָס אַרבעטן אויף קאָנסט סטרינגס אין בליץ זענען ניט מער נייטיק. די נאָרמאַל C רוטינז (למשל strcpy ()) וועט אַרבעטן ריכטיק מיט אַזאַ דאַטן ווען די קאַנסט-דאַטן-אין-פּראָגראַם-זיקאָרן שטריך איז ענייבאַלד.
ווערסיע 2.32
קיינער.
ווערסיע 2.31
קיינער.
ווערסיע 2.30
קיינער.
ווערסיע 2.29 (פאַנגקשאַנאַל סאַפעטי מעלדונג)
קיינער.
ווערסיע 2.20
געענדערט DFP אויסלייג דער קאַמפּיילער איצט אַסומז אַ אַנדערש אויסלייג געניצט דורך DFPs (Device Family Packs). דאָס וועט מיינען אַז אַן עלטערע DFP קען נישט אַרבעטן מיט דעם מעלדונג, און עלטערע קאָמפּילערס קענען נישט נוצן די לעצטע DFP.
ווערסיע 2.19 (פאַנגקשאַנאַל סאַפעטי מעלדונג)
קיינער.
ווערסיע 2.10
קיינער
ווערסיע 2.05
קאָנסט אַבדזשעקץ אין פּראָגראַם זכּרון באַמערקונג אַז די קאַנסט-קוואַלאַפייד אַבדזשעקץ וועט זיין געשטעלט און אַקסעסט אין פּראָגראַם זכּרון (ווי דיסקרייבד דאָ). דאָס וועט ווירקן די גרייס און דורכפירונג גיכקייַט פון דיין פּרויעקט, אָבער זאָל רעדוצירן באַראַן באַניץ. דעם שטריך קענען זיין פאַרקריפּלט, אויב פארלאנגט, ניצן די -mnoconst-da ta-in-progmem אָפּציע.
ווערסיע 2.00
קאָנפיגוראַטיאָן פוסעס די מיטל קאַנפיגיעריישאַן פוסעס קענען איצט פּראָוגראַמד ניצן אַ קאָנפיג פּראַגמאַ נאכגעגאנגען דורך באַשטעטיקן-ווערט פּערז צו ספּעציפיצירן די קאָריק שטאַט, למשל
#פּראַגמאַ קאָנפיג וודט0ן = שטעלן
#פּראַגמאַ קאַנפיגיעריישאַן B0DLEVEL = B0DLEVEL_4V3
אַבסאָלוט אַבדזשעקץ און פאַנגקשאַנז אָבדזשעקץ און פאַנגקשאַנז קענען איצט זיין געשטעלט אין אַ ספּעציפיש אַדרעס אין זיקאָרן ניצן די CCI _at (אַדרעס) ספּעסיפיער, למשלample: #אַרייַננעמען ינט פאָאָבאַר ביי (אָקס800100); char at(Ox250) get ID(int offset) { … } דער אַרגומענט צו דעם ספּעסיפיער מוזן זיין אַ קעסיידערדיק וואָס רעפּראַזענץ די אַדרעס אין וואָס דער ערשטער בייט אָדער לימעד וועט זיין געשטעלט. באַראַן ווענדט זענען ינדאַקייטיד מיט אַ פאָטאָ פון 0x800000. געבן די CCI צו נוצן דעם שטריך.
ניו סינטאַקס פון יבעררייַסן פונקציע דער קאַמפּיילער איצט אַקסעפּץ די CCI ינטעראַפּט (נום) ספּעסיפיער צו אָנווייַזן אַז C פאַנגקשאַנז זענען ינטעראַפּט האַנדלערס. די ספּעסיפיער נעמט אַ יבעררייַס נומער, למשלample: #אַרייַננעמען פּאָסל ינטעראַפּט (SPI STC_ vect _num) spi Isr(void) { … }
פאַרפעסטיקט ישוז
די פאלגענדע זענען קערעקשאַנז וואָס זענען געמאכט צו די קאַמפּיילער. די קען פאַרריכטן באַגז אין די דזשענערייטאַד קאָד אָדער טוישן די אָפּעראַציע פון די קאַמפּיילער צו דעם וואָס איז געווען בדעה אָדער ספּעסיפיעד דורך די באַניצער ס פירער. די ווערסיע נומער אין די סאַבכעדינגס ינדיקייץ דער ערשטער קאַמפּיילער ווערסיע צו אַנטהאַלטן פיקסיז פֿאַר די פאלגענדע ישוז. די בראַקייטיד פירמע (s) אין דעם טיטל זענען די לעגיטימאַציע פון דעם אַרויסגעבן אין די טראַקינג דאַטאַבייס. די קען זיין נוציק אויב איר דאַרפֿן צו קאָנטאַקט שטיצן.
באַמערקונג אַז עטלעכע מיטל-ספּעציפיש ישוז זענען קערעקטאַד אין די Device Family Pack (DFP) פֿאַרבונדן מיט די מיטל. זען די MPLAB פּאַק מאַנאַגער פֿאַר אינפֿאָרמאַציע וועגן ענדערונגען געמאכט צו DFPs און צו אָפּלאָדירן די לעצטע פּאַקס.
ווערסיע 2.40
צו רילאַקסט (XCS-2876) ווען ניצן די -mrelax אָפּציע, דער קאַמפּיילער איז נישט אַלאַקייטיד עטלעכע סעקשאַנז צוזאַמען, ריזאַלטינג אין ווייניקער אָפּטימאַל קאָד סיזעס. דאָס קען זיין פארגעקומען מיט קאָד וואָס געוויינט די נייַע MUSL לייברעריז אָדער מיט שוואַך סימבאָלס.
מאַפּינג שטריך איז נישט פאַרקריפּלט ווי סטייטיד אין ווארענונג (XCS-2875) די פּרייַז-Data-in-config מאַפּטפּראָגמעם שטריך איז רילייאַנט אויף די פּרייַז-דאַטן-אין-פּראָעם שטריך איז ענייבאַלד. אויב די cost-data-ipconfig-mapped-proem שטריך איז בפירוש ענייבאַלד מיט די אָפּציע און די cost-data-inprogmem שטריך איז געווען פאַרקריפּלט, די לינק שריט איז ניט אַנדערש, טראָץ אַ ווארענונג אָנזאָג אַז די קאָנס דאַטן-in-config-mapped- פּראָעם שטריך איז אויטאָמאַטיש פאַרקריפּלט, וואָס איז נישט גאָר ריכטיק. די const-data-in-config-mapped-proem שטריך איז איצט גאָר פאַרקריפּלט אין דעם סיטואַציע.
DFP ענדערונגען צו ריכטיק אַקסעס NVMCTRL (XCS-2848) די רונטימע סטאַרטאַפּ קאָד געניצט דורך AVR64EA דעוויסעס האט נישט נעמען אין חשבון אַז די NVMCTRL רעגיסטרירן איז געווען אונטער קאַנפיגיעריישאַן טוישן פּראַטעקשאַן (קקפּ) און איז נישט ביכולת צו שטעלן די IO SFR צו די בלאַט געניצט דורך די const-data-in configmapped-proem קאַמפּיילער שטריך. ענדערונגען געמאכט אין AVR-Ex_DFP ווערסיע 2.2.55 וועט לאָזן די רונטימע סטאַרטאַפּ קאָד ריכטיק שרייַבן צו דעם רעגיסטרירן.
DFP ענדערונגען צו ויסמיידן בליץ מאַפּינג (XCS-2847) א אַרבעט-אַרום פֿאַר אַ פּראָבלעם מיט די בליץ מאַפּינג מיטל שטריך רעפּאָרטעד אין די AVR128DA28/32/48/64 סיליציום ערראַטאַ (DS80000882) איז ימפּלאַמענאַד. די const-data-in-config-mapped-proem קאַמפּיילער שטריך וועט נישט זיין געווענדט דורך פעליקייַט פֿאַר אַפעקטאַד דעוויסעס, און די ענדערונג וועט דערשייַנען אין AVR-Ex_DFP ווערסיע 2.2.160.
בויען טעות מיט sinhf אָדער coshf (XCS-2834) פרווון צו נוצן די sinhf () אָדער coshf () ביבליאָטעק פאַנגקשאַנז ריזאַלטיד אין אַ לינק טעות, דיסקרייבינג אַן אַנדיפיינד רעפֿערענץ. די פעלנדיק פונקציע רעפערענסט איז איצט אַרייַנגערעכנט אין די קאַמפּיילער פאַרשפּרייטונג.
בויען ערראָרס מיט nopa (XCS-2833) ניצן די nopa אַטריביוט מיט אַ פֿונקציע וואָס האט זיין אַסעמבאַלער נאָמען ספּעסיפיעד ניצן ווי () טריגערד טעות אַרטיקלען פון די אַסעמבאַללער. די קאָמבינאַציע איז ניט מעגלעך.
Variadic פונקציע דורכפאַל מיט טייַטל אַרגומענטן (XCS-2755, XCS-2731) פאַנגקשאַנז מיט אַ בייַטעוודיק נומער פון אַרגומענטן דערוואַרטן 24-ביסל (_מעמאָ טיפּ) פּוינטערז צו זיין דורכגעגאנגען אין די וועריאַבאַל אַרגומענט רשימה ווען די קאָס-דאַטן-אין-פּראָעם שטריך איז ענייבאַלד. אַרגומענטן וואָס זענען אָנווייַז צו דאַטן זכּרון זענען דורכגעגאנגען ווי 16-ביסל אַבדזשעקץ, קאָזינג קאָד דורכפאַל ווען זיי לעסאָף לייענען. ווען די קאָנס דאַטן-אין-פּראָעם שטריך איז ענייבאַלד, אַלע 16-ביסל פּוינטערז אַרגומענטן זענען איצט קאָנווערטעד צו 24-ביסל פּוינטערז. strtoxxx ביבליאָטעק פאַנגקשאַנז פיילינג (XCS-2620) ווען const-data-in-proem שטריך איז ענייבאַלד, די אַרייַן פּאַראַמעטער אין די strtoxxx ביבליאָטעק פאַנגקשאַנז איז נישט דערהייַנטיקט רעכט פֿאַר מקור שטריקל אַרגומענטן נישט אין פּראָגראַם זכּרון.
אַלערץ פֿאַר פאַרקריפּלט קאַסץ (XCS-2612) דער קאַמפּיילער וועט איצט אַרויסגעבן אַ טעות אויב קאָס-אין-פּראָעם שטריך איז ענייבאַלד און די אַדרעס פון אַ שטריקל ליטעראַל איז בפירוש געשטאַלט צו דאַטן אַדרעס פּלאַץ (דראָפּינג די קאָנסט קוואַלאַפייער), למשלample, (uint8 t *) "העלא וועלט!". א ווארענונג איז אַרויסגעבן אויב די אַדרעס קען זיין פאַרקריפּלט ווען אַ קאָנסט דאַטן טייַטל איז בפירוש וואַרפן צו דאַטן אַדרעס פּלאַץ.
פּלייסמאַנט פון אַנינישיאַלייזד קאָנסט אַבדזשעקץ (XCS-2408) וניניטיאַלליזעד קאָנסט און קאָנסט וו אָלאַטילע אַבדזשעקץ זענען נישט געשטעלט אין פּראָגראַם זכּרון אויף דעוויסעס וואָס מאַפּע אַלע אָדער טייל פון זייער פּראָגראַם זכּרון אין די דאַטן אַדרעס פּלאַץ. פֿאַר די דעוויסעס, אַזאַ אַבדזשעקץ זענען איצט געשטעלט אין פּראָגראַם זכּרון, וואָס מאכט זייער אָפּעראַציע קאָנסיסטענט מיט אנדערע דעוויסעס.
ווערסיע 2.39 (פאַנגקשאַנאַל סאַפעטי מעלדונג)
קיינער.
ווערסיע 2.36
טעות ווען פאַרהאַלטן (XCS-2774) מינערווערטיק ענדערונגען אין די פעליקייַט פריי מאָדע אָפּטימיזאַטיאָנס פּריווענטיד קעסיידערדיק פאָלדינג פון אָפּעראַנד אויסדרוקן צו די פאַרהאַלטן געבויט-אין פאַנגקשאַנז, ריזאַלטינג אין זיי זענען באהאנדלט ווי ניט-קאָנטאַקטן און טריגערינג די טעות: צייט ינטאַדזשער קעסיידערדיק.
ווערסיע 2.35
קאַנטיגיואַס אַלאַקיישאַן ניצן _at (XCS-2653) קאַנטיגיואַס אַלאַקיישאַן פון קייפל אַבדזשעקץ ערטער אין אַ אָפּטיילונג מיט די זעלבע נאָמען און ניצן ביי () האט נישט אַרבעטן ריכטיק. פֿאַר עקסample: constchararrl [] at tri butte ((סעקט אויף(“.מיססעס”))) בייַ (אָקס50 0) = {אָקסאָ, אָקס סי}; קאָסטן char arr2[ ] ביי טרי באָטטע (( אָפּטיילונג (". מיין סעקע"))) = {אָקסן, אָקס פע }; זאָל האָבן געשטעלט arr2 מיד נאָך aril.
ספּעציפיצירן אָפּטיילונג אָנהייב אַדרעסעס (XCS-2650) די -Wal, -אָפּטיילונג-אָנהייב אָפּציע איז בישטיקע פיילינג צו שטעלן סעקשאַנז אין די נאַמאַנייטאַד אָנהייב אַדרעס. דעם אַרויסגעבן איז פאַרפעסטיקט פֿאַר קיין מנהג-געהייסן סעקשאַנז; אָבער, עס וועט נישט אַרבעטן פֿאַר קיין נאָרמאַל סעקשאַנז, אַזאַ ווי. טעקסט אָדער . bss, וואָס מוזן זיין געשטעלט מיט אַ -Wl, -T אָפּציע.
לינקער קראַשיז ווען רילאַקסינג (XCS-2647) ווען די -relax אַפּטאַמאַזיישאַן איז געווען ענייבאַלד און עס זענען געווען קאָד אָדער דאַטן סעקשאַנז וואָס האָבן נישט פּאַסיק אין די בנימצא זכּרון, די לינקער קראַשט. איצט, אין אַזאַ אַ ומשטאַנד, טעות אַרטיקלען זענען ארויס אַנשטאָט.
שלעכט EEPROM אַקסעס (XCS-2629) די לעפּראָמאַ _read_ בלאָק רוטין האט נישט אַרבעטן ריכטיק אויף מעגאַ דעוויסעס ווען די -monist-data-in-proem אָפּציע איז ענייבאַלד (וואָס איז די פעליקייַט שטאַט), ריזאַלטינג אין EEPROM זכּרון איז נישט לייענען ריכטיק.
פאַרקריפּלט זכּרון אַלאַקיישאַן (XCS-2593, XCS-2651) ווען די -טעקסט אָדער -טאַטאַ לינקער אָפּציע (למשלampדי דורכגעגאנגען דורך ניצן אַ -Wl דרייווער אָפּציע) איז ספּעסיפיעד, די קאָראַספּאַנדינג טעקסט / דאַטן געגנט אָנהייב איז דערהייַנטיקט; אָבער, דער סוף אַדרעס איז נישט אַדזשאַסטיד אַקאָרדינגלי, וואָס קען האָבן געפֿירט צו די געגנט יקסיד די זיקאָרן קייט פון די ציל מיטל.
פאַרקריפּלט אַטטיני יבעררייַס קאָד (XCS-2465) ווען בנין פֿאַר טאַטין דעוויסעס און די אָפּטימיזאַטיאָנס זענען פאַרקריפּלט (-00), יבעררייַס פאַנגקשאַנז קען האָבן טריגערד אָפּעראַנד אויס פון קייט אַסעמבאַלער אַרטיקלען.
אָפּציעס זענען נישט דורכגעגאנגען דורך (XCS-2452) ווען ניצן די -Wl אָפּציע מיט קייפל, קאָמע-סעפּאַרעד לינקס לינקס אָפּציעס, ניט אַלע די לינקס אָפּציעס זענען דורכגעגאנגען צו די לינקס.
טעות מינאַצאַד לייענען פּראָגראַם זכּרון (XCS-2450) אין עטלעכע ינסטאַנסיז, דער קאַמפּיילער געשאפן אַן ינערלעך טעות (אַנרעקאַגנייזאַבאַל ינסן) ווען לייענען אַ צוויי-ביטע ווערט פון אַ טייַטל צו פּראָגראַם זכּרון
ווערסיע 2.32
צווייטע אַקסעס פון ביבליאָטעק פיילז (XCS-2381) ינוואָוקינג די Windows ווערסיע פון די xc8-ar. עקסע ביבליאָטעק אַרטשיווער אַ צווייט מאָל צו אַקסעס אַ יגזיסטינג ביבליאָטעק אַרקייוו קען האָבן ניט אַנדערש מיט אַ ניט געקענט צו רענאַמע טעות אָנזאָג.
ווערסיע 2.31
אַניקספּליינד קאַמפּיילער פייליערז (XCS-2367) ווען פליסנדיק אויף Windows פּלאַטפאָרמס וואָס די סיסטעם צייַטווייַליק וועגווייַזער איז באַשטימט צו אַ דרך וואָס אַרייַנגערעכנט אַ פּונקט'. כאַראַקטער, דער קאַמפּיילער קען האָבן ניט אַנדערש צו ויספירן.
ווערסיע 2.30
גלאבאלע לאַבעלס מיספּלייסט נאָך אַוטליינינג (XCS-2299) האַנט-געשריבן פֿאַרזאַמלונג קאָד וואָס שטעלן גלאבאלע לאַבעלס ין פֿאַרזאַמלונג סיקוואַנסיז וואָס זענען פאָוקיסט אויס דורך פּראַסידזשעראַל אַבסטראַקציע קען נישט זיין ריכטיק ריפּאַזישאַן.
א רילאַקסינג קראַך (XCS-2287) ניצן די -merlad אָפּציע קען האָבן געפֿירט די לינקער צו קראַך ווען אָפּטימיזאַטיאָנס פֿאַר אָפּרו פון עק שפּרינגען געפרוווט צו באַזייַטיקן רעט לימעד וואָס זענען נישט אין די סוף פון אַ אָפּטיילונג.
קראַך ווען אָפּטימיזינג לאַבעלס ווי וואַלועס (XCS-2282) קאָד ניצן די "לאַבעלס ווי וואַלועס" GNU C שפּראַך פאַרלענגערונג קען האָבן געפֿירט די פּראַסידזשעראַל אַבסטראַקציע אָפּטימיזאַטיאָנס צו קראַך, מיט אַ אַוטלינעד VMA קייט ספּאַנס פיקסופּ טעות.
ניט אַזוי קאָנסט (XCS-2271) די פּראָוטאַטייפּס פֿאַר סטאַרץ () און אנדערע פאַנגקשאַנז פון ניט מער ספּעציפיצירן די ניט-נאָרמאַל פּרייַז קוואַלאַפייער אויף אומגעקערט שטריקל פּוינטערז ווען די -monist-data inprogmem שטריך איז פאַרקריפּלט. באַמערקונג אַז מיט Avrxmega3 און Avertin דעוויסעס, דעם שטריך איז פּערמאַנאַנטלי ענייבאַלד.
פאַרפאַלן ינישאַטיווז (XCS-2269) ווען מער ווי איין בייַטעוודיק אין אַ איבערזעצונג אַפּאַראַט איז געווען געשטעלט אין אַ אָפּטיילונג (ניצן אָפּטיילונג אָדער אַטריביוט ((אָפּטיילונג))), און דער ערשטער אַזאַ וועריאַבאַלז איז געווען נול יניטיאַליזעד אָדער האט נישט האָבן אַן ינישאַליזער, ינישאַליזער פֿאַר אנדערע וועריאַבאַלז אין דער זעלביקער איבערזעצונג אַפּאַראַט וואָס זענען געווען שטעלן אין דער זעלביקער אָפּטיילונג זענען פאַרפאַלן.
ווערסיע 2.29 (פאַנגקשאַנאַל סאַפעטי מעלדונג)
קיינער.
ווערסיע 2.20
טעות מיט לאַנג קאַמאַנדז (XCS-1983) ווען ניצן אַן אַוור ציל, דער קאַמפּיילער קען האָבן פארשטאפט מיט אַ file ניט געפֿונען טעות, אויב די באַפֿעל שורה איז געווען גאָר גרויס און קאַנטיינד ספּעציעלע אותיות אַזאַ ווי קוואָטעס, באַקלאַשיז, אאז"ו ו.
אַנסאַסיינד ראָדאַטאַ אָפּטיילונג (XCS-1920) די AVR לינקער איז ניט אַנדערש צו באַשטימען זיקאָרן פֿאַר מנהג ראָדאַטאַ סעקשאַנז ווען בנין פֿאַר אַוורקסמעגאַ3 און אַוורטיני אַרקאַטעקטשערז, פּאַטענטשאַלי פּראָדוצירן זכּרון אָוווערלאַפּ ערראָרס
ווערסיע 2.19 (פאַנגקשאַנאַל סאַפעטי מעלדונג)
קיינער.
ווערסיע 2.10
רילאָוקיישאַן פייליערז (XCS-1891) דער בעסטער פּאַסיק אַלאַקאַטאָר איז געווען געלאזן זכּרון 'האָלעס' צווישן סעקשאַנז נאָך לינקס אָפּרו. חוץ פראַגמאַנטינג זיקאָרן, דאָס געוואקסן די מעגלעכקייט פון לינקער רילאָוקיישאַן פייליערז מיט פּיסי-קאָרעוו דזשאַמפּס אָדער קאַללס ווערן אויס פון קייט.
אינסטרוקציעס ניט פארוואנדלען דורך אָפּרו (XCS-1889) לינקער אָפּרו איז נישט געשען פֿאַר שפּרינגען אָדער רופן אינסטרוקציעס וועמענס טאַרגאַץ ווערן ריטשאַבאַל אויב רילאַקסט.
פעלנדיק פאַנגקשאַנאַליטי (XCSE-388) עטלעכע דעפֿיניציעס פון , אַזאַ ווי clock_div_t און clock_prescale_set (), זענען נישט דיפיינד פֿאַר דעוויסעס, אַרייַנגערעכנט די ATmega324PB, ATmega328PB, ATtiny441 און ATtiny841.
פעלנדיק מאַקראָס די פּרעפּראָסעססאָר macros_xcs _MODE_, _xcs VERSION, _xc און xcs זענען נישט אויטאָמאַטיש דיפיינד דורך די קאַמפּיילער. די זענען איצט בנימצא.
ווערסיע 2.05
אינערלעכער קאַמפּיילער טעות (XCS-1822) ווען איר בויען אונטער Windows, אַ ינערלעך קאַמפּיילער טעות קען זיין געשאפן ווען אָפּטימיזינג קאָד.
באַראַן אָוווערפלאָו ניט דיטעקטאַד (XCS-1800, XCS-1796) פּראָגראַמען וואָס יקסיד די בנימצא באַראַן זענען נישט דיטעקטאַד דורך די קאַמפּיילער אין עטלעכע סיטואַטיאָנס, ריזאַלטינג אין אַ רונטימע קאָד דורכפאַל.
איבערגעהיפּערט בליץ זכּרון (XCS-1792) פֿאַר Avrxmega3 און Avrtiny דעוויסעס, פּאַרץ פון די בליץ זכּרון קען זיין לינקס אַנ-פּראָוגראַמד דורך די MPLAB X IDE.
דורכפאַל צו ויספירן הויפּט (XCS-1788) אין עטלעכע סיטואַטיאָנס ווו די פּראָגראַם האט קיין גלאבאלע וועריאַבאַלז דיפיינד, די רונטימע סטאַרטאַפּ קאָד איז נישט אַרויסגאַנג און די הויפּט () פֿונקציע איז קיינמאָל ריטשט.
פאַלש זיקאָרן אינפֿאָרמאַציע (XCS-1787) פֿאַר Avrxmega3 און Avrtiny דעוויסעס, די Avr-גרייס פּראָגראַם איז ריפּאָרטינג אַז לייענען-בלויז דאַטן קאַנסומינג באַראַן אַנשטאָט פון פּראָגראַם זכּרון.
פאַלש פּראָגראַם זכּרון לייענען (XCS-1783) פּראַדזשעקס צונויפגעשטעלט פֿאַר דעוויסעס מיט פּראָגראַם זיקאָרן מאַפּט אין די דאַטן אַדרעס פּלאַץ און וואָס דעפינירן אַבדזשעקץ ניצן די PROGMEM מאַקראָו / אַטריביוט קען האָבן לייענען די אַבדזשעקץ פֿון דעם אומרעכט אַדרעס.
ינערלעך טעות מיט אַטריביוץ (XCS-1773) אַן ינערלעך טעות איז פארגעקומען אויב איר דיפיינד טייַטל אַבדזשעקץ מיט די
_at () אָדער אַטריביוט () טאָקענס צווישן די טייַטל נאָמען און דעריפעראַנסט טיפּ, למשלampלע, טשאַר *
_at (0x80015 0) קפּ; א ווארענונג איז איצט ארויס אויב אַזאַ קאָד איז געפּלאָנטערט.
דורכפאַל צו ויספירן הויפּט (XCS-1780, XCS-1767, XCS-1754) ניצן EEPROM וועריאַבאַלז אָדער דיפיינינג פוסעס מיט די קאַנפיגיער פּראַגמאַ קען האָבן געפֿירט פאַלש דאַטן יניטיאַליזיישאַן און / אָדער פארשפארט די דורכפירונג פון די פּראָגראַם אין די רונטימע סטאַרטאַפּ קאָד איידער איר דערגרייכן די הויפּט () .
פיוס טעות מיט קליינטשיק דעוויסעס (XCS-1778, XCS-1742) די Attiny4/5/9/10/20/40 דעוויסעס האָבן אַ פאַלש פוסע לענג ספּעסיפיעד אין זייער כעדער fileס וואָס פירן צו לינקער ערראָרס ווען איר פּרוּווט צו בויען קאָד וואָס דיפיינד פוסעס.
סעגמענטאַטיאָן שולד (XCS-1777) א ינטערמיטאַנט סעגמענטאַטיאָן שולד איז קערעקטאַד.
אַסעמבלער קראַך (XCS-1761) דער avr-as assembler קען האָבן קראַשט ווען דער קאַמפּיילער איז געווען לויפן אונטער Ubuntu 18.
אָבדזשעקץ ניט קלירד (XCS-1752) וניניטיאַליזעד סטאַטיק סטאָרידזש געדויער אַבדזשעקץ קען נישט האָבן געווען קלירד דורך די רונטימע סטאַרטאַפּ קאָד.
קאַנפליקטינג מיטל באַשרייַבונג איגנאָרירט (XCS-1749) דער קאַמפּיילער האט נישט דזשענערייטאַד אַ טעות ווען קייפל מיטל ספּעסאַפאַקיישאַנז זענען געניצט און ינדאַקייטיד פאַרשידענע דעוויסעס.
זיקאָרן קאָרופּציע דורך קופּע (XCS-1748) דער העאַפּ_ אָנהייב סימבאָל איז געווען פאַלש שטעלן, ריזאַלטינג אין די מעגלעכקייט פון פּראָסט וועריאַבאַלז איז פארדארבן דורך די קופּע.
לינקער רילאָוקיישאַן טעות (XCS-1739) א לינקער רילאָוקיישאַן טעות קען זיין ימיטיד ווען קאָד קאַנטיינד אַ רדזשמפּ אָדער רקאַל מיט אַ ציל פּונקט 4 ק ביטעס אַוועק.
ווערסיע 2.00
קיינער.
באַוווסט ישוז
די פאלגענדע זענען לימיטיישאַנז אין די קאַמפּיילער ס אָפּעראַציע. דאָס קען זיין גענעראַל קאָדירונג ריסטריקשאַנז, אָדער
דיווייישאַנז פון אינפֿאָרמאַציע קאַנטיינד אין די באַניצער 'ס מאַנואַל. די בראַקייטיד פירמע (s) אין דעם טיטל זענען די לעגיטימאַציע פון דעם אַרויסגעבן אין די טראַקינג דאַטאַבייס. דאָס קען זיין אַ נוץ אויב איר דאַרפֿן צו קאָנטאַקט שטיצן. די ייטאַמז וואָס טאָן ניט האָבן לאַבעלס זענען לימיטיישאַנז וואָס באַשרייַבן די אָפּעראַציע און וואָס זענען מסתּמא צו בלייבן אין ווירקונג פּערמאַנאַנטלי.
MPLAB X IDE ינטעגראַטיאָן
MPLAB IDE ינאַגריישאַן אויב קאַמפּיילער איז צו זיין געוויינט פֿון MPLAB IDE, איר מוזן ינסטאַלירן MPLAB IDE איידער איר ינסטאַלירן קאַמפּיילער.
קאָד דור
פּאַ זכּרון אַלאַקיישאַן דורכפאַל (XCS-2881) ווען ניצן די פּראַסידזשעראַל אַבסטראַקציע אָפּטימיזערס, דער לינקער קען באַריכט זיקאָרן אַלאַקיישאַן ערראָרס ווען די קאָד גרייס איז נאָענט צו די סומע פון פאַראַנען פּראָגראַם זכּרון אויף די מיטל, כאָטש די פּראָגראַם זאָל זיין ביכולת צו פּאַסיק די בנימצא פּלאַץ.
ניט אַזוי קלוג Smart-IO (XCS-2872) די סמאַרט-יאָ שטריך פון די קאַמפּיילער וועט דזשענערייט אַ גילטיק אָבער סאַב-אָפּטימאַל קאָד פֿאַר די ספּרינט פונקציע אויב די ברעג-דאַטן-אין-פּראָעם שטריך איז פאַרקריפּלט אָדער אויב די מיטל האט אַלע זיין בליץ מאַפּט אין דאַטן זכּרון.
אפילו ווייניקער קלוג Smart-IO (XCS-2869) די סמאַרט-יאָ שטריך פון די קאַמפּיילער וועט דזשענערייט אַ גילטיק אָבער סובאָפּטימאַל קאָד ווען די -floe און -fno-buil צין אָפּציעס זענען ביידע געוויינט.
סובאָפּטימאַל לייענען-בלויז דאַטן פּלייסמאַנט (XCS-2849) דער לינקער איז דערווייַל נישט אַווער פון די APPCODE און APPDATA זכּרון סעקשאַנז, אדער די [ניין-] לייענען-בשעת-שרייב דיוויזשאַנז אין די זכּרון מאַפּע. ווי אַ רעזולטאַט, עס איז אַ קליין געלעגנהייַט אַז דער לינקער קען אַלאַקייט בלויז לייענען דאַטן אין אַ ומפּאַסיק זיקאָרן געגנט. די שאַנס פון מיספּלייסט דאַטן ינקריסיז אויב די ברעג-דאַטן-אין-פּראַגמאַ שטריך איז ענייבאַלד, ספּעציעל אויב די ברעג-דאַטן-אין-קאָנפיג-מאַפּט-פּראָעם שטריך איז אויך ענייבאַלד. די פֿעיִקייטן קענען זיין פאַרקריפּלט אויב פארלאנגט.
אָבדזשעקט file פּראַסעסינג סדר (XCS-2863) דער סדר אין וואָס אַבדזשעקץ fileס וועט זיין פּראַסעסט דורך די לינקער קען זיין אַנדערש באזירט אויף די נוצן פון פּראַסידזשעראַל אַבסטראַקציע אָפּטימיזאַטיאָנס (-מפּאַ אָפּציע). דאָס וואָלט נאָר ווירקן קאָד וואָס דיפיינז שוואַך פאַנגקשאַנז אַריבער קייפל מאַדזשולז.
לינקער טעות מיט אַבסאָלוט (XCS-2777) ווען אַ כייפעץ איז געמאכט אַבסאָלוט אין אַן אַדרעס אין די אָנהייב פון באַראַן און אַנינישיאַלייזד אַבדזשעקץ זענען אויך דיפיינד, אַ לינקער טעות קען זיין טריגערד.
קורץ וועקן-אַרויף IDs (XCS-2775) פֿאַר ATA5700/2 דעוויסעס, די PHID0/1 רעדזשיסטערז זענען בלויז דיפיינד ווי 16 ביץ ברייט, אלא ווי 32 ביץ ברייט.
לינקער קראַך ווען רופן סימבאָל (XCS-2758) דער לינקער קען קראַך אויב די -merlad דרייווער אָפּציע איז געניצט ווען דער מקור קאָד רופט אַ סימבאָל וואָס איז דיפיינד מיט די -Wl, -defsym לינקער אָפּציע.
פאַלש יניטיאַליזאַטיאָן (XCS-2679) עס איז אַ דיסקרעפּאַנסי צווישן ווו די ערשט וואַלועס פֿאַר עטלעכע גלאבאלע / סטאַטיק ביטע-סייזד אַבדזשעקץ זענען געשטעלט אין דאַטן זכּרון און ווו די וועריאַבאַלז וועט זיין אַקסעסט אין רונטימע.
סטאַרטעד ינקערעקטלי שטעלט ליידיק (XCS-2652) אין ינסטאַנסיז ווען אַ ונטערטעניק שטריקל פֿאַר קאַנווערזשאַן דורך סטייטיד () כּולל וואָס איז אַ פלאָוטינג פונט נומער אין עקספּאָונענשאַל פֿאָרמאַט און עס איז אַן אומגעריכט כאַראַקטער נאָך אַן E כאַראַקטער, די ליידיק אַדרעס, אויב צוגעשטעלט, וועט פונט צו דעם כאַראַקטער נאָך די e און נישט די e זיך. פֿאַר עקסample: סטייטיד ("האָאָיי", ליידיק); וועט רעזולטאַט אין ליידיק ווייזן צו די X כאַראַקטער.
שלעכט ומדירעקט פֿונקציע רופט (XCS-2628) אין עטלעכע ינסטאַנסיז, פונקציע קאַללס געמאכט דורך אַ פונקציע טייַטל סטאָרד ווי אַ טייל פון אַ סטרוקטור קען פאַרלאָזן.
strtof קערט נול פֿאַר העקסאַדעסימאַל פלאַץ (XCS-2626) די ביבליאָטעק פאַנגקשאַנז strtof () et al און scanf () et al, וועט שטענדיק גער אַ העקסאַדעצימאַל פלאָוטינג פונט נומער וואָס טוט נישט ספּעציפיצירן אַ עקספּאָנענט צו
נול. פֿאַר עקסample: stator ("אָול", & ליידיק); וועט צוריקקומען די ווערט 0, נישט 1.
ומפּינקטלעך אָנלייגן אַדווייזער מעסידזשינג (XCS-2542, XCS-2541) אין עטלעכע ינסטאַנסיז, די אָנלייגן אַדווייזער ווארענונג וועגן רעקורסיאָן אָדער ינדיטערמאַנייט אָנלייגן (עפשער דורך די נוצן פון אַלאָקאַ ()) איז נישט ימיטיד.
דורכפאַל מיט דופּליקאַט יבעררייַס קאָד (XCS-2421) ווען מער ווי איין יבעררייַס פֿונקציע האט דער זעלביקער גוף, דער קאַמפּיילער קען האָבן די רעזולטאַט פֿאַר איין יבעררייַס פֿונקציע רופן די אנדערע. דאָס וועט רעזולטאַט אין אַז אַלע רופן-קלאַבערד רעדזשיסטערז זענען געראטעוועט אַננעסאַסעראַלי, און די ינטעראַפּץ וועט זיין ענייבאַלד אפילו איידער די עפּילאָג פון די קראַנט יבעררייַס האַנדלער איז לויפן, וואָס קען פירן צו קאָד דורכפאַל.
קאָנסט אַבדזשעקץ ניט אין פּראָגראַם זכּרון (XCS-2408) פֿאַר אַוורקסמעגאַ3 און אַווערטינס פראיעקטן, ונידעאַליזעד קאָנסט אַבדזשעקץ זענען געשטעלט אין דאַטן זכּרון, כאָטש אַ ווארענונג סאַגדזשעסץ אַז זיי זענען געשטעלט אין פּראָגראַם זכּרון. דאָס וועט נישט ווירקן דיווייסאַז וואָס טאָן ניט האָבן פּראָגראַם זיקאָרן מאַפּט אין די דאַטן זכּרון פּלאַץ, און עס וועט נישט ווירקן קיין אַבדזשעקץ וואָס איז ינישאַלייזד.
שלעכט רעזולטאַט מיט פאַרקריפּלט DFP דרך (XCS-2376) אויב דער קאַמפּיילער איז ינוואָוקט מיט אַ פאַרקריפּלט DFP דרך און אַ 'ספּעק' file יגזיסץ פֿאַר די אויסגעקליבן מיטל, דער קאַמפּיילער איז נישט ריפּאָרטינג די פעלנדיק מיטל משפּחה פּאַק און אַנשטאָט סעלעקטינג די 'ספּעק' file, וואָס קען דעריבער פירן צו אַ פאַרקריפּלט רעזולטאַט. די 'ספּעציפיש' files קען נישט זיין דערהייַנטיקט מיט די פונאנדערגעטיילט דפפּס און איז געווען בדעה פֿאַר נוצן בלויז מיט ינערלעך קאַמפּיילער טעסטינג.
זכּרון אָוווערלאַפּ אַנדיטעקטיד (XCS-1966) דער קאַמפּיילער איז נישט דיטעקטינג די זכּרון אָוווערלאַפּ פון אַבדזשעקץ געמאכט אַבסאָלוט אין אַן אַדרעס (דורך ביי ()) און אנדערע אַבדזשעקץ ניצן די אָפּטיילונג () ספּעסיפיער און וואָס זענען לינגקט צו דער זעלביקער אַדרעס.
דורכפאַל מיט ביבליאָטעק פאַנגקשאַנז און _מעמע (XCS-1763) גערופֿן לימביק פלאָוט פאַנגקשאַנז מיט אַן אַרגומענט אין די _מעמאָ אַדרעס פּלאַץ קען פאַרלאָזן. באַמערקונג אַז ביבליאָטעק רוטינז זענען גערופן פֿון עטלעכע C אָפּערייטערז, אַזוי, למשלample, די פאלגענדע קאָד איז אַפעקטאַד: צוריקקומען regFloatVar > memxFloatVar;
לימיטעד לימביק ימפּלאַמענטיישאַן (AVRTC-731) פֿאַר די ATTiny4/5/9/10/20/40 פּראָדוקטן, די סטאַנדאַרט C / Math ביבליאָטעק ימפּלאַמענטיישאַן אין לימביק איז זייער לימיטעד אָדער נישט פאָרשטעלן.
פּראָגראַם זכּרון לימיטיישאַנז (AVRTC-732) פּראָגראַם זכּרון בילדער ווייַטער פון 128 קב זענען געשטיצט דורך די מכשירים; אָבער, עס זענען באקאנט ינסטאַנסיז פון לינקס אַבאָרט אָן אָפּרו און אָן אַ נוציק טעות אָנזאָג אלא ווי דזשענערייטינג די פארלאנגט פֿונקציע סטאַבס ווען די -רעלאַקס אָפּציע איז געניצט.
נאָמען פּלאַץ לימיטיישאַנז (AVRTC-733) געהייסן אַדרעס ספּייסאַז זענען געשטיצט דורך די טאָאָלטשאַין, אונטערטעניק צו די לימיטיישאַנז דערמאנט אין די באַניצער ס פירער אָפּטיילונג ספּעציעלע טיפּ קוואַליפיערס.
צייט זאָנעס די ביבליאָטעק פאַנגקשאַנז יבערנעמען GMT און טאָן ניט שטיצן היגע צייט זאָנעס, אַזוי די היגע צייט () וועט צוריקקומען די זעלבע צייט ווי גוממיטע (), למשלample.
קונה שטיצן
file:///אַפּפּליקאַטיאָנס/מיקראָהיפּ/xc8/v 2 .40/docs/Read me_X C 8_ פֿאַר אַ וור. htm
דאָקומענטן / רעסאָורסעס
![]() |
MICROCHIP MPLAB XC8 C קאַמפּיילער ווייכווארג [pdf] באַזיצער'ס מאַנואַל MPLAB XC8 C, MPLAB XC8 C קאַמפּיילער ווייכווארג, קאַמפּיילער ווייכווארג, ווייכווארג |