MICROCHIP MPLAB XC8 C Kompilatur Software 

MICROCHIP MPLAB XC8 C Kompilatur Software

DAN ID-DOKUMENT FIH INFORMAZZJONI IMPORTANTI RELATATA MAL-KOMPILATUR MPLAB XC8 C META JIMMIRA TAGĦMIR MIKROCHIP AVR.
JEKK JOGĦĠBOK AQRAH QABEL MA TĦEŻI DAN SOFTWARE. ARA N-NOTI TA’ RILAXX TAL-KOMPILER MPLAB XC8 C GĦAD-DOKUMENT PIC JEKK QED TUŻA L-KOMPILATOR GĦAL TAGĦMIR PIC 8-BIT.

Kontenut ħabi

Fuqview

Introduzzjoni

Dan ir-rilaxx tal-kompilatur Microchip MPLAB® XC8 C fih diversi karatteristiċi ġodda, bug fixes, u appoġġ ta 'apparat ġdid.

Data tal-Bini

Id-data tal-bini uffiċjali ta 'din il-verżjoni tal-kompilatur hija t-3 ta' Lulju 2022.

Verżjoni preċedenti

Il-verżjoni preċedenti tal-kompilatur MPLAB XC8 C kienet 2.39, kompilatur tas-sigurtà funzjonali, mibni fis-27 ta' Jannar 2022. Il-kompilatur standard preċedenti kien il-verżjoni 2.36, mibnija fis-27 ta' Jannar 2022.

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-GNU General Public License (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; u macOS 10.15.5. Binaries għall-Windows ġew iffirmati bil-kodiċi. Il-binarji għal mac OS ġew iffirmati b'kodiċi u notarili.

Jekk qed tħaddem server tal-liċenzja tan-netwerk, kompjuters biss b'sistemi operattivi appoġġjati mill-kompilaturi jistgħu jintużaw biex jospitaw is-server tal-liċenzja. Mill-verżjoni xclm 2.0, is-server tal-liċenzja tan-netwerk jista 'jiġi installat fuq pjattaforma Microsoft Windows Server, iżda s-server tal-liċenzja m'għandux għalfejn jaħdem fuq verżjoni server tas-sistema operattiva.

Apparati Appoġġjati

Dan il-kompilatur jappoġġja l-apparati AVR MCU kollha ta '8-bit magħrufa fil-ħin tar-rilaxx. Ara (fid-direttorju tad-dokument tal-kompilatur) għal lista tal-apparati kollha appoġġjati. Dawn files lista wkoll l-issettjar tal-bit tal-konfigurazzjoni għal kull mezz.

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-MPLAB XC Functional Safety Compiler 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 .exe (Windows), .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 tal-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- file, 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 se jiftaħ a file djalogu tal-esploratur 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.

Dokumentazzjoni tal-Kompilatur
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

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:

  • Avviż tad-drittijiet tal-awtur tal-MUSL
  • Installazzjoni u Liċenzjar ta' Kompilaturi MPLAB XC C (reviżjoni M)
  • Gwida għall-Utent MPLAB XC8 għall-Inġiniera Inkorporata – MCUs AVR (reviżjoni A)
  • Gwida għall-Utent tal-Kompilatur MPLAB XC8 C għall-MCU AVR (reviżjoni F)
  • Gwida ta' Referenza tal-Librerija Standard Unifikata tal-Mikroċippa (reviżjoni B)

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-libreriji. 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'tagħmir ta' 8-bit u l-MPLAB XC8 C Compiler, il-Gwida għall-Utent MPLAB® XC8 għall-Inġiniera Inkorporata – 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 Hamate ġiet inkluża fid-direttorju tad-doks f'dan ir-rilaxx. Din il-gwida hija maħsuba għal dawk li jmexxu Hamate 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 tappoġġja l-karatteristiċi li ġejjin.

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, AVR64EA32EA64, and.
Estrazzjoni proċedurali mtejba L-għodda tal-ottimizzazzjoni tal-estrazzjoni proċedurali (PA) ġiet imtejba sabiex il-kodiċi li jkun fih struzzjoni tas-sejħa tal-funzjoni (call recall) ) jista 'jiġi deskritt. 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 monk-pa-outline-calls, jew l-astrazzjoni proċedurali tista' tiġi diżattivata kompletament għal oġġett file jew tiffunzjona billi tuża l--monk-pa-on-file u -mo.-pa-on-function rispettivament, jew billi tuża l-attribut nipa ( nipa 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 mcodecov valida.

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ħal miri AVR. Din l-għażla tirriżerva l-firxa tal-memorja speċifikata fl-ispazju tal-memorja tad-dejta jew tal-programm, u timpedixxi lill-linker milli jimla kodiċi jew oġġetti f'din iż-żona.

IO intelliġenti aktar intelliġenti 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 tal-argumenti tal-funzjoni IO , u factoring kodiċi komuni fil-wisa 'qasam 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 ta' Server tan-Netwerk Dan ir-rilaxx tal-MPLAB XC8 Functional Safety Compiler jappoġġja l-Liċenzja tas-Server tan-Netwerk.

Verżjoni 2.36

Xejn.

Verżjoni 2.35

Appoġġ ġdid għall-apparat 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 imtejba bidla tal-kuntest L-għażla l-ġdida -mgas-isr-prologues tikkontrolla l-kuntesti itch code iġġenerat għal rutini ta 'servizz ta' interruzzjoni żgħar. 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ġ.

Immappjar flash konfigurabbli Xi apparati fil-familja AVR DA u AVR DB għandhom SFR (eż. FLMAP) li jispeċifika liema taqsima 32k tal-memorja tal-programm se tiġi mmappjata fil-memorja tad-dejta. L-għażla l-ġdida – mconst-data-in-config-mapped-proem tista’ tintuża biex il-linker iqiegħed id-data kollha kwalifikata cons 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.

Microchip Libreriji Standard Unifikati Il-kompilaturi kollha ta 'MPLAB XC se jaqsmu Librerija Standard Unifikata ta' Microchip, li issa hija disponibbli ma 'dan ir-rilaxx ta' MPLAB XC8. Il-Gwida tal-Utent tal-Kompilatur MPLAB® XC8 C/jew 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-Mikroċippa. Innota li xi funzjonalità definita qabel minn avr-libc m'għadhiex disponibbli. (Ara Librerija):'. funzjonalità...)

