MICROCHIP XC8 C Compiler Verżjoni 2.45 Noti tar-Rilaxx għal AVR MCU
Informazzjoni dwar il-Prodott
Il-MPLAB XC8 C Compiler huwa għodda ta 'softwer użata biex timmira apparati Microchip AVR. Hija mfassla biex tiġbor kodiċi C u tiġġenera eżekutibbli files għal dawn il-mezzi. Il-verżjoni tal-kompilatur li qed issir referenza għaliha f'dan il-manwal tal-utent hija 2.45, b'data tal-bini uffiċjali tat-18 ta' Awwissu 2023. Il-verżjoni preċedenti kienet 2.41, mibnija fit-8 ta' Frar 2023. Il-kompilatur jiġi ma' Manwal tas-Sigurtà Funzjonali, li jipprovdi informazzjoni addizzjonali u linji gwida meta tuża l-kompilaturi MPLAB XC b'applikazzjonijiet ta 'sikurezza funzjonali. Dan il-manwal huwa inkluż fil-pakkett tad-dokumentazzjoni meta tixtri liċenzja tas-sikurezza funzjonali. Il-Kompilatur MPLAB XC8 C jappoġġja l-apparati AVR MCU kollha ta '8-bit disponibbli fil-ħin tar-rilaxx. Tista' tirreferi għal avr_chipinfo.html file fid-direttorju tad-dok tal-kompilatur għal lista tal-apparati kollha appoġġjati u l-issettjar tal-bit tal-konfigurazzjoni tagħhom. Hemm edizzjonijiet differenti tal-kompilatur MPLAB XC8 disponibbli. L-edizzjoni liċenzjata (PRO) tipprovdi livell ogħla ta 'ottimizzazzjoni meta mqabbla mal-edizzjoni b'xejn. Biex tattiva l-kompilatur bħala prodott liċenzjat, għandek bżonn tixtri ċavetta ta 'attivazzjoni. Madankollu, il-verżjoni mingħajr liċenzja tista 'tintuża b'mod indefinit mingħajr liċenzja. Għal applikazzjonijiet ta 'sikurezza funzjonali, kompilatur tas-Sigurtà Funzjonali MPLAB XC8 huwa disponibbli. Jeħtieġ liċenzja tas-sikurezza funzjonali mixtrija minn Microchip għall-attivazzjoni. Ladarba jiġu attivati, il-livelli kollha ta 'ottimizzazzjoni u l-karatteristiċi tal-kompilatur jistgħu jiġu utilizzati. Il-Kompilatur tas-Sigurtà Funzjonali MPLAB XC jappoġġja wkoll il-Liċenzja tas-Server tan-Netwerk. Informazzjoni dettaljata dwar l-installazzjoni, l-attivazzjoni, it-tipi ta 'liċenzja, u kwistjonijiet ta' migrazzjoni tista 'tinstab fid-dokument Installazzjoni u Liċenzjar MPLAB XC C Compilers (DS50002059).
Istruzzjonijiet għall-Użu tal-Prodott
- Qabel ma tħaddem is-softwer MPLAB XC8 C Compiler, aqra l-manwal tal-utent għal informazzjoni importanti u istruzzjonijiet speċifiċi għall-immirar tal-apparati Microchip AVR.
- Jekk qed tuża l-kompilatur għal apparati PIC 8-bit, irreferi għad-dokument MPLAB XC8 C Compiler Release Notes għad-dokument PIC.
- Kun żgur li s-sistema operattiva tiegħek tissodisfa r-rekwiżiti tas-sistema għat-tħaddim tal-kompilatur. Il-binarji għal macOS ġew iffirmati b'kodiċi u notarizzati. Is-Server tal-Liċenzja tan-Netwerk MPLAB XC huwa disponibbli għal Microsoft Windows 10 u ogħla, Ubuntu 18.04 u ogħla, u macOS 10.15 u ogħla. Innota li l-MPLAB XC Network License Server mhuwiex ittestjat fuq dawn is-sistemi operattivi.
- Is-Server tal-Liċenzja tan-Netwerk MPLAB XC jista 'jitħaddem fuq Magni Virtwali tal-OS appoġġjat bl-użu ta' liċenzja ta 'magna virtwali għal-liċenzji tan-netwerk (SW006021-VM). Il-verżjonijiet kollha 32-bit tas-Server tan-Netwerk MPLAB XC jitwaqqfu mill-verżjoni 3.00.
- Biex tattiva l-MPLAB XC8 C Compiler bħala prodott liċenzjat (PRO), tixtri ċavetta ta 'attivazzjoni. Dan se jipprovdi livell ogħla ta 'ottimizzazzjoni meta mqabbel mal-verżjoni b'xejn. Madankollu, il-kompilatur mhux liċenzjat jista 'jitħaddem b'mod indefinit mingħajr liċenzja.
- Jekk qed tuża l-MPLAB XC8 Functional Safety Compiler għal applikazzjonijiet tas-sigurtà funzjonali, għandu jiġi attivat b'liċenzja tas-sigurtà funzjonali mixtrija minn Microchip. Il-kompilatur mhux se jopera mingħajr din il-liċenzja. Ladarba tkun attivata, tista 'tagħżel kwalunkwe livell ta' ottimizzazzjoni u tuża l-karatteristiċi kollha tal-kompilatur. Il-Liċenzja tas-Server tan-Netwerk hija appoġġjata minn dan ir-rilaxx tal-Kompilatur tas-Sigurtà Funzjonali MPLAB XC.
- Għal struzzjonijiet dettaljati dwar l-installazzjoni, l-attivazzjoni, u l-liċenzjar tal-MPLAB XC8 C Compiler, irreferi għad-dokument Installazzjoni u Liċenzjar tal-MPLAB XC C Compilers (DS50002059).
- Jekk qed tmexxi l-kompilatur taħt il-liċenzja ta' evalwazzjoni, tirċievi twissija waqt il-kumpilazzjoni meta tkun fi żmien 14-il jum mit-tmiem tal-perjodu ta' evalwazzjoni tiegħek. L-istess twissija tinħareġ jekk tkun fi żmien 14-il jum mit-tmiem tal-abbonament HPA tiegħek.
Fuqview
Introduzzjoni
Dan ir-rilaxx tal-kompilatur Microchip MPLAB® XC8 C fih diversi karatteristiċi ġodda, bug fixes, u appoġġ għal apparati ġodda.
Data tal-Bini
Id-data tal-bini uffiċjali ta 'din il-verżjoni tal-kompilatur hija t-18 ta' Awwissu 2023.
Verżjoni preċedenti
Il-verżjoni preċedenti tal-kompilatur MPLAB XC8 C kienet 2.41, mibnija fit-8 ta' Frar, 2023.
Manwal tas-Sigurtà Funzjonali
Manwal tas-Sigurtà Funzjonali għall-kompilaturi MPLAB XC huwa disponibbli fil-pakkett tad-dokumentazzjoni meta tixtri liċenzja tas-sigurtà funzjonali.
Liċenzji u Verżjonijiet tal-Komponent
Il-MPLAB XC8 C Compiler għall-għodod AVR MCUs huma miktuba u mqassma taħt il-Liċenzja Pubblika Ġenerali GNU (GPL) li jfisser li l-kodiċi tas-sors tiegħu huwa mqassam liberament u disponibbli għall-pubbliku. Il-kodiċi tas-sors għall-għodod taħt il-GNU GPL jista' jitniżżel separatament minn Microchip's websit. Tista' taqra l-GNU GPL fil- file jismu jinsab is-subdirettorju tad-direttorju tal-installazzjoni tiegħek. Diskussjoni ġenerali tal-prinċipji sottostanti l-GPL tista 'tinstab hawn. Kodiċi ta' appoġġ ipprovdut għall-header files, linker scripts, u runtime libreriji huma kodiċi proprjetarju u mhux koperti taħt il-GPL. Dan il-kompilatur huwa implimentazzjoni tal-verżjoni GCC 5.4.0, binutils verżjoni 2.26, u juża avr-libc verżjoni 2.0.0.
Rekwiżiti tas-Sistema
Il-kompilatur MPLAB XC8 C u s-softwer tal-liċenzjar li juża huma disponibbli għal varjetà ta’ sistemi operattivi, inklużi verżjonijiet ta’ 64 bit ta’ dawn li ġejjin: Edizzjonijiet professjonali ta’ Microsoft® Windows® 10, Ubuntu® 18.04, macOS® 13.2 (Ventura), u Fedora 34. Binaries għall-Windows ġew iffirmati bil-kodiċi. Il-binarji għal macOS ġew iffirmati b'kodiċi u notarizzati. Is-Server tal-Liċenzja tan-Netwerk MPLAB XC huwa disponibbli għal varjetà ta 'sistemi operattivi 64-bit, inklużi Microsoft Windows 10 u ogħla; Ubuntu 18.04 u aktar; jew macOS 10.15 u ogħla. Is-server jista’ jaħdem ukoll fuq diversi sistemi operattivi oħra inklużi Windows Server, distribuzzjonijiet tal-Linux, bħal Oracle® Enterprise Linux® u Red Hat® Enterprise Linux kif ukoll verżjonijiet eqdem ta’ sistemi operattivi appoġġjati. Madankollu, is-Server tal-Liċenzja tan-Netwerk MPLAB XC mhuwiex ittestjat fuq dawn is-sistemi operattivi. Is-Server tal-Liċenzja tan-Netwerk MPLAB XC jista 'jitħaddem fuq Magni Virtwali tal-OS appoġġjat bl-użu ta' liċenzja ta 'magna virtwali għal-liċenzji tan-netwerk (SW006021-VM). Il-verżjonijiet kollha 32-bit tas-Server tan-Netwerk MPLAB XC jitwaqqfu mill-verżjoni 3.00.
Apparati Appoġġjati
Dan il-kompilatur jappoġġja l-apparati AVR MCU kollha ta '8-bit disponibbli fil-ħin tar-rilaxx. Ara avr_chipinfo.html (fid-direttorju tad-dokumenti tal-kompilatur) għal lista tal-apparati kollha appoġġjati. Dawn il-fajls jelenkaw ukoll is-settings tal-bit tal-konfigurazzjoni għal kull apparat.
Edizzjonijiet u Titjib tal-Liċenzja
Il-kompilatur MPLAB XC8 jista 'jiġi attivat bħala prodott liċenzjat (PRO) jew mhux liċenzjat (Ħieles). Għandek bżonn tixtri ċavetta ta' attivazzjoni biex tagħti liċenzja lill-kompilatur tiegħek. Liċenzja tippermetti livell ogħla ta 'ottimizzazzjoni meta mqabbla mal-prodott Ħieles. Kompilatur mhux liċenzjat jista' jitħaddem b'mod indefinit mingħajr liċenzja. Kompilatur tas-Sigurtà Funzjonali MPLAB XC8 għandu jiġi attivat b'liċenzja tas-sigurtà funzjonali mixtrija minn Microchip. Il-kompilatur mhux se jopera mingħajr din il-liċenzja. Ladarba tkun attivata, tista 'tagħżel kwalunkwe livell ta' ottimizzazzjoni u tuża l-karatteristiċi kollha tal-kompilatur. Dan ir-rilaxx tal-Kompilatur tas-Sigurtà Funzjonali MPLAB XC jappoġġja l-Liċenzja tas-Server tan-Netwerk. Ara d-dokument Installazzjoni u Liċenzjar tal-Kompilaturi MPLAB XC C (DS50002059) għal informazzjoni dwar it-tipi ta 'liċenzja u l-installazzjoni tal-kompilatur b'liċenzja.
Installazzjoni u Attivazzjoni
Ara wkoll is-sezzjonijiet ta' Kwistjonijiet u Limitazzjonijiet ta' Migrazzjoni għal informazzjoni importanti dwar l-aħħar maniġer tal-liċenzja inkluż ma' dan il-kompilatur. Jekk tuża MPLAB IDE, kun żgur li tinstalla l-aħħar verżjoni MPLAB X IDE 5.0 jew aktar tard qabel tinstalla din l-għodda. Nieqaf mill-IDE qabel ma tinstalla l-kompilatur. Mexxi l-applikazzjoni tal-installatur tal-kompilatur .run (Linux) jew .app (macOS), eż. XC8-1.00.11403-windows.exe u segwi d-direzzjonijiet fuq l-iskrin. Id-direttorju tal-installazzjoni default huwa rakkomandat. Jekk qed tuża Linux, trid tinstalla l-kompilatur billi tuża terminal u minn kont tal-għeruq. Installa billi tuża kont macOS bi privileġġi ta' amministratur. L-attivazzjoni issa titwettaq separatament għall-installazzjoni. Ara d-dokument License Manager for MPLAB® XC C Compilers (DS52059) għal aktar informazzjoni. Jekk tagħżel li tmexxi l-kompilatur taħt il-liċenzja ta' evalwazzjoni, issa tirċievi twissija waqt il-kumpilazzjoni meta tkun fi żmien 14-il jum mit-tmiem tal-perjodu ta' evalwazzjoni tiegħek. L-istess twissija tinħareġ jekk tkun fi żmien 14-il jum mit-tmiem tal-abbonament HPA tiegħek. Is-Server tal-Liċenzja tan-Netwerk XC huwa installatur separat u mhux inkluż fl-installatur tal-kompilatur ta' utent wieħed. Il-Maniġer tal-Liċenzja XC issa jappoġġa r-roaming ta' liċenzji tan-netwerk f'wiċċ l-ilma. Immirata għall-utenti tal-mowbajl, din il-karatteristika tippermetti li liċenzja f'wiċċ l-ilma tintefa' min-netwerk għal perjodu qasir ta' żmien. Billi tuża din il-karatteristika, tista 'skonnettja min-netwerk u xorta tuża l-kompilatur MPLAB XC tiegħek. Ara l-folder tad-dok tal-installazzjoni XCLM għal aktar dwar din il-karatteristika. MPLAB X IDE jinkludi tieqa Liċenzji (Għodda > Liċenzji) biex timmaniġġja viżwalment ir-roaming.
Issolvi Kwistjonijiet ta' Installazzjoni
Jekk tesperjenza diffikultajiet biex tinstalla l-kompilatur taħt xi waħda mis-sistemi operattivi Windows, ipprova s-suġġerimenti li ġejjin.
- Mexxi l-installazzjoni bħala amministratur.
- Issettja l-permessi tal-applikazzjoni tal-installatur għal 'Kontroll sħiħ'. (Ikklikkja bil-lemin fuq il-fajl, agħżel Proprjetajiet, tab Sigurtà, agħżel utent, editja.)
- Issettja l-permessi tal-folder tat-temp għal 'Kontroll Sħiħ'.
Biex tiddetermina l-post tal-folder tat-temp, ittajpja %temp% fil-kmand Run (tast tal-logo Windows + R). Dan jiftaħ djalogu tal-esploratur tal-fajls li juri dak id-direttorju u jippermettilek tiddetermina l-mogħdija ta’ dak il-folder.
Dokumentazzjoni tal-Kompilatur
Il-gwidi tal-utent tal-kompilatur jistgħu jinfetħu mill-paġna HTML li tiftaħ fil-browser tiegħek meta tikklikkja l-buttuna tal-għajnuna blu fid-dashboard MPLAB X IDE, kif indikat fil-screenshot.
Jekk qed tibni għal miri AVR 8-bit, il-Gwida tal-Utent tal-Kompilatur MPLAB® XC8 C għal AVR® MCU fiha informazzjoni dwar dawk l-għażliet u l-karatteristiċi tal-kompilatur li huma applikabbli għal din l-arkitettura.
Appoġġ għall-Klijent
Tista' tistaqsi mistoqsijiet lil utenti oħra ta' dan il-prodott fil-Forum XC8. Microchip jilqa' rapporti ta' bug, suġġerimenti jew kummenti dwar din il-verżjoni tal-kompilatur. Jekk jogħġbok idderieġi kwalunkwe rapport ta' bug jew talba għal karatteristiċi permezz tas-Sistema ta' Appoġġ.
Aġġornamenti tad-Dokumentazzjoni
Għal verżjonijiet onlajn u aġġornati tad-dokumentazzjoni MPLAB XC8, jekk jogħġbok żur id-Dokumentazzjoni Teknika Online ta' Microchip websit.
Dokumentazzjoni AVR ġdida jew aġġornata f'dan ir-rilaxx:
Xejn
- Il-Gwida tal-Migrazzjoni AVR® GNU Toolchain għal MPLAB® XC8 tiddeskrivi l-bidliet fil-kodiċi tas-sors u l-għażliet tal-bini li jistgħu jkunu meħtieġa jekk tiddeċiedi li temigra proġett ibbażat fuq C mill-AVR 8-bit GNU Toolchain għall-Mikrochip MPLAB XC8 C Compiler.
- Il-Gwida ta' Referenza tal-Librerija Standard Unifikata tal-Mikrochip tiddeskrivi l-imġiba ta' u l-interface mal-funzjonijiet definiti mill-Librerija Standard Unifikata tal-Microchip, kif ukoll l-użu maħsub tat-tipi u l-macros tal-librerija. Xi wħud minn din l-informazzjoni qabel kienet tinsab fil-Gwida tal-Utent tal-Kompilatur MPLAB® XC8 C għal AVR® MCU. Informazzjoni tal-librerija speċifika għall-apparat għadha tinsab f'din il-gwida tal-kompilatur.
- Jekk għadek qed tibda b'apparat ta' 8-bit u l-MPLAB XC8 C Compiler, l-MPLAB® XC8 User's
- Gwida għall-Inġiniera Inkorporati - AVR® MCUs (DS50003108) għandha informazzjoni dwar it-twaqqif ta 'proġetti fl-MPLAB X IDE u l-kitba tal-kodiċi għall-ewwel proġett tiegħek MPLAB XC8 C. Din il-gwida issa hija mqassma mal-kompilatur.
- Il-Gwida għall-Utent ta' Hexmate hija maħsuba għal dawk li jmexxu Hexmate bħala applikazzjoni waħedha.
X'hemm Ġdid
Dawn li ġejjin huma karatteristiċi ġodda AVR-mira li l-kompilatur issa jappoġġja. In-numru tal-verżjoni fis-subintestaturi jindika l-ewwel verżjoni tal-kompilatur biex jappoġġja l-karatteristiċi li ġejjin.
Verżjoni 2.45
Maniġer tal-liċenzja universali (XC8-3175, XCLM-224) Il-verżjoni macOS tal-maniġer tal-liċenzja użata mal-kompilatur issa hija universali, u toffri appoġġ indiġenu kemm għal magni bbażati fuq Intel kif ukoll fuq M1. Il-verżjoni Linux tal-maniġer tal-liċenzja issa teħtieġ mill-inqas il-verżjoni 2.25 tal-glibc. Mac universali binarji (XC8-3168, XC8-2951) Il-fajls binarji tal-kompilaturi għal macOS issa huma universali, u joffru appoġġ indiġenu kemm għal magni bbażati fuq Intel kif ukoll fuq M1. Daqsijiet imnaqqsa tal-librerija b'punt varjabbli (XC8-3112, XC8-3071) Sar titjib fil-funzjonijiet tal-librerija b'punt varjabbli, inklużi sinf() pow(), sqrt(), expf(), log1fp(), u nextafterf() , li jaraw tnaqqis fid-daqs tal-kodiċi għal dawn ir-rutini. Appoġġ ġdid għall-apparat L-appoġġ issa huwa disponibbli għall-partijiet AVR li ġejjin: AVR16EA28, AVR16EA32, AVR16EA48, AVR32EA28, AVR32EA32, AVR32EA48, AVR16EB14, AVR16EB20, AVR16EB28, u AVR16EB32.
Verżjoni 2.41
- Appoġġ Bootrow (XC8-3053) Il-kompilatur se jqiegħed il-kontenut ta' kwalunkwe sezzjoni bi prefiss .bootrow fl-indirizz 0x860000 fil-fajl HEX. Dawn it-taqsimiet jintużaw għall-memorja BOOTROW, li hija mfassla għall-ħażna ta 'ċwievet u informazzjoni oħra sigura li għandha tkun aċċessibbli biss għal bootloader.
- Eliminazzjoni ta' ritorn żejda (XC8-3048) Il-kompilatur issa se jelimina struzzjonijiet ret żejda f'funzjonijiet b'qabża ta' denb meta jintużaw skripts tal-linker tad-dwana. Din hija ottimizzazzjoni simili għal dik imwettqa qabel, iżda issa titwettaq fuq is-sezzjonijiet kollha orfni, anke jekk tintuża script ta' linker apposta u l-iskema ta' allokazzjoni ta' l-aħjar fit ma tkunx qed taħdem.
- Bidla tat-tip tal-ħin (XC8-2982, 2932) It-tip ta 'librerija standard C99, time_t inbidel minn twil twil għal tip twil mhux iffirmat, li jagħti titjib fid-daqs tal-kodiċi f'xi funzjonijiet relatati mal-ħin, bħal mktime().
- Nop ġdid (XC8-2946, 2945) Il-makro NOP() ġie miżjud ma' . Dan il-makro jdaħħal istruzzjoni nop mingħajr operazzjoni fl-output.
- Aġġornament għal XCLM (XC8-2944) Il-maniġer tal-liċenzja użat mal-kompilatur ġie aġġornat u issa huwa aktar reattiv meta jiċċekkja d-dettalji tal-liċenzja tal-kompilatur.
- Trampsejħiet bil-linja (XC8-2760) Il-kompilatur issa jista' jwettaq sostituzzjoni ta' struzzjonijiet ta' sejħa fit-tul b'sejħiet relattivi iqsar meta l-formoli relattivi tal-istruzzjonijiet normalment ikunu barra mill-firxa tad-destinazzjoni tagħhom. F'din is-sitwazzjoni, il-kompilatur jipprova jissostitwixxi b'istruzzjonijiet rcall għal istruzzjoni ta' sejħa jmp li se "tramponline' eżekuzzjoni fl-indirizz meħtieġ, pereżempjuample:
Verżjoni 2.40
- Appoġġ ġdid għall-apparat L-appoġġ issa huwa disponibbli għall-partijiet AVR li ġejjin: AT90PWM3, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR64EA28, AVR64EA32, AVR64, and.
- Astrazzjoni proċedurali mtejba L-għodda tal-ottimizzazzjoni tal-estrazzjoni proċedurali (PA) ġiet imtejba sabiex il-kodiċi li fih struzzjoni ta' sejħa ta' funzjoni (call/rcall) tkun tista' tiġi deskritta fil-qosor. Dan iseħħ biss jekk il-munzell ma jintużax biex jgħaddi argumenti lil u lanqas jikseb il-valur tar-ritorn mill-funzjoni. Il-munzell jintuża meta ssejjaħ funzjoni b'lista ta' argumenti varjabbli jew meta ssejjaħ funzjoni li tieħu aktar argumenti milli hemm reġistri nominati għal dan il-għan. Din il-karatteristika tista’ tiġi diżattivata billi tuża l-għażla – mno-pa-outline-calls, jew l-astrazzjoni proċedurali tista’ tiġi diżattivata kompletament għal fajl ta’ oġġett u jew funzjoni billi tuża l--mno-pa-on-file -mno-pa-on-function, rispettivament, jew billi tuża l-attribut nopa (__nopa specifier) b'mod selettiv mal-funzjonijiet.
- Kopertura tal-kodiċi makro Il-kompilatur issa jiddefinixxi l-makro __CODECOV jekk tkun speċifikata għażla valida -mcodecov.
- Għażla ta' riservazzjoni tal-memorja Is-sewwieq xc8-cc issa se jaċċetta l-għażla -mreserve=space@start:end meta jibni għall-miri AVR. Din l-għażla tirriżerva l-firxa tal-memorja speċifikata jew fl-ispazju tal-memorja tad-dejta jew tal-programm, u timpedixxi lill-linker milli jimla kodiċi jew oġġetti f'din iż-żona.
- Smarter smart IO Sar diversi titjib fil-funzjonijiet Smart IO, inklużi tweaks ġenerali għall-kodiċi tal-qalba printf, li jittrattaw l-ispeċifikazzjoni tal-konverżjoni %n bħala varjant indipendenti, li jgħaqqdu rutini vararg pop fuq talba, bl-użu ta’ tipi ta’ data iqsar fejn possibbli għall-immaniġġjar argumenti funzjoni IO, u factoring kodiċi komuni fil-wisa 'field u l-immaniġġjar ta' preċiżjoni. Dan jista 'jirriżulta f'iffrankar sinifikanti ta' kodiċi u data, kif ukoll iżid il-veloċità ta 'eżekuzzjoni ta' IO.
Verżjoni 2.39 (Rilaxx tas-Sigurtà Funzjonali)
Liċenzja tas-Server tan-Netwerk Dan ir-rilaxx tal-Kompilatur tas-Sigurtà Funzjonali MPLAB XC8 jappoġġja l-Liċenzja tas-Server tan-Netwerk.
Verżjoni 2.36
Xejn.
Verżjoni 2.35
- Appoġġ għall-apparat ġdid L-appoġġ huwa disponibbli għall-partijiet AVR li ġejjin: ATTINY3224, ATTINY3226, ATTINY3227, AVR64DD14, AVR64DD20, AVR64DD28, u AVR64DD32.
- Bdil imtejjeb tal-kuntest L-għażla l-ġdida -mcall-isr-prologues tbiddel kif il-funzjonijiet tal-interruzzjoni jsalvaw ir-reġistri mad-dħul u kif dawk ir-reġistri jiġu restawrati meta tintemm ir-rutina tal-interruzzjoni. Taħdem b'mod simili għall-għażla -mcall-prologues, iżda taffettwa biss il-funzjonijiet ta 'interruzzjoni (ISRs).
- Saħansitra aktar imtejjeb il-bidla tal-kuntest L-għażla l-ġdida -mgas-isr-prologues tikkontrolla l-kodiċi tal-iswiċċ tal-kuntest iġġenerat għal rutini żgħar ta 'servizz ta' interruzzjoni. Meta tkun attivata, din il-karatteristika se jkollha l-assemblatur jiskenja l-ISR għall-użu tar-reġistru u jsalva dawn ir-reġistri użati biss jekk meħtieġ.
- Mapping tal-flash konfigurabbli Xi apparati fil-familja AVR DA u AVR DB għandhom SFR (eż. FLMAP) li jispeċifika liema taqsima ta' 32k tal-memorja tal-programm se tiġi mmappjata fil-memorja tad-dejta. L-għażla l-ġdida – mconst-data-in-config-mapped-progmem tista’ tintuża biex il-linker ipoġġi d-dejta kollha kwalifikata f’sezzjoni waħda ta’ 32k u awtomatikament jinizjalizza r-reġistru SFR rilevanti biex jiżgura li din id-dejta tiġi mmappjata fl-ispazju tal-memorja tad-dejta. , fejn se tkun aċċessata b'mod aktar effettiv.
- Libreriji Standard Unifikati tal-Mikroċippa Il-kompilaturi kollha tal-MPLAB XC se jaqsmu Librerija Standard Unifikata tal-Mikroċippa, li issa hija disponibbli b'din ir-rilaxx ta' MPLAB XC8. Il-Gwida tal-Utent tal-Kompilatur MPLAB® XC8 C għal AVR® MCU m'għadhiex tinkludi d-dokumentazzjoni għal dawn il-funzjonijiet standard. Din l-informazzjoni issa tista’ tinstab fil-Gwida ta’ Referenza tal-Librerija Standard Unifikata tal-Mikrochip. Innota li xi funzjonalità definita qabel minn avr-libc m'għadhiex disponibbli. (Ara l-funzjonalità tal-Librerija.)
- Smart IO Bħala parti mil-libreriji unifikati l-ġodda, il-funzjonijiet IO fil-familji printf u scanf issa huma ġġenerati apposta fuq kull build, ibbażati fuq kif dawn il-funzjonijiet jintużaw fil-programm. Dan jista' jnaqqas sostanzjalment ir-riżorsi użati minn programm.
- Għażla ta' assistenza Smart IO Meta janalizza sejħiet għal funzjonijiet smart IO (bħal printf() jew scanf() il-kompilatur ma jistax dejjem jiddetermina mill-string tal-format jew jiddeduċi mill-argumenti dawk l-ispeċifikazzjonijiet ta' konverżjoni meħtieġa mis-sejħa. Preċedentement, il-kompilatur dejjem jagħmel l-ebda suppożizzjoni u tiżgura li l-funzjonijiet IO kompletament funzjonali ġew konnessi fl-immaġni tal-programm finali ġiet miżjuda għażla ġdida -msmart-io-format=fmt sabiex il-kompilatur ikun jista’ minflok jiġi infurmat mill-utent dwar l-ispeċifikazzjonijiet tal-konverżjoni użati minn smart IO. funzjonijiet li l-użu tagħhom huwa ambigwu, li jipprevjenu rutini IO twal wisq milli jiġu konnessi (Ara l-Għażla ta’ smart-io-format għal aktar dettalji.)
- Tqegħid ta' sezzjonijiet tad-dwana Preċedentement, l-għażla -Wl,–section-start poġġiet biss is-sezzjoni speċifikata fl-indirizz mitlub meta l-iskript tal-linker iddefinixxa sezzjoni tal-ħruġ bl-istess isem. Meta dan ma kienx il-każ, is-sezzjoni tpoġġiet f'indirizz magħżul mill-linker u l-għażla kienet essenzjalment injorata. Issa l-għażla se tkun onorata għat-taqsimiet tad-dwana kollha, anke jekk l-iskript tal-linker ma jiddefinixxix it-taqsima. Innota, madankollu, li għal sezzjonijiet standard, bħal .text, .bss jew .data , l-allokatur tal-aħjar fit xorta se jkollu kontroll sħiħ fuq it-tqegħid tagħhom, u l-għażla ma jkollha l-ebda effett. Uża l-għażla -Wl,-Tsection=addr, kif deskritt fil-gwida tal-utent.
Verżjoni 2.32
- Gwida tal-munzell Disponibbli b'liċenzja tal-kompilatur PRO, il-karatteristika ta 'gwida tal-munzell tal-kompilatur tista' tintuża biex tistma l-fond massimu ta 'kull munzell użat minn programm. Jibni u janalizza l-graff tas-sejħa ta 'programm, jiddetermina l-użu tal-munzell ta' kull funzjoni, u jipproduċi rapport, li minnu jista 'jiġi dedott il-fond ta' munzelli użati mill-programm. Din il-karatteristika hija attivata permezz tal-għażla tal-linja tal-kmand -mchp-stack-usage. Sommarju tal-użu tal-munzell jiġi stampat wara l-eżekuzzjoni. Rapport dettaljat tal-munzell huwa disponibbli fil-fajl tal-mappa, li jista' jintalab bil-mod tas-soltu.
- Appoġġ għall-apparat ġdid L-appoġġ huwa disponibbli għall-partijiet AVR li ġejjin: ATTINY427, ATTINY424, ATTINY426, ATTINY827, ATTINY824, ATTINY826, AVR32DB32, AVR64DB48, AVR64DB64, AVR64DB28, AVR32DB28, AVR64DB32, AVR32DB48, AVRXNUMXDBXNUMX, u AVRXNUMXDBXNUMX.
- Appoġġ tal-apparat miġbud L-appoġġ m'għadux disponibbli għall-partijiet AVR li ġejjin: AVR16DA28, AVR16DA32 u, AVR16DA48.
Verżjoni 2.31
Xejn.
Verżjoni 2.30
- Għażla ġdida biex tipprevjeni l-inizjalizzazzjoni tad-dejta Għażla ġdida tas-sewwieq -mno-data-init tipprevjeni l-inizjalizzazzjoni tad-dejta u l-ikklerjar tas-sezzjonijiet bss. Jaħdem billi jrażżan l-output tas-simboli do_clear_bss fil-fajls tal-assemblaġġ, li mbagħad jipprevjenu l-inklużjoni ta’ dawk ir-rutini mill-linker.
- Ottimizzazzjonijiet imtejba Sar għadd ta' titjib fl-ottimizzazzjoni, inkluż it-tneħħija ta' struzzjonijiet ta' ritorn żejda, it-tneħħija ta' xi qbiż wara struzzjoni skip-if-bit-is, u estrazzjoni proċedurali mtejba u l-abbiltà li jtenni dan il-proċess.
Għażliet addizzjonali issa huma disponibbli biex jikkontrollaw xi wħud minn dawn l-ottimizzazzjonijiet, speċifikament -fsection-ankri , li jippermetti li l-aċċess ta 'oġġetti statiċi jitwettaq relattiv għal simbolu wieħed; -mpa- iterations=n , li jippermetti li n-numru ta' iterazzjonijiet ta' astrazzjoni proċedurali jinbidel mill-inadempjenza ta' 2; u, -mpa-callcost-shortcall, li twettaq astrazzjoni proċedurali aktar aggressiva, bit-tama li l-linker jista 'jirrilassa sejħiet twal. Din l-aħħar għażla tista' żżid id-daqs tal-kodiċi jekk is-suppożizzjonijiet sottostanti ma jiġux realizzati. - Appoġġ ġdid għall-apparat huwa disponibbli għall-partijiet AVR li ġejjin: AVR16DA28, AVR16DA32, AVR16DA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR128DA28, AVR128, AVR32, AVR128 48DB128.
- Appoġġ ta 'Appoġġ ta' apparat miġbud m'għadux disponibbli għall-partijiet AVR li ġejjin: ATA5272, ATA5790, ATA5790N, ATA5791, ATA5795, ATA6285, ATA6286, ATA6612C, ATA6613C, ATA6614Q, ATA6616Q, ATA6617C664251, ATAXNUMXC, ATAXNUMXC.
Verżjoni 2.29 (Rilaxx tas-Sigurtà Funzjonali)
- Fajl tal-header għall-inkorporazzjoni tal-kompilatur Biex jiġi żgurat li l-kompilatur ikun jista' jikkonforma mal-ispeċifikazzjonijiet tal-lingwa bħal MISRA, il- , ġie aġġornat. Din l-intestatura fiha l-prototipi għall-funzjonijiet kollha in-built, bħal __builtin_avr_nop() u __builtin_avr_delay_cycles() . Xi built-ins jistgħu ma jkunux konformi MISRA; dawn jistgħu jitħallew barra billi żżid id-define __XC_STRICT_MISRA mal-linja tal-kmand tal-kompilatur. Il-built-ins u d-dikjarazzjonijiet tagħhom ġew aġġornati biex jużaw tipi ta' wisa 'fiss.
Verżjoni 2.20
- Appoġġ ġdid għall-apparat huwa disponibbli għall-partijiet AVR li ġejjin: ATTINY1624, ATTINY1626, u ATTINY1627.
- Allokazzjoni aħjar aħjar L-allocatur aħjar (BFA) fil-kompilatur ġie mtejjeb sabiex it-taqsimiet jiġu allokati f'ordni li tippermetti ottimizzazzjoni aħjar. Il-BFA issa jappoġġja l-ispazji tal-indirizzi msemmija u jimmaniġġja aħjar l-inizjalizzazzjoni tad-dejta.
- Astrazzjoni proċedurali mtejba L-ottimizzazzjonijiet tal-astrazzjoni proċedurali issa huma mwettqa fuq aktar sekwenzi ta' kodiċi. Sitwazzjonijiet preċedenti fejn din l-ottimizzazzjoni setgħet żiedet id-daqs tal-kodiċi ġew indirizzati billi l-kodiċi tal-ottimizzazzjoni jsir konxju tal-proċess tal-ġbir taż-żibel tal-linker.
- Assenza ta 'Assembler AVR L-Assembler AVR m'għadux inkluż ma' din id-distribuzzjoni.
Verżjoni 2.19 (Rilaxx tas-Sigurtà Funzjonali)
Xejn.
Verżjoni 2.10
- Kopertura tal-Kodiċi Dan ir-rilaxx jinkludi karatteristika ta 'kopertura tal-kodiċi li tiffaċilita l-analiżi tal-punt sa fejn il-kodiċi tas-sors ta' proġett ikun ġie esegwit. Uża l-għażla -mcodecov=ram biex tagħmilha. Wara l-eżekuzzjoni tal-programm fuq il-ħardwer tiegħek, l-informazzjoni dwar il-kopertura tal-kodiċi se tiġi miġbura fl-apparat, u dan jista 'jiġi trasferit lejn u murija mill-MPLAB X IDE permezz ta' plugin ta 'kopertura tal-kodiċi. Ara d-dokumentazzjoni IDE għal informazzjoni dwar dan il-plugin tista 'tinkiseb.
Il-#pragma nocodecov jista' jintuża biex jeskludi funzjonijiet sussegwenti mill-analiżi tal-kopertura. Idealment il-pragma għandha tiżdied fil-bidu tal-fajl biex teskludi dak il-fajl kollu mill-analiżi tal-kopertura. Alternattivament, il-__attribute__((nocodecov)) jista' jintuża biex jeskludi funzjoni speċifika mill-analiżi tal-kopertura. - Fajls tad-deskrizzjoni tal-apparat Fajl tal-apparat ġdid imsejjaħ avr_chipinfo.html jinsab fid-direttorju tad-doks tad-distribuzzjoni tal-kompilatur. Dan il-fajl jelenka l-apparati kollha appoġġjati mill-kompilatur. Ikklikkja fuq l-isem ta' apparat, u se tiftaħ paġna li turi l-pari kollha ta' l-issettjar/il-valur tal-bit permissibbli għal dak l-apparat, b'examples.
- Astrazzjoni proċedurali L-ottimizzazzjonijiet tal-astrazzjoni proċedurali, li jissostitwixxu blokki komuni ta 'kodiċi ta' assemblaġġ b'sejħiet għal kopja estratta ta 'dik il-blokka, ġew miżjuda mal-kompilatur. Dawn jitwettqu minn applikazzjoni separata, li tiġi invokata awtomatikament mill-kompilatur meta tagħżel ottimizzazzjonijiet tal-livell 2, 3 jew s. Dawn l-ottimizzazzjonijiet inaqqsu d-daqs tal-kodiċi, iżda jistgħu jnaqqsu l-veloċità tal-eżekuzzjoni u d-debugability tal-kodiċi. L-astrazzjoni proċedurali tista 'tiġi diżattivata f'livelli ogħla ta' ottimizzazzjoni billi tuża l-għażla -mno-pa, jew tista 'tiġi attivata f'livelli ta' ottimizzazzjoni aktar baxxi (suġġett għal-liċenzja tiegħek) billi tuża -mpa. Jista' jiġi diżattivat għal fajl oġġett billi tuża -mno-pa-on-file=fileisem , jew diżattivat għal funzjoni billi tuża -mno-pa-on- function=function. Ġewwa l-kodiċi tas-sors tiegħek, l-astrazzjoni proċedurali tista’ tiġi diżattivata għal funzjoni billi tuża __attribute__((nopa)) bid-definizzjoni tal-funzjoni, jew billi tuża __nopa, li tespandi għal __attribute__((nopa,noinline)) u b’hekk tipprevjeni l-inlining tal-funzjoni milli jseħħ u jkun hemm estrazzjoni ta 'kodiċi inlined.
- Appoġġ tal-bit tal-lock fi pragma Il-konfigurazzjoni #pragma issa tista' tintuża biex tispeċifika l-bits tal-illokkjar tal-AVR kif ukoll il-bits tal-konfigurazzjoni l-oħra. Iċċekkja l-fajl avr_chipinfo.html (imsemmi hawn fuq) għall-pari setting/valur li tuża ma' din il-pragma.
- Appoġġ għall-apparat ġdid L-appoġġ huwa disponibbli għall-partijiet li ġejjin: AVR28DA128, AVR64DA128, AVR32DA128, u AVR48DA128.
Verżjoni 2.05
- Aktar bits għall-flus tiegħek Il-verżjoni macOS ta 'dan il-kompilatur u l-maniġer tal-liċenzja issa hija applikazzjoni 64-bit. Dan se jiżgura li l-kompilatur jinstalla u jaħdem mingħajr twissijiet fuq verżjonijiet reċenti ta' macOS.
- Oġġetti const fil-memorja tal-programm Il-kompilatur issa jista' jqiegħed oġġetti kkwalifikati għal konst fil-memorja Flash tal-programm, aktar milli jkollhom dawn jinsabu fir-RAM. Il-kompilatur ġie modifikat sabiex dejta globali kkwalifikata b'mod kostanti tinħażen fil-memorja flash tal-programm u din id-dejta tista' tiġi aċċessata direttament u indirettament bl-użu tal-istruzzjonijiet xierqa tal-memorja tal-programm. Din il-karatteristika l-ġdida hija attivata awtomatikament iżda tista 'tiġi diżattivata billi tuża l-għażla -mno-const-data-in-progmem. Għall-arkitetturi avrxmega3 u avrtiny, din il-karatteristika mhix meħtieġa u hija dejjem diżattivata, peress li l-memorja tal-programm hija mmappjata fl-ispazju tal-indirizz tad-dejta għal dawn l-apparati.
- Standard b'xejn Verżjonijiet bla liċenzja (Ħieles) ta' dan il-kompilatur issa jippermettu ottimizzazzjonijiet sa u inkluż il-livell 2. Dan se jippermetti output simili, għalkemm mhux identiku, għal dak li qabel kien possibbli bl-użu ta' liċenzja Standard.
- Merħba AVRASM2 L-assembler AVRASM2 għal apparati 8-bit issa huwa inkluż fl-installatur tal-kompilatur XC8. Dan l-assemblatur mhuwiex użat mill-kompilatur XC8, iżda huwa disponibbli għal proġetti bbażati fuq sors ta 'assemblaġġ miktub bl-idejn.
- Appoġġ għall-apparat ġdid L-appoġġ huwa disponibbli għall-partijiet li ġejjin: ATMEGA1608, ATMEGA1609, ATMEGA808, u ATMEGA809.
Verżjoni 2.00
- Sewwieq tal-ogħla livell Sewwieq ġdid, imsejjaħ xc8-cc, issa qiegħed fuq is-sewwieq avr-gcc preċedenti u s-sewwieq xc8, u jista 'jsejjaħ il-kompilatur xieraq ibbażat fuq l-għażla tal-apparat fil-mira. Dan is-sewwieq jaċċetta għażliet tal-istil GCC, li jew jiġu tradotti jew mgħoddija lill-kompilatur li qed jiġi eżegwit. Dan is-sewwieq jippermetti sett simili ta 'għażliet b'semantika simili biex jintużaw ma' kwalunkwe mira AVR jew PIC u għalhekk huwa l-mod rakkomandat biex jinvoka l-kompilatur. Jekk meħtieġ, is-sewwieq l-antik avr-gcc jista 'jissejjaħ direttament billi juża l-għażliet ta' stil antik li aċċetta f'verżjonijiet tal-kompilaturi preċedenti.
- Common C Interface Dan il-kompilatur issa jista' jikkonforma mal-MPLAB Common C Interface, li jippermetti li l-kodiċi tas-sors jiġi portat aktar faċilment fil-kompilaturi MPLAB XC kollha. L-għażla -mext=cci titlob din il-karatteristika, li tippermetti sintassi alternattiva għal ħafna estensjonijiet tal-lingwa.
- Sewwieq tal-librar ġdid Driver tal-librar ġdid huwa pożizzjonat fuq il-librar tal-libr PIC preċedenti u l-librar tal-AVR avr-ar. Dan is-sewwieq jaċċetta għażliet ta' stil GCC-arkivju, li jew jiġu tradotti jew mgħoddija lill-librar li qed jiġi eżegwit. Is-sewwieq il-ġdid jippermetti sett simili ta' għażliet b'semantika simili biex jintuża biex jinħoloq jew jimmanipula kwalunkwe fajl tal-librerija PIC jew AVR u għalhekk huwa l-mod rakkomandat biex jinvoka lill-librar. Jekk meħtieġ għal proġetti legacy, il-librar preċedenti jista 'jissejjaħ direttament billi juża l-għażliet ta' stil antik li aċċetta f'verżjonijiet tal-kompilaturi preċedenti.
Kwistjonijiet ta' Migrazzjoni
Dawn li ġejjin huma karatteristiċi li issa huma ttrattati b'mod differenti mill-kompilatur. Dawn il-bidliet jistgħu jeħtieġu modifika għall-kodiċi tas-sors tiegħek jekk il-kodiċi jinġarr għal din il-verżjoni tal-kompilatur. In-numru tal-verżjoni fis-subintestaturi jindika l-ewwel verżjoni tal-kompilatur biex tappoġġja l-bidliet li ġejjin.
Verżjoni 2.45
Xejn.
Verżjoni 2.41
Funzjonijiet fma mhux preċiżi mneħħija (XC8-2913) Il-librerija standard C99 ( ) ma kkalkulax multiplik-add bi preċiżjoni infinita għal arrotondament wieħed, iżda minflok akkumula żbalji ta' arrotondament ma' kull operazzjoni. Dawn il-funzjonijiet tneħħew mil-librerija fornita.
Verżjoni 2.40
Xejn.
Verżjoni 2.39 (Rilaxx tas-Sigurtà Funzjonali)
Xejn.
Verżjoni 2.36
Xejn.
Verżjoni 2.35
- Immaniġġjar ta' bażijiet string-to (XC8-2420) Biex tiġi żgurata l-konsistenza ma' kompilaturi XC oħra, il-funzjonijiet string-to XC8, bħal strtol() eċċ., ma jibqgħux jippruvaw jikkonvertu string ta' input jekk il-bażi speċifikata hija akbar minn 36. u minflok se tistabbilixxi . L-istandard C ma jispeċifikax l-imġiba tal-funzjonijiet meta dan il-valur bażi jinqabeż.
- Ottimizzazzjonijiet tal-veloċità mhux xierqa L-ottimizzazzjonijiet tal-astrazzjoni proċedurali kienu qed jiġu attivati meta jintgħażlu ottimizzazzjonijiet tal-livell 3 (-O3). Dawn l-ottimizzazzjonijiet inaqqsu d-daqs tal-kodiċi għad-detriment tal-veloċità tal-kodiċi, għalhekk ma kellhomx jitwettqu. Proġetti li jużaw dan il-livell ta 'ottimizzazzjoni jistgħu jaraw differenzi fid-daqs tal-kodiċi u l-veloċità ta' eżekuzzjoni meta jinbnew b'din ir-rilaxx.
- Funzjonalità tal-Librerija Il-kodiċi għal ħafna mill-funzjonijiet standard tal-librerija C issa ġej mill-Librerija Standard Unifikata ta' Microchip, li tista' tesibixxi mġiba differenti f'xi ċirkostanzi meta mqabbla ma' dik ipprovduta mill-librerija avr-libc preċedenti. Per example, m'għadux meħtieġ li tingħaqad fil-librerija lprintf_flt (għażla -lprintf_flt) biex tixgħel l-appoġġ IO ifformattjat għall-ispeċifikazzjonijiet tal-format float. Il-karatteristiċi smart IO tal-Microchip Unfied Standard Library jagħmlu din l-għażla żejda. Barra minn hekk, l-użu ta' rutini suffissi _P għal funzjonijiet ta' string u memorja (eż. strcpy_P() eċċ..) li joperaw fuq strings const fil-flash m'għadhomx meħtieġa. Ir-rutini standard C (eż. strcpy() jaħdmu b'mod korrett b'tali data meta l-karatteristika const-data-in-program-memory tkun attivata.
Verżjoni 2.32
Xejn.
Verżjoni 2.31
Xejn.
Verżjoni 2.30
Xejn.
Verżjoni 2.29 (Rilaxx tas-Sigurtà Funzjonali)
Xejn.
Verżjoni 2.2
Tqassim DFP mibdul Il-kompilatur issa jassumi tqassim differenti użat mid-DFPs (Pakketti tal-Familja tal-Apparat). Dan se jfisser li DFP antik jista' ma jaħdimx b'din ir-rilaxx, u kompilaturi eqdem ma jkunux jistgħu jużaw l-aħħar DFPs.
Verżjoni 2.19 (Rilaxx tas-Sigurtà Funzjonali)
Xejn.
Verżjoni 2.10
Xejn
Verżjoni 2.05
Oġġetti const fil-memorja tal-programm Innota li l-oġġetti kwalifikati b'mod awtomatiku se jitqiegħdu u jiġu aċċessati fil-memorja tal-programm (kif deskritt hawn). Dan jaffettwa d-daqs u l-veloċità tal-eżekuzzjoni tal-proġett tiegħek, iżda għandu jnaqqas l-użu tar-RAM. Din il-karatteristika tista' tiġi diżattivata, jekk meħtieġ, bl-użu tal-għażla -mno-const-data-in-progmem.
Verżjoni 2.00
- Fjusijiet tal-konfigurazzjoni Il-fjusis tal-konfigurazzjoni tal-apparat issa jistgħu jiġu pprogrammati bl-użu ta' pragma ta' konfigurazzjoni segwit minn pari ta' valur ta' ssettjar biex jispeċifikaw l-istat tal-fjusijiet, eż. #pragma config WDTON = SET #pragma config BODLEVEL = BODLEVEL_4V3
- Oġġetti u funzjonijiet assoluti L-oġġetti u l-funzjonijiet issa jistgħu jitqiegħdu f'indirizz speċifiku fil-memorja bl-użu tal-ispeċifikazzjoni CCI __at(indirizz), pereżempjuample:
- #inkludi
int foobar __at(0x800100);
char __at(0x250) getID(int offset) { … }
L-argument għal dan l-ispeċifikazzjoni għandu jkun kostanti li jirrappreżenta l-indirizz li fih se jitqiegħed l-ewwel byte jew istruzzjoni. L-indirizzi RAM huma indikati bl-użu ta 'offset ta' 0x800000. Ippermetti lis-CCI tuża din il-karatteristika.
- #inkludi
- Sintassi ġdida tal-funzjoni ta' interruzzjoni Il-kompilatur issa jaċċetta l-ispeċifikazzjoni CCI __interrupt(num) biex jindika li l-funzjonijiet C huma interrupt handlers. L-ispeċifikatur jieħu numru ta' interruzzjoni, pereżempjuample: #inkludi void __interrupt(SPI_STC_vect_num) spi_Isr(void) { … }
Kwistjonijiet Fissi
Dawn li ġejjin huma korrezzjonijiet li saru lill-kompilatur. Dawn jistgħu jiffissaw bugs fil-kodiċi ġġenerat jew ibiddlu l-operat tal-kompilatur għal dak li kien maħsub jew speċifikat mill-gwida tal-utent. In-numru tal-verżjoni fis-subintestaturi jindika l-ewwel verżjoni tal-kompilatur li jkun fiha soluzzjonijiet għall-kwistjonijiet li ġejjin. It-tikketta(i) fil-parentesi fit-titolu huma l-identifikazzjoni ta' dik il-ħarġa fid-database tat-traċċar. Dawn jistgħu jkunu utli jekk ikollok bżonn tikkuntattja l-appoġġ.
Innota li xi kwistjonijiet speċifiċi għall-apparat huma kkoreġuti fil-Pakkett tal-Familja tal-Apparat (DFP) assoċjat mal-apparat. Ara l-MPLAB Pack Manager għal informazzjoni dwar bidliet li saru fid-DFPs u biex tniżżel l-aħħar pakketti.
Verżjoni 2.45
- Falliment fil-liċenzja tar-roaming (XCLM-235) Il-liċenzji tar-roaming naqsu milli jaħdmu b'mod korrett fuq pjattaformi Linux li jużaw verżjonijiet tal-glibc aktar tard minn 2.28.
- Żball intern ma 'matriċi ta' strutturi (XC8-3069) Meta membri ta 'array multi-dimensjonali ta' struttura ġew ipproċessati, il-kwalifika tal-ispazju tal-indirizz ma kienx propagat b'mod korrett għall-array. Dan wassal għal nuqqas ta' qbil fl-informazzjoni tal-kwalifika tal-ispazju tal-indirizz u żball intern tal-kompilatur. Din is-sitwazzjoni ġiet ikkoreġuta.
- Kitbiet ħżiena fi flussi mhux inizjalizzati (ML-353, XC8-3100) Jekk il-flussi tal-output/iżbalji standard ma kinux issettjati b'mod espliċitu bl-użu ta' FDEV_SETUP_STREAM jew _init_stdout/_init_stderr , it-tentattiv li jikteb lilhom irriżulta f'imġieba mhux definita. Dan affettwa wkoll il-kitbiet minn funzjonijiet stdlib, bħal perror(). Kwalunkwe kitba f'dawn il-flussi qabel ma jkunu ġew inizjalizzati issa se tiġi injorata.
- Modifikatur mhux appoġġjat (XC8-2505) Il-librerija avr-libc ma appoġġjatx il-modifikatur * fl-ispeċifikazzjonijiet tal-konverżjoni tal-istil printf, pereżempjuample “%.*f”. Dan issa huwa appoġġjat bl-introduzzjoni tal-Microchip Unfied Standard Library.
- Twissijiet multipli mhux inizjalizzati (XC8-2409) Il-kompilatur kien qed joħroġ messaġġi ta' twissija identiċi multipli meta ltaqa' ma' firxa konst li ma kinitx inizjalizzata. Il-messaġġ kellu jkun inħareġ darba biss, li issa huwa l-każ meta sseħħ din is-sitwazzjoni.
Verżjoni 2.41
- Kwistjonijiet ta' dongle fuq Ventura (XC8-3088) Dongles użati biex jagħtu liċenzja lill-kompilatur setgħu ma nqrawx sew fuq macOS Ventura hosts, u dan jirriżulta f'fallimenti ta' liċenzjar. Bidliet fil-maniġer tal-liċenzja XCLM jikkoreġu din il-kwistjoni.
- Indikazzjoni żbaljata tal-allokazzjoni tal-memorja (XC8-2925) Jippruvaw jallokaw SIZE_MAX bytes (jew valur qrib dan) tal-memorja bl-użu tal-funzjonijiet standard tal-ġestjoni tal-memorja tal-librerija (malloc() et al) mitluba meta tuża l-implimentazzjoni sempliċi tal-allokazzjoni tal-memorja dinamika. Pointer NULL issa se jiġi rritornat u errno issettjat għal ENOMEM f'sitwazzjonijiet bħal dawn.
- Funzjonijiet fma mhux preċiżi mneħħija (XC8-2913) Il-librerija standard C99 fma()-funzjonijiet tal-familja ( ) ma kkalkulax multiplik-add bi preċiżjoni infinita għal arrotondament wieħed, iżda minflok akkumula żbalji ta' arrotondament ma' kull operazzjoni. Dawn il-funzjonijiet tneħħew mil-librerija fornita.
- Immaniġġjar ħażin tal-konverżjoni ta' string (XC8-2921, XC8-2652) Meta 'sekwenza tas-suġġett' għal konverżjoni bi strtod() kien fiha dak li deher li kien numru b'punt varjabbli f'format esponenzjali u kien hemm karattru mhux mistenni wara l-e/E karattru, imbagħad fejn endptr kien ipprovdut, ġie assenjat indirizz li kellu jindika l-karattru wara l-, filwaqt li kellu jkun qed jindika l-karattru e//E innifsu, peress li dak ma kienx ikkonvertit. Per example, strtod ("100exx", &ep) għandu jirritorna 100.00 u ssettja ep biex jindika l-parti "exx" tas-sekwenza, filwaqt li l-funzjoni kienet qed tirritorna l-valur korrett iżda tistabbilixxi parti "xx" tas-sekwenza.
Verżjoni 2.40
- Rilassat wisq (XC8-2876) Meta uża l-għażla -mrelax, il-kompilatur ma kienx qed jalloka xi taqsimiet flimkien, u dan jirriżulta f'daqsijiet tal-kodiċi inqas ottimali. Dan seta' seħħ b'kodiċi li uża l-libreriji l-ġodda tal-MUSL jew b'simboli dgħajfa.
- Il-karatteristika tal-immappjar mhux diżattivata kif iddikjarat fit-twissija (XC8-2875) Il-karatteristika const-data-in-config-mapped-progmem hija dipendenti fuq il-karatteristika const-data-in-progmem li tkun attivata. Jekk il-karatteristika const-data-in-config-mapped-progmem kienet attivata b'mod espliċitu bl-użu tal-għażla u l-karatteristika const-data-in-progmem kienet diżattivata, il-pass tal-link falla, minkejja messaġġ ta' twissija li jiddikjara li l-const-data-in-progmem Il-karatteristika -config-mapped-progmem kienet ġiet awtomatikament diżattivata, li ma kinitx kompletament korretta. Il-karatteristika const-data-in-config-mapped-progmem issa hija kompletament diżattivata f'din is-sitwazzjoni.
- Bidliet DFP biex jaċċessaw b'mod korrett NVMCTRL (XC8-2848) Il-kodiċi tal-istartjar tar-runtime użat mill-apparati AVR64EA ma qiesx li r-reġistru NVMCTRL kien taħt Protezzjoni tal-Bidla fil-Konfigurazzjoni (CCP) u ma kienx kapaċi jissettja l-IO SFR għall-paġna użata mill-karatteristika tal-kompilatur const-data-in-config-mapped-progmem. Bidliet li saru fil-verżjoni AVR-Ex_DFP 2.2.55 se jippermettu li l-kodiċi tal-istartjar tar-runtime jikteb b'mod korrett f'dan ir-reġistru.
- Tibdil tad-DFP biex jiġi evitat l-immappjar tal-flash (XC8-2847) Ġiet implimentata soluzzjoni għal problema bil-karatteristika tal-apparat tal-immappjar tal-flash irrappurtat fl-AVR128DA28/32/48/64 Silicon Errata (DS80000882). Il-karatteristika tal-kompilatur const-data-in-config-mapped-progmem mhux se tiġi applikata awtomatikament għall-apparati affettwati, u din il-bidla tidher fil-verżjoni AVR-Dx_DFP 2.2.160.
- Żball tal-bini b'sinhf jew coshf (XC8-2834) Tentattivi biex jintużaw il-funzjonijiet tal-librerija sinhf() jew coshf() irriżultaw fi żball fil-link, li jiddeskrivi referenza mhux definita. Il-funzjoni nieqsa msemmija issa ġiet inkluża fid-distribuzzjoni tal-kompilatur.
- Ibni żbalji b'nopa (XC8-2833) L-użu tal-attribut nopa b'funzjoni li kellha l-isem tal-assemblatur tagħha speċifikat bl-użu ta' __asm__() wassal messaġġi ta' żball mill-assemblatur. Din il-kombinazzjoni mhix possibbli.
- Falliment tal-funzjoni varjadika b'argumenti tal-pointer (XC8-2755, XC8-2731) Funzjonijiet b'numru varjabbli ta' argumenti jistennew pointers ta' 24-bit (tip __memx) li jgħaddu fil-lista tal-argumenti varjabbli meta l-karatteristika const-data-in-progmem tkun ppermettiet. Argumenti li kienu indikaturi għall-memorja tad-dejta kienu qed jiġu mgħoddija bħala oġġetti 16-bit, u kkawżaw falliment tal-kodiċi meta fl-aħħar inqraw. Meta l-karatteristika const-data-in-progmem tkun attivata, l-argumenti kollha ta' 16-bit pointers issa huma kkonvertiti għal 24-bit pointers.
- Funzjonijiet tal-librerija strtoxxx falluti (XC8-2620) Meta l-karatteristika const-data-in-progmem kienet attivata, il-parametru endptr fil-funzjonijiet tal-librerija strtoxxx ma ġiex aġġornat kif suppost għall-argumenti tas-sekwenza tas-sors mhux fil-memorja tal-programm.
- Twissijiet għal casts invalidi (XC8-2612) Il-kompilatur issa joħroġ żball jekk il-karatteristika const-in-progmem tkun attivata u l-indirizz ta' string litterali jiġi mitfugħ b'mod espliċitu fl-ispazju ta' l-indirizz tad-dejta (waqqa' l-konst qualfiier), pereżempjuample, (uint8_t *) "Hello World!" . Toħroġ twissija jekk l-indirizz jista' jkun invalidu meta pointer tad-data const jiġi mitfugħ b'mod espliċitu fl-ispazju tal-indirizz tad-data.
- Tqegħid ta' oġġetti konst mhux inizjalizzati (XC8-2408) Oġġetti mhux inizjalizzati u konst volatili
ma kinux qed jitqiegħdu fil-memorja tal-programm fuq apparati li jimmappjaw il-memorja tal-programm kollha jew parti minnha fl-ispazju tal-indirizz tad-dejta. Għal dawn l-apparati, oġġetti bħal dawn issa jitqiegħdu fil-memorja tal-programm, u jagħmlu t-tħaddim tagħhom konsistenti ma 'apparati oħra.
Verżjoni 2.39 (Rilaxx tas-Sigurtà Funzjonali)
Xejn.
Verżjoni 2.36
Żball meta jittardja (XC8-2774) Tibdil minuri fl-ottimizzazzjonijiet default tal-modalità Ħieles pprevenut it-tiwi kostanti tal-espressjonijiet tal-operandi għall-funzjonijiet integrati tad-dewmien, li wassal biex dawn jiġu ttrattati bħala mhux kostanti u jikkawżaw l-iżball: __builtin_avr_delay_cycles jistenna numru sħiħ tal-ħin tal-kumpilazzjoni kostanti.
Verżjoni 2.35
- Allokazzjoni kontigwa bl-użu ta' __at (XC8-2653) L-allokazzjoni kontigwa ta' postijiet multipli ta' oġġetti f'sezzjoni bl-istess isem u bl-użu ta' __at() ma ħadmitx b'mod korrett. Per example:
const char arr1 [] __attribute__((sezzjoni (".mysec"))) __at (0x500) = {0xAB, 0xCD}; const char arr2[] __attribute__((sezzjoni (".mysec"))) = {0xEF, 0xFE}; kellu poġġa arr2 immedjatament wara arr1 - L-ispeċifikazzjoni tal-indirizzi tal-bidu tat-taqsima (XC8-2650) L-għażla -Wl,–section-start kienet tonqos siekta milli tpoġġi sezzjonijiet fl-indirizz tal-bidu nominat. Din il-kwistjoni ġiet irranġata għal kwalunkwe sezzjoni msemmi apposta; madankollu, mhux se taħdem għal xi sezzjonijiet standard, bħal .text jew .bss, li għandhom jitqiegħdu bl-użu ta 'għażla -Wl,-T. Il-linker jiġġarraf meta jirrilassaw (XC8-2647) Meta l-ottimizzazzjoni -mrelax kienet attivata u kien hemm kodiċi jew sezzjonijiet tad-dejta li ma daħlux fil-memorja disponibbli, il-linker waqa'. Issa, f'ċirkustanza bħal din, jinħarġu messaġġi ta 'żball minflok.
- Ebda no-fallback-back (XC8-2646) L-għażla –nofallback ma kinitx implimentata b'mod korrett, u lanqas dokumentata. Dan issa jista' jintgħażel biex jiġi żgurat li l-kompilatur ma jaqax lura għal setting ta' ottimizzazzjoni aktar baxx jekk il-kompilatur ma jkunx liċenzjat, u minflok joħroġ żball.
- Ottimizzazzjonijiet tal-veloċità mhux xierqa (XC8-2637) L-ottimizzazzjonijiet tal-astrazzjoni proċedurali kienu qed jiġu attivati meta jintgħażlu ottimizzazzjonijiet tal-livell 3 (-O3). Dawn l-ottimizzazzjonijiet inaqqsu d-daqs tal-kodiċi għad-detriment tal-veloċità tal-kodiċi, għalhekk ma kellhomx jitwettqu.
- Aċċess ħażin għall-EEPROM (XC8-2629) Ir-rutina eeprom_read_block ma ħadmitx b'mod korrett fuq apparati Xmega meta l-għażla – mconst-data-in-progmem kienet attivata (li hija l-istat default), li rriżultat f'memorja EEPROM ma tinqarax b'mod korrett.
- Allokazzjoni ta' memorja invalida (XC8-2593, XC8-2651) Meta l-għażla tal-linker -Ttext jew -Tdata (eż.ample mgħoddija permezz ta' għażla ta' sewwieq -Wl) hija speċifikata, l-oriġini tar-reġjun tat-test/data korrispondenti ġiet aġġornata; madankollu, l-indirizz finali ma ġiex aġġustat kif xieraq, li seta 'wassal biex ir-reġjun jaqbeż il-firxa tal-memorja tal-apparat fil-mira.
- Ħbit b'funzjoni attribwita żżejjed (XC8-2580) Il-kompilatur iġġarraf jekk funzjoni kienet iddikjarata bl-użu ta' aktar minn wieħed mill-attributi ta' interruzzjoni, sinjal jew nmi, eż, __attribute__((__signal__, __interrupt__)).
- Kodiċi ta' interruzzjoni ATtiny mhux validu (XC8-2465) Meta l-bini għall-apparat ATtiny u l-ottimizzazzjonijiet kienu diżattivati (-O0), il-funzjonijiet ta' interruzzjoni setgħu wasslu operand barra mill-firxa
- Għażliet li ma jgħaddux (XC8-2452) Meta tuża l-għażla -Wl b'għażliet multipli ta' linker separati b'virgola, mhux l-għażliet kollha tal-linker kienu qed jiġu mgħoddija lill-linker.
- Żball indirett fil-qari tal-memorja tal-programm (XC8-2450) F'xi każijiet, il-kompilatur ipproduċa żball intern (insn li ma jintgħarafx) meta qara valur ta' żewġ byte minn pointer għal memorja tal-programm
Verżjoni 2.32
It-tieni aċċess tal-librerija jfalli (XC8-2381) L-invokazzjoni tal-verżjoni tal-Windows tal-arkivjar tal-librerija xc8-ar.exe għat-tieni darba biex taċċessa arkivju tal-librerija eżistenti setgħet falliet b'messaġġ ta' żball li ma jistax jibdel l-isem.
Verżjoni 2.31
Ħsara mhux spjegata tal-kompilatur (XC8-2367) Meta taħdem fuq pjattaformi Windows li kellhom id-direttorju temporanju tas-sistema ssettjat għal mogħdija li kienet tinkludi tikka '.' karattru, il-kompilatur jista’ jkun naqas milli jesegwixxi.
Verżjoni 2.30
- Tikketti globali mhux f'posthom wara li jiddeskrivu fil-qosor (XC8-2299) Kodiċi ta' assemblaġġ miktub bl-idejn li jqiegħed tikketti globali f'sekwenzi ta' assemblaġġ li huma fatturati mill-astrazzjoni proċedurali setgħu ma ġewx imqiegħda mill-ġdid b'mod korrett.
- Crash rilassanti (XC8-2287) L-użu tal-għażla -mrelax seta' kkawża li l-linker jikkraxxja meta l-ottimizzazzjonijiet tar-rilassament tal-qabża tad-denb ippruvaw ineħħu l-istruzzjoni ret li ma kinux fit-tmiem ta 'sezzjoni.
- Tiġrifa meta tottimizza t-tikketti bħala valuri (XC8-2282) Kodiċi bl-użu tal-estensjoni tal-lingwa GNU C "Tikketti bħala valuri" setgħet ikkawżat l-ottimizzazzjonijiet tal-astrazzjoni proċedurali biex jikkraxxjaw, bi żball ta 'fixup ta' firxa.
- Mhux hekk const (XC8-2271) Il-prototipi għal strstr() u funzjonijiet oħra minn m'għadhiex tispeċifika l-kwalifika mhux standard fuq string pointers ritornati meta l-karatteristika const -mconst-data-in-progmem tkun diżattivata. Innota li b'apparat avrxmega3 u avrtiny, din il-karatteristika hija attivata b'mod permanenti.
- Inizjalizzaturi mitlufa (XC8-2269) Meta aktar minn varjabbli waħda f'unità ta' traduzzjoni tqiegħdet f'sezzjoni (bl-użu ta' __section jew __attribute__((section)) ), u l-ewwel varjabbli bħal dan kien inizjalizzat żero jew ma kellux initializers, initializers għal varjabbli oħra fl-istess unità tat-traduzzjoni li tqiegħdu fl-istess sezzjoni intilfu.
Verżjoni 2.29 (Rilaxx tas-Sigurtà Funzjonali)
Xejn.
Verżjoni 2.20
- Żball bi kmandi twal (XC8-1983) Meta tuża mira AVR, il-kompilatur jista’ jkun waqaf bi żball ta’ fajl li ma nstabx, jekk il-linja tal-kmand kienet kbira ħafna u jkun fiha karattri speċjali bħal kwotazzjonijiet, backslashes, eċċ.
- Sezzjoni rodata mhux assenjata (XC8-1920) Il-linker AVR naqas milli jassenja memorja għal sezzjonijiet rodata personalizzati meta jibni għal arkitetturi avrxmega3 u avrtiny, potenzjalment jipproduċi żbalji ta' sovrapożizzjoni tal-memorja
Verżjoni 2.19 (Rilaxx tas-Sigurtà Funzjonali)
Xejn.
Verżjoni 2.10
- Ħsarat tar-rilokazzjoni (XC8-1891) L-allokatur aħjar kien iħalli 'toqob' tal-memorja bejn is-sezzjonijiet wara r-rilassament tal-linker. Minbarra l-frammentazzjoni tal-memorja, dan żied il-possibbiltà li jkun hemm fallimenti ta 'rilokazzjoni tal-linker relatati ma' qbiż relattiv għall-pc jew sejħiet li jsiru barra mill-firxa.
- Istruzzjonijiet mhux trasformati bir-rilassament (XC8-1889) Ir-rilassament tal-linker ma seħħx għal struzzjonijiet ta' qabża jew ta' sejħa li l-miri tagħhom jistgħu jintlaħqu jekk ikunu rilassati.
- Nieqsa funzjonalità (XC8E-388) Diversi definizzjonijiet minn , bħal clock_div_t u clock_prescale_set() , ma ġewx definiti għal apparati, inklużi l-ATmega324PB, ATmega328PB, ATtiny441, u ATtiny841.
- Macros neqsin Il-macros tal-preproċessur _XC8_MODE_, __XC8_VERSION, __XC , u __XC8 awtomatikament definiti mill-kompilatur. Dawn issa huma disponibbli.
Verżjoni 2.05
- Żball intern tal-kompilatur (XC8-1822) Meta jinbena taħt il-Windows, seta' jkun ġie prodott żball intern tal-kompilatur meta jiġi ottimizzat il-kodiċi.
- RAM overflow mhux skopert (XC8-1800, XC8-1796) Programmi li qabżu dik ir-RAM disponibbli ma ġewx skoperti mill-kompilatur f'xi sitwazzjonijiet, li rriżultaw f'falliment tal-kodiċi tar-runtime.
- Memorja flash barra (XC8-1792) Għal apparati avrxmega3 u avrtiny, partijiet mill-memorja flash setgħu tħallew mhux ipprogrammati mill-MPLAB X IDE.
- Nuqqas li tesegwixxi main (XC8-1788) F'xi sitwazzjonijiet fejn il-programm ma kellu l-ebda varjabbli globali definiti, il-kodiċi tal-istartjar tar-runtime ma ħareġx u l-funzjoni main() qatt ma ntlaħqet.
- Informazzjoni skorretta dwar il-memorja (XC8-1787) Għal apparati avrxmega3 u avrtiny, il-programm tad-daqs avr kien qed jirrapporta li data li tinqara biss kienet qed tikkonsma RAM minflok memorja tal-programm.
- Qari ħażin tal-memorja tal-programm (XC8-1783) Proġetti kkompilati għal apparati b'memorja tal-programm immappjati fl-ispazju tal-indirizz tad-dejta u li jiddefinixxu oġġetti bl-użu tal-makro/attribut PROGMEM setgħu qraw dawn l-oġġetti mill-indirizz ħażin.
- Żball intern bl-attributi (XC8-1773) Żball intern seħħ jekk iddefinijt oġġetti pointer bit-tokens __at() jew attribute() bejn l-isem tal-pointer u t-tip dereferenced, pereżempjuample, char * __at(0x800150) cp; Issa tinħareġ twissija jekk tiltaqa' magħhom kodiċi bħal dan.
- Nuqqas li tesegwixxi main (XC8-1780, XC8-1767, XC8-1754) L-użu ta' varjabbli tal-EEPROM jew id-definizzjoni tal-fjusijiet bl-użu tal-pragma tal-konfigurazzjoni setgħu kkawżaw inizjalizzazzjoni tad-dejta mhux korretta u/jew eżekuzzjoni tal-programm imsakkar fil-kodiċi tal-istartjar tar-runtime, qabel ma laħaq main( ).
- Żball tal-fjus b'apparat ċkejken (XC8-1778, XC8-1742) L-apparat attiny4/5/9/10/20/40 kellu tul tal-fjus mhux korrett speċifikat fil-fajls header tagħhom li jwasslu għal żbalji tal-linker meta ppruvaw jibnu kodiċi li ddefinixxa l-fjusijiet .
- Ħsara tas-segmentazzjoni (XC8-1777) Ħsara tas-segmentazzjoni intermittenti ġiet ikkoreġuta.
- Ħbit tal-assemblatur (XC8-1761) L-assemblatur avr-as seta' ġġarraf meta l-kompilatur tħaddem taħt Ubuntu 18.
- Oġġetti mhux ikklerjati (XC8-1752) Oġġetti ta' tul ta' ħażna statika mhux inizjalizzati setgħu ma ġewx ikklerjati mill-kodiċi tal-istartjar tar-runtime.
- Speċifikazzjoni ta' apparat konfliġġenti injorata (XC8-1749) Il-kompilatur ma kienx qed jiġġenera żball meta ntużaw għażliet multipli ta' speċifikazzjoni ta' apparat u indika apparati differenti.
- Korruzzjoni tal-memorja mill-heap (XC8-1748) Is-simbolu __heap_start kien qed jiġi ssettjat b'mod żbaljat, li jirriżulta fil-possibbiltà li varjabbli ordinarji jiġu korrotti mill-heap.
- Żball ta' rilokazzjoni tal-linker (XC8-1739) Żball ta' rilokazzjoni tal-linker seta' ġie emess meta l-kodiċi kien fih rjmp jew rcall b'mira eżattament 4k bytes bogħod.
Verżjoni 2.00
Xejn.
Kwistjonijiet Magħrufa
Dawn li ġejjin huma limitazzjonijiet fl-operat tal-kompilatur. Dawn jistgħu jkunu restrizzjonijiet ġenerali tal-kodifikazzjoni, jew devjazzjonijiet minn informazzjoni li tinsab fil-manwal tal-utent. It-tikketta(i) fil-parentesi fit-titolu huma l-identifikazzjoni ta' dik il-ħarġa fid-database tat-traċċar. Dan jista' jkun ta' benefiċċju jekk ikollok bżonn tikkuntattja l-appoġġ. Dawk l-oġġetti li m'għandhomx tikketti huma limitazzjonijiet li jiddeskrivu modi operandi u li x'aktarx jibqgħu fis-seħħ b'mod permanenti.
Integrazzjoni MPLAB X IDE
- Integrazzjoni MPLAB IDE Jekk il-Kompilatur għandu jintuża minn MPLAB IDE, allura trid tinstalla MPLAB IDE qabel ma tinstalla l-Kompilatur.
- Informazzjoni tad-debug tal-array (XC8-3157) L-informazzjoni tad-debug prodotta mill-kompilatur ma twassalx b'mod preċiż it-tip tal-oġġett għall-arrays fl-ispazju tal-indirizz __memx. Dan jipprevjeni l-osservazzjoni tal-oġġett f'IDE.
Ġenerazzjoni tal-Kodiċi
- Segfault b'għażla ta' ankri tas-sezzjoni (XC8-3045) Programm li ddefinixxa funzjonijiet b'listi ta' argumenti varjabbli u li juża l-għażla -fsection-anchors seta' wassal għal żball intern tal-kompilatur: Ħtija ta' segmentazzjoni
- Iddebug info out of sync (XC8-2948) Meta l-ottimizzazzjonijiet tar-rilassament tal-linker iċċekken l-istruzzjonijiet (eż.ample call to rcall istruzzjonijiet), il-linja tas-sors biex tindirizza l-mappings jistgħu ma jibqgħux sinkronizzati meta jkun hemm aktar minn operazzjoni waħda shrink li sseħħ f'sezzjoni. Fl-eżample, hemm żewġ sejħiet għal foo li jispiċċaw rilassat għal sejħiet relattivi.
- Ħsara fl-allokazzjoni tal-memorja PA (XC8-2881) Meta tuża l-ottimizzaturi tal-astrazzjoni proċedurali, il-linker jista' jirrapporta żbalji fl-allokazzjoni tal-memorja meta d-daqs tal-kodiċi jkun qrib l-ammont ta' memorja tal-programm disponibbli fuq l-apparat, minkejja li l-programm għandu jkun jista' jaqbel mal-memorja disponibbli. spazju.
- Mhux daqshekk intelliġenti Smart-IO (XC8-2872) Il-karatteristika smart-io tal-kompilatur se tiġġenera kodiċi validu iżda mhux ottimali għall-funzjoni snprintf jekk il-karatteristika const-data-in-progmem tkun ġiet diżattivata jew jekk l-apparat ikollu kollha tiegħu. flash immappjat fil-memorja tad-dejta.
- Anke inqas intelliġenti Smart-IO (XC8-2869) Il-karatteristika smart-io tal-kompilatur se tiġġenera kodiċi validu iżda sub-ottimali meta l-għażliet -flto u -fno-builtin jintużaw it-tnejn.
- Tqegħid tad-dejta subottimali għall-qari biss (XC8-2849) Il-linker bħalissa mhuwiex konxju tas-sezzjonijiet tal-memorja APPCODE u APPDATA, u lanqas id-diviżjonijiet [Le-]Aqra-Waqt li-Kitba fil-mappa tal-memorja. Bħala riżultat, hemm ċans żgħir li l-linker jista' jalloka data li tinqara biss f'żona mhux xierqa tal-memorja. Iċ-ċans ta' data mhux f'postha tiżdied jekk il-karatteristika const-data-in-progmem tkun attivata, speċjalment jekk il-karatteristika const-data-in-config-mapped-progmem tkun attivata wkoll. Dawn il-karatteristiċi jistgħu jiġu diżattivati jekk meħtieġ.
- Ordni tal-ipproċessar tal-fajl tal-oġġetti (XC8-2863) L-ordni li fiha l-fajls tal-oġġetti se jiġu pproċessati mill-linker jista' jkun differenti abbażi tal-użu tal-ottimizzazzjonijiet tal-estrazzjoni proċedurali (għażla -mpa). Dan jaffettwa biss il-kodiċi li jiddefinixxi funzjonijiet dgħajfa fuq moduli multipli.
- Żball tal-linker b'assolut (XC8-2777) Meta oġġett ikun sar assolut f'indirizz fil-bidu tar-RAM u oġġetti mhux inizjalizzati jkunu ġew definiti wkoll, jista' jiġi attivat żball tal-linker.
- Wake-up IDs qosra (XC8-2775) Għal apparati ATA5700/2, ir-reġistri PHID0/1 huma definiti biss bħala wisa' ta' 16-il bit, aktar milli wiesgħa ta' 32 bit.
- Ħbit tal-linker meta jsejjaħ is-simbolu (XC8-2758) Il-linker jista' jikkraxxja jekk l-għażla tas-sewwieq -mrelax tintuża meta l-kodiċi tas-sors isejjaħ simbolu li jkun ġie definit bl-użu tal-għażla tal-linker – Wl,–defsym.
- Inizjalizzazzjoni mhux korretta (XC8-2679) Hemm diskrepanza bejn fejn il-valuri inizjali għal xi oġġetti globali/statiċi ta' daqs ta' byte jitqiegħdu fil-memorja tad-dejta u fejn il-varjabbli se jiġu aċċessati waqt ir-runtime.
- Sejħiet ta' funzjoni indiretti ħżiena (XC8-2628) F'xi każijiet, sejħiet ta' funzjoni magħmula permezz ta' pointer ta' funzjoni maħżuna bħala parti minn struttura jistgħu jfallu.
- strtof jirritorna żero għal floats eżadeċimali (XC8-2626) Il-funzjonijiet tal-librerija strtof() et al u scanf() et al, dejjem se jikkonvertu numru b'punt varjabbli eżadeċimali li ma jispeċifikax esponent għal żero. Per example: strtof ("0x1", &endptr); se jirritorna l-valur 0, mhux 1.
- Messaġġi mhux preċiżi tal-konsulent tal-munzell (XC8-2542, XC8-2541) F'xi każijiet, it-twissija tal-konsulent tal-munzell fir-rigward tar-rikors jew tal-munzell indeterminat użat (possibbilment permezz tal-użu ta' alloca()) ma tiġix emessa.
- Nuqqas b'kodiċi ta' interruzzjoni duplikat (XC8-2421) Fejn aktar minn funzjoni ta' interruzzjoni waħda għandha l-istess korp, il-kompilatur jista' jkollu l-output għal funzjoni ta' interruzzjoni waħda jsejjaħ lill-oħra. Dan jirriżulta f'li r-reġistri kollha kkonċentrati f'sejħiet jiġu ssejvjati bla bżonn, u l-interruzzjonijiet jiġu attivati anki qabel ma l-epilogue tal-handler tal-interruzzjoni attwali jkun imexxi, li jista' jwassal għal falliment tal-kodiċi.
- Output ħażin b'passaġġ DFP invalidu (XC8-2376) Jekk il-kompilatur jiġi invokat b'passaġġ DFP invalidu u jeżisti fajl 'spec' għall-apparat magħżul, il-kompilatur mhux qed jirrapporta l-pakkett tal-familja tal-apparat nieqes u minflok jagħżel l-'spec' fajl, li mbagħad jista' jwassal għal output invalidu. Il-fajls 'spec' jistgħu ma jkunux aġġornati mad-DFPs distribwiti u kienu maħsuba għall-użu mal-ittestjar tal-kompilatur intern biss.
- Koinċidenza tal-memorja mhux skoperta (XC8-1966) Il-kompilatur mhux qed jiskopri l-koinċidenza tal-memorja ta' oġġetti magħmula assoluta f'indirizz (permezz ta' __at()) u oġġetti oħra bl-użu tal-ispeċifikazzjoni __section() u li huma konnessi mal-istess indirizz.
- Nuqqas fil-funzjonijiet tal-librerija u __memx (XC8-1763) Il-funzjonijiet float imsejħa libgcc b'argument fl-ispazju tal-indirizz __memx jistgħu jfallu. Innota li r-rutini tal-librerija jissejħu minn xi operaturi C, għalhekk, per eżempjuample, il-kodiċi li ġej huwa affettwat: return regFloatVar > memxFloatVar;
- Implimentazzjoni limitata libgcc (AVRTC-731) Għall-prodotti ATTiny4/5/9/10/20/40, l-implimentazzjoni standard tal-librerija C/Matematika f'libgcc hija limitata ħafna jew mhix preżenti.
- Limitazzjonijiet tal-memorja tal-programm (AVRTC-732) Immaġini tal-memorja tal-programm lil hinn minn 128 kb huma appoġġjati mill-toolchain; madankollu, hemm każijiet magħrufa ta' aborti tal-linker mingħajr rilassament u mingħajr messaġġ ta' żball utli aktar milli jiġġeneraw l-istubs tal-funzjoni meħtieġa meta tintuża l-għażla -mrelax.
- Limitazzjonijiet tal-ispazju tal-ismijiet (AVRTC-733) L-ispazji tal-indirizzi msemmija huma appoġġjati mill-għodda tal-katina, soġġetti għal-limitazzjonijiet imsemmija fit-taqsima tal-gwida tal-utent Special Type Qualifiers.
- Żoni tal-ħin Il Il-funzjonijiet tal-librerija jassumu GMT u ma jappoġġawx iż-żoni tal-ħin lokali, għalhekk localtime() se jirritorna l-istess ħin bħal gmtime() , pereżempjuample.
Dokumenti / Riżorsi
![]() |
MICROCHIP XC8 C Compiler Verżjoni 2.45 Noti tar-Rilaxx għal AVR MCU [pdf] Istruzzjonijiet AVR MCU, XC8 C, XC8 C Compiler Version 2.45 Noti ta' Rilaxx għal AVR MCU, Noti ta' Rilaxx ta' Verżjoni ta' Kompilatur 2.45 għal AVR MCU, Verżjoni 2.45 Noti ta' Rilaxx għal AVR MCU, Noti ta' Rilaxx għal AVR MCU, Noti għal AVR MCU, AVR MCU |