Smart IO Bħala parti mil-libreriji unifikati l-ġodda, il-funzjonijiet IO fil-familji tal-istampar u tal-iskanjar issa huma ġġenerati apposta fuq kull bini, 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 IO intelliġenti (bħal printf () jew scanf () ), il-kompilatur ma jistax dejjem jiddetermina mill-sekwenza tal-format jew jiddeduċi mill-argumenti dawk l-ispeċifikazzjonijiet tal-konverżjoni meħtieġa mis-sejħa. Preċedentement, il-kompilatur dejjem ma jagħmel l-ebda suppożizzjoni u jiżgura li l-funzjonijiet IO kompletament funzjonali kienu konnessi fl-immaġni tal-programm finali. Għażla ġdida – msmart-io-format=fmt ġiet miżjuda sabiex il-kompilatur ikun jista’ minflok jiġi infurmat mill-utent dwar l-ispeċifikazzjonijiet tal-konverżjoni użati minn funzjonijiet IO intelliġenti li l-użu tagħhom huwa ambigwu, li jipprevjeni rutini IO twal eċċessivament milli jiġu konnessi. (Ara l-Għażla 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-output 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 . test, . bss jew . data, l-allokatur tal-aħjar tajbin 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=żid, 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-mappa file, li jistgħu jintalbu bil-mod tas-soltu.

Appoġġ għall-apparat ġdid huwa disponibbli għall-partijiet AVR li ġejjin: ATTINY 427, ATTINY 424, ATTINY 426, ATTINY827, ATTINY824, ATTINY826, AVR32DB32, AVR64DB48, AVR64DB64, AVR64DB28, AVR32DB28, AVR64DB32, AVR32DB48, and.

Appoġġ ta 'appoġġ tat-tagħmir irtirat 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-ini t tipprevjeni l-inizjalizzazzjoni tad-dejta u l-ikklerjar tas-sezzjonijiet bss. Jaħdem billi jrażżan l-output tad-data do_ copy_ u d o_ clear_ simboli bss fl-assemblaġġ files, 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 l-ankri tas-sezzjoni -f, li jippermetti li jsir aċċess ta 'oġġetti statiċi relattiv għal simbolu wieħed; -mpai derations=n, li jippermetti li n-numru ta' iterazzjonijiet ta' astrazzjoni proċedurali jinbidel mill-inadempjenza ta' 2; u, -mpa- call cost- 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 L-appoġġ huwa disponibbli għall-partijiet AVR li ġejjin: AVR16DA28, AVR16DA32,
AVR16DA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR128DB28, AVR128DB32, AVR128DB48, u AVR128DB64.

Appoġġ ta 'apparat miġbud L-appoġġ m'għadux disponibbli għall-partijiet AVR li ġejjin: ATA5272, ATA5790, ATA5790N, ATA5791, ATA5795, ATA6285, ATA6286, ATA6612C, ATA6613C, ATA6614Q, ATA6616C, ATA6617C, u ATA664251.

Verżjoni 2.29 (Rilaxx tas-Sigurtà Funzjonali)

Header file għall-kompilatur built-ins Biex jiġi żgurat li l-kompilatur jista 'jikkonforma ma' speċifikazzjonijiet tal-lingwa bħal MISRA, il- header file, li hija awtomatikament inkluża minn , ġie aġġornat. Din l-intestatura fiha l-prototipi għall-funzjonijiet kollha in-built, bħal _buil tin _avrnop () u _buil tin_ avr delay_ cycles () . Xi built-ins jistgħu ma jkunux konformi MISRA; dawn jistgħu jitħallew barra billi żżid id-definizzjoni _Xe_ 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' fissa.

Verżjoni 2.20

Appoġġ ġdid għall-apparat L-appoġġ huwa disponibbli għall-partijiet AVR li ġejjin: ATTINY1624, ATTINY1626, u ATTINY1627.

Allokazzjoni aħjar aħjar L-allocatur ta' l-aħjar adattament (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.

Estrazzjoni 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.

Nuqqas ta' AVR Assembler 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 mcodecov jista' jintuża biex jeskludi funzjonijiet sussegwenti mill-analiżi tal-kopertura. Idealment il-pragma għandha tiżdied fil-bidu tal- file li jeskludi dak kollu file mill-analiżi tal-kopertura. Alternattivament, l-attribut ( (mcodecov) ) jista' jintuża biex jeskludi funzjoni speċifika mill-analiżi tal-kopertura.

Deskrizzjoni tal-apparat files Apparat ġdid file imsejħa avr chipinfo. html jinsab fid-direttorju tad-doks tad-distribuzzjoni tal-kompilatur. Dan file telenka l-apparati kollha appoġġjati mill-kompilatur. Ikklikkja fuq isem tal-apparat, u tiftaħ paġna li turi l-pari kollha tal-konfigurazzjoni permissibbli tal-issettjar/valur tal-bit għal dak l-apparat, b'examples.

Estrazzjoni proċedurali L-ottimizzazzjonijiet tal-estrazzjoni 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 huma mwettqa minn applikazzjoni separata, li hija awtomatikament invokata mill-kompilatur meta tagħżel livell 2, 3 jew ottimizzazzjonijiet. Dawn l-ottimizzazzjonijiet inaqqsu d-daqs tal-kodiċi, iżda jistgħu jnaqqsu l-veloċità tal-eżekuzzjoni u d-debuggabilità 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 'jkun diżattivat għal oġġett file bl-użu -mno-pa-on-file=fileisem, jew diżattivat għal funzjoni billi tuża -mno-pa fuq funzjoni = funzjoni.
Ġ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)) mad-definizzjoni tal-funzjoni, jew billi tuża _nopa, li tespandi għal attribut ( (nopa, noinline)) u b'hekk jipprevjeni milli jseħħ l-inlining tal-funzjoni. u jkun hemm estrazzjoni ta 'kodiċi inlined.
Lock bit appoġġ fi pragma Il-konfigurazzjoni #pragma issa tista 'tintuża biex tispeċifika l-bits tal-lock AVR kif ukoll il-bits l-oħra tal-konfigurazzjoni. Iċċekkja l-informazzjoni taċ-ċippa avr. html file (imsemmi hawn fuq) għall-pari ta 'setting/valur għall-użu ma' din il-pragma.
Appoġġ ġdid għall-apparat 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 ta’ 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 kwalifikati konst fil-memorja Flash tal-programm, aktar milli jkollhom dawn jinsabu fir-RAM. Il-kompilatur ġie modifikat sabiex id-dejta globali kwalifikata għall-konst 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 mhux liċenzjati (Ħ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-assemblatur 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ġġ ġdid għall-apparat 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.

Interface Ċ Komuni 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 ta' 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-archiver, li jew jiġu tradotti jew mgħoddija lil-librar li qed jiġi eżegwit. Is-sewwieq il-ġdid jippermetti sett simili ta’ għażliet b’semantika simili biex jintużaw biex joħolqu jew jimmanipulaw kwalunkwe librerija PIC jew AVR file u għalhekk huwa l-mod rakkomandat li jinvoka l-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.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 ta' spag (XCS-2420) Biex tiġi żgurata l-konsistenza ma 'kompilaturi XC oħra, il-funzjonijiet ta' string-to XC8, bħal strtol () eċċ., mhux se jibqgħu jippruvaw jikkonvertu string input jekk il-bażi speċifikata hija akbar minn 36 u minflok se jistabbilixxu errno għal EINVAL. L-istandard C ma jispeċifikax l-imġiba tal-funzjonijiet meta dan il-valur bażi jinqabeż.

Ottimizzazzjonijiet mhux xierqa tal-veloċità L-ottimizzazzjonijiet tal-estrazzjoni proċedurali kienu qed jiġu attivati ​​meta jintgħażlu ottimizzazzjonijiet tal-livell 3 (-03). 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 ġejja 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 tgħaqqad fil-librerija lprintf_flt (għażla -print _flt) biex tixgħel l-appoġġ IO ifformattjat għall-ispeċifikazzjonijiet tal-format float. Il-karatteristiċi smart IO tal-Microchip Unified 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 ()) se 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.20

Inbidel it-tqassim tad-DFP Il-kompilatur issa jassumi tqassim differenti użat minn 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

Konst oġġetti fil-memorja tal-programm Innota li l-oġġetti b'mod awtomatiku, b'konst-kwalifikati 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ġ, billi tuża l-għażla -mnoconst- da ta-in-progmem.

Verżjoni 2.00

Fjusis tal-konfigurazzjoni Il-fjusijiet tal-konfigurazzjoni tal-apparat issa jistgħu jiġu pprogrammati bl-użu ta' pragma ta' konfigurazzjoni segwit minn pari ta' valur ta' twaqqif biex jispeċifika l-istat tal-fjus, eż.
#pragma config WDT0N = SET
#pragma config B0DLEVEL = B0DLEVEL_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 ta' l-ispeċifikazzjoni CCI _at (indirizz), pereżempjuample: #inkludi int foobar at(Ox800100); char at(Ox250) get ID(int offset) { … } L-argument għal dan l-ispeċifikazzjoni għandu jkun kostanti li jirrappreżenta l-indirizz li fih se titqiegħ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.
Sintassi tal-funzjoni ta' interruzzjoni ġdida Il-kompilatur issa jaċċetta l-ispeċifikazzjoni tal-interruzzjoni CCI (num) biex jindika li l-funzjonijiet C huma interrupt handlers. L-ispeċifikatur jieħu numru ta' interruzzjoni, pereżempjuample: #inkludi interruzzjoni null(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.40

Rilassat wisq (XCS-2876) Meta uża l-għażla -mrelax, il-kompilatur ma kienx 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 mhix diżattivata kif iddikjarat fit-twissija (XCS-2875) Il-karatteristika cost-data-in-config mappedprogmem tiddependi fuq il-karatteristika cost-data-in-proem li tkun attivata. Jekk il-karatteristika cost-data-ipconfig-mapped-proem kienet attivata b'mod espliċitu bl-użu tal-għażla u l-karatteristika cost-data-inprogmem kienet diżattivata, il-pass tal-link falla, minkejja messaġġ ta' twissija li jgħid li l-cons data-in-config-mapped- Il-karatteristika proem kienet awtomatikament diżattivata, li ma kinitx kompletament korretta. Il-karatteristika const-data-in-config-mapped-proem issa hija kompletament diżattivata f'din is-sitwazzjoni.
DFP jinbidel biex jaċċessa b'mod korrett NVMCTRL (XCS-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 setax jissettja l-IO SFR għall-paġna użata mill-kompilatur const-data-in configmapped- proem karatteristika. 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 il-flash mapping (XCS-2847) Ġiet implimentata work-around għal problema bil-karatteristika tal-apparat tal-mapping tal-flash irrappurtat fl-AVR128DA28/32/48/64 Silicon Errata (DS80000882). Il-karatteristika tal-kompilatur const-data-in-config-mapped-proem mhux se tiġi applikata awtomatikament għall-apparati affettwati, u din il-bidla tidher fil-verżjoni AVR-Ex_DFP 2.2.160.
Ibni żball b'sinhf jew coshf (XCS-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 (XCS-2833) L-użu tal-attribut nopa b'funzjoni li kellha l-isem tal-assemblatur speċifikat bl-użu bħala () wassal messaġġi ta 'żball mill-assemblatur. Din il-kombinazzjoni mhix possibbli.
Falliment tal-funzjoni varjadika bl-argumenti tal-pointer (XCS-2755, XCS-2731) Funzjonijiet b'numru varjabbli ta 'argumenti jistennew indikaturi ta' 24-bit (tip _memo) li jiġu mgħoddija fil-lista ta 'argumenti varjabbli meta l-karatteristika cost-data-in-proem tkun attivata. 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 cons data-in-proem tkun attivata, l-argumenti kollha tal-pointers ta' 16-bit issa huma kkonvertiti għal pointers ta' 24 bit. Funzjonijiet tal-librerija strtoxxx falluti (XCS-2620) Meta l-karatteristika const-data-in-proem kienet attivata, il-parametru daħħal 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 (XCS-2612) Il-kompilatur issa se joħroġ żball jekk il-karatteristika cost-in-proem tkun attivata u l-indirizz ta’ string litterali jintefgħu b’mod espliċitu fl-ispazju tal-indirizz tad-dejta (jwaqqa’ l-kwalifika tal-const), 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 (XCS-2408) Oġġetti const u const volatile mhux inizjalizzati 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 (XCS-2774) Tibdil minuri fl-ottimizzazzjonijiet default tal-modalità Ħieles pprevenut it-tiwi kostanti tal-espressjonijiet tal-operandi għall-funzjonijiet integrati tad-dewmien, li rriżultaw li jiġu ttrattati bħala non-contacts u jikkawżaw l-iżball: _buil tin avr delay_ cycles jistenna ac ompile kostanti integer tal-ħin.

Verżjoni 2.35

Allokazzjoni kontigwa bl-użu ta' _at (XCS-2653) L-allokazzjoni kontigwa ta' postijiet multipli ta' oġġetti f'sezzjoni bl-istess isem u bl-użu ta' () ma ħadmitx b'mod korrett. Per example: constchararrl [ ] at tri butte ((sect on(“.misses”))) at (Ox50 0 ) = {Oxo , Ox CD} ; cost char arr2[ ] at tri butte ((section(“.my s eke”))) = {Oxen, Ox FE }; kellu poġġa arr2 immedjatament wara aril.
L-ispeċifikazzjoni tal-indirizzi tal-bidu tat-taqsima (XCS-2650) L-għażla -Wal, –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 jaħdem għal xi sezzjonijiet standard, bħal . test jew . bss, li trid titqiegħed bl-użu ta' għażla -Wl, -T.
Linker jiġġarraf meta jirrilassaw (XCS-2647) Meta l-ottimizzazzjoni -relax kienet attivata u kien hemm kodiċi jew sezzjonijiet tad-dejta li ma kinux jidħlu fil-memorja disponibbli, il-linker ġġarraf. Issa, f'ċirkustanza bħal din, jinħarġu messaġġi ta 'żball minflok.
Aċċess ħażin għall-EEPROM (XCS-2629) Ir-rutina tal-blokk tal-leproma _read_ ma ħadmitx b'mod korrett fuq apparati Mega meta l-għażla -monist-data-in-proem kienet attivata (li hija l-istat default), li rriżultat f'memorja EEPROM ma tinqarax b'mod korrett.
Allokazzjoni ta' memorja mhux valida (XCS-2593, XCS-2651) Meta l-għażla -Text jew -Tata linker (eżample mgħoddija bl-użu 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.
Kodiċi ta' interruzzjoni ATtiny mhux validu (XCS-2465) Meta l-bini għall-apparati Tatin u l-ottimizzazzjonijiet kienu diżattivati ​​(-00), il-funzjonijiet ta 'interruzzjoni setgħu wasslu messaġġi tal-assemblatur ta' operand barra mill-firxa.
Għażliet li ma jgħaddux (XCS-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 (XCS-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 falla (XCS-2381) Invoka l-verżjoni tal-Windows tal-xc8-ar. arkivju tal-librerija exe għat-tieni darba biex jaċċessa arkivju tal-librerija eżistenti jista' jkun falla b'messaġġ ta' żball li ma jistax jibdel l-isem.

Verżjoni 2.31

Ħsarat mhux spjegat tal-kompilatur (XCS-2367) Meta taħdem fuq pjattaformi Windows li kellhom id-direttorju temporanju tas-sistema ssettjat għal mogħdija li kienet tinkludi punt'.' karattru, il-kompilatur jista’ jkun naqas milli jesegwixxi.

Verżjoni 2.30

It-tikketti globali mhux f'posthom wara l-kontorn (XCS-2299) Kodiċi ta' assemblaġġ miktub bl-idejn li jqiegħed tikketti globali fi ħdan sekwenzi ta' assemblaġġ li huma fatturati permezz ta' astrazzjoni proċedurali seta' ma jkunux ġew pożizzjonati mill-ġdid b'mod korrett.
Ħabta rilassanti (XCS-2287) L-użu tal-għażla -merlad 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 fl-aħħar ta 'sezzjoni.
Crash meta jiġu ottimizzati t-tikketti bħala valuri (XCS-2282) Kodiċi li juża l-estensjoni tal-lingwa GNU C "Tikketti bħala valuri" seta' kkawża l-ottimizzazzjonijiet tal-astrazzjoni proċedurali biex jikkraxxjaw, b'firxa VMA Deskritta tifrex f'iżball ta' tiswija.
Mhux daqshekk konst (XCS-2271) Il-prototipi għal jibda () u funzjonijiet oħra minn m'għadhiex tispeċifika l-kwalifikatur tal-ispiża mhux standard fuq string pointers ritornati meta l-karatteristika -monist-data inprogmem tkun diżattivata. Innota li b'apparat avrxmega3 u avertin, din il-karatteristika hija attivata b'mod permanenti.
Inizjalizzaturi mitlufa (XCS-2269) Meta aktar minn varjabbli waħda f'unità ta' traduzzjoni tqiegħdet f'sezzjoni (bl-użu ta' taqsima jew attribut ((taqsima))), u l-ewwel varjabbli bħal din kienet inizjalizzata żero jew ma kellhiex initializer, initializers għal varjabbli oħra fl-istess unità ta' traduzzjoni li tpoġġew fl-istess taqsima ntilfu.

Verżjoni 2.29 (Rilaxx tas-Sigurtà Funzjonali)

Xejn.

Verżjoni 2.20

Żball bi kmandi twal (XCS-1983) Meta tuża mira AVR, il-kompilatur jista' jkun waqaf b'a file ma nstabx żball, jekk il-linja tal-kmand kienet estremament kbira u fiha karattri speċjali bħal kwotazzjonijiet, backslashes, eċċ.
Sezzjoni rodata mhux assenjata (XCS-1920) Il-linker AVR naqas milli jassenja memorja għal sezzjonijiet rodata tad-dwana 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

Ħsara fir-rilokazzjoni (XCS-1891) L-allocatur tal-aħjar tajbin 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 (XCS-1889) Ir-rilassament tal-linker ma seħħx għal istruzzjonijiet ta' qabża jew ta' sejħa li l-miri tagħhom jistgħu jintlaħqu jekk ikunu rilassati.
Nieqsa funzjonalità (XCSE-388) Diversi definizzjonijiet minn , bħal clock_ div_ t u clock_prescale_set (), ma kinux definiti għal apparati, inklużi l-ATmega324PB, ATmega328PB, ATtiny441, u ATtiny841.
Macros nieqsa Il-preproċessur macros_ xcs _MODE_, _xcs VERŻJONI, _xc, u xcs ma kinux awtomatikament definiti mill-kompilatur. Dawn issa huma disponibbli.

Verżjoni 2.05

Żball intern tal-kompilatur (XCS-1822) Meta tinbena taħt il-Windows, seta' jkun ġie prodott żball intern tal-kompilatur meta jiġi ottimizzat il-kodiċi.
RAM overflow mhux skopert (XCS-1800, XCS-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 (XCS-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 (XCS-1788) F'xi sitwazzjonijiet fejn il-programm ma kellux varjabbli globali definiti, il-kodiċi tal-istartjar tar-runtime ma ħareġx u l-funzjoni prinċipali () qatt ma ntlaħqet.
Informazzjoni mhux korretta dwar il-memorja (XCS-1787) Għal apparati avrxmega3 u avrtiny, il-programm tad-daqs avr kien qed jirrapporta li d-dejta li tinqara biss kienet qed tikkonsma RAM minflok memorja tal-programm.
Memorja tal-programm mhux korretta qari (XCS-1783) Proġetti kkompilati għal apparati b'memorja tal-programm immappjata 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 (XCS-1773) Sar żball intern jekk iddefinijt oġġetti pointer bil-
_at () jew attribute() tokens bejn l-isem tal-pointer u t-tip dereferenced, pereżempjuample, char *
_at ( 0x80015 0) cp; Issa tinħareġ twissija jekk tiltaqa' magħhom kodiċi bħal dan.
Nuqqas ta' eżekuzzjoni prinċipali (XCS-1780, XCS-1767, XCS-1754) L-użu ta' varjabbli tal-EEPROM jew id-definizzjoni tal-fjusijiet bl-użu tal-pragma tal-konfigurazzjoni setgħu kkawżaw l-inizjalizzazzjoni tad-dejta mhux korretta u/jew l-eżekuzzjoni tal-programm imsakkra fil-kodiċi tal-istartjar tar-runtime, qabel ma laħaq main () .
Żball tal-fjus b'apparat żgħir (XCS-1778, XCS-1742) L-apparat attiny4/5/9/10/20/40 kellu tul tal-fjus mhux korrett speċifikat fl-intestatura tagħhom files li jwasslu għal żbalji linker meta jippruvaw jibnu kodiċi li definiti fjusis.
Ħsara tas-segmentazzjoni (XCS-1777) Ħsara ta' segmentazzjoni intermittenti ġiet ikkoreġuta.
Ħbit tal-assemblatur (XCS-1761) L-assembler avr-as seta' ġġarraf meta l-kompilatur tħaddem taħt Ubuntu 18.
Oġġetti mhux ikklerjati (XCS-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 tal-apparat konfliġġenti injorata (XCS-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 bil-heap (XCS-1748) Is-simbolu tal-bidu heap_ kien qed jiġi ssettjat b'mod żbaljat, li jirriżulta fil-possibbiltà li varjabbli ordinarji jiġu korrotti mill-borġ.
Żball fir-rilokazzjoni tal-linker (XCS-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 l-mod 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.

Ġenerazzjoni tal-Kodiċi

Ħsara fl-allokazzjoni tal-memorja PA (XCS-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, anke jekk il-programm għandu jkun jista 'jiffittja l-ispazju disponibbli.
Smart-IO mhux daqshekk intelliġenti (XCS-2872) Il-karatteristika smart-io tal-kompilatur se tiġġenera kodiċi validu iżda sub-ottimali għall-funzjoni sprint jekk il-karatteristika coast-data-in-proem tkun ġiet diżattivata jew jekk l-apparat ikollu l-flash kollu tiegħu mmappjat fil-memorja tad-data.
Saħansitra inqas intelliġenti Smart-IO (XCS-2869) Il-karatteristika smart-io tal-kompilatur se tiġġenera kodiċi validu iżda subottimali meta l-għażliet tal-landa -floe u -fno-buil jintużaw it-tnejn.
Tqegħid ta' data ta' qari biss subottimali (XCS-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 coast-data-in-pragma hija attivata, speċjalment jekk il-karatteristika coast-data-in-config-mapped-proem hija attivata wkoll. Dawn il-karatteristiċi jistgħu jiġu diżattivati ​​jekk meħtieġ.
Għan file ordni tal-ipproċessar (XCS-2863) L-ordni li fiha l-oġġetti files se jiġu pproċessati mill-linker jistgħu jkunu differenti bbażati fuq l-użu ta 'ottimizzazzjonijiet ta' estrazzjoni proċedurali (għażla -mpa). Dan jaffettwa biss il-kodiċi li jiddefinixxi funzjonijiet dgħajfa f'diversi moduli.
Żball tal-linker bl-assoluta (XCS-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.
IDs qosra ta' qawmien (XCS-2775) Għall-apparati ATA5700/2, ir-reġistri PHID0/1 huma definiti biss bħala wisa' ta' 16-il bit, aktar milli wiesa' ta' 32 bit.
Crash tal-linker meta ssejjaħ is-simbolu (XCS-2758) Il-linker jista' jikkraxxja jekk l-għażla tas-sewwieq -merlad tintuża meta l-kodiċi tas-sors isejjaħ simbolu li ġie definit bl-użu tal-għażla tal-linker -Wl, –defsym.
Inizjalizzazzjoni mhux korretta (XCS-2679) Hemm diskrepanza bejn fejn il-valuri inizjali għal xi oġġetti globali/statiċi daqs byte jitqiegħdu fil-memorja tad-dejta u fejn il-varjabbli se jiġu aċċessati waqt ir-runtime.
beda b'mod żbaljat jissettja vojt (XCS-2652) F'każijiet fejn sensiela ta' suġġett għall-konverżjoni b'ddikjarat () fiha dak li jidher li huwa numru b'punt li jvarja f'format esponenzjali u jkun hemm karattru mhux mistenni wara karattru e, allura l-indirizz vojt, jekk ipprovdut, jindika l-karattru wara. l-e u mhux l-e innifsu. Per example: iddikjarat ("hooey", vojt); se jirriżulta f'punt vojt lejn il-karattru x.
Sejħiet ta' funzjoni indiretta ħażina (XCS-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 (XCS-2626) Il-funzjonijiet tal-librerija strtof () et al u scanf () et al, dejjem se jikkonvertu numru eżadeċimali b'punt li jvarja li ma jispeċifikax esponent għal
żero. Per example: stator ("Kokka", & vojta); se jirritorna l-valur 0, mhux 1.
Messaġġi mhux preċiżi tal-konsulent tal-munzell (XCS-2542, XCS-2541) F'xi każijiet, it-twissija tal-konsulent tal-munzell dwar ir-rikors jew il-munzell indeterminat użat (possibbilment permezz tal-użu ta' alloca()) ma tiġix emessa.
Nuqqas b'kodiċi ta' interruzzjoni duplikat (XCS-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.
Oġġetti Const mhux fil-memorja tal-programm (XCS-2408) Għal proġetti avrxmega3 u avertins oġġetti const mhux idealizzati jitqiegħdu fil-memorja tad-dejta, minkejja li twissija tissuġġerixxi li tqiegħdu fil-memorja tal-programm. Dan mhux se jaffettwa l-apparati li m'għandhomx memorja tal-programm immappjata fl-ispazju tal-memorja tad-dejta, u lanqas se jaffettwa xi oġġett li jkun inizjalizzat.
Output ħażin b'passaġġ DFP invalidu (XCS-2376) Jekk il-kompilatur jiġi invokat b'passaġġ DFP invalidu u 'spec' file teżisti għall-apparat magħżul, il-kompilatur mhux qed jirrapporta l-pakkett tal-familja tal-apparat nieqes u minflok jagħżel l-'spec' file, li mbagħad jista' jwassal għal output invalidu. L-'spec' files 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 (XCS-1966) Il-kompilatur mhux qed jiskopri l-koinċidenza tal-memorja ta 'oġġetti magħmula assoluta f'indirizz (permezz ta' ()) u oġġetti oħra bl-użu tal-ispeċifikazzjoni tas-sezzjoni () u li huma marbuta mal-istess indirizz.
Nuqqas fil-funzjonijiet tal-librerija u _meme (XCS-1763) Funzjonijiet limbic float imsejħa b'argument fl-ispazju tal-indirizz _memo 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 limbika limitata (AVRTC-731) Għall-prodotti ATTiny4/5/9/10/20/40, l-implimentazzjoni standard tal-librerija C/Matematika fil-limbic 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 -relax.
Limitazzjonijiet tal-ispazju tal-ismijiet (AVRTC-733) L-ispazji tal-indirizzi msemmija huma sostnuti mill-toolchain, 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 il-ħin lokali () jirritorna l-istess ħin bħall-gummite (), pereżempjuample.

APPOĠĠ TAL-KLIJENT

file:///Applications/microehip/xc8/v 2 .40/docs/Aqrali_X C 8_ għal A VR. htm

Dokumenti / Riżorsi

MICROCHIP MPLAB XC8 C Kompilatur Software [pdfManwal tas-Sid
MPLAB XC8 C, MPLAB XC8 C Kompilatur Software, Kompilatur Software, Software

Referenzi

Ħalli kumment

L-indirizz elettroniku tiegħek mhux se jiġi ppubblikat. L-oqsma meħtieġa huma mmarkati *