MICROCHIP MPLAB XC8 C konpilatzailearen softwarea
DOKUMENTU HONEK MPLAB XC8 C BILATZAILEARI BURUZKO INFORMAZIO GARRANTZITSUA DAUKA MIKROCHIP AVR GAILUAK JOKATZEKO.
MESEDEZ, IRAKURRI SOFTWARE HAU ERABILTZEN AURRETIK. IKUSI MPLAB XC8 C KONMILTZAILEA PIC DOKUMENTUAREN OHARRAK 8 BITEKO ARGAZKI GAILUTAN ERABILTZEN ARI BADIZUN.
Amaituview
Sarrera
Microchip MPLAB® XC8 C konpilatzailearen bertsio honek hainbat funtzio berri, akatsen konponketa eta gailurako laguntza berri ditu.
Eraikitze-data
Konpiladorearen bertsio honen eraikuntza data ofiziala 3ko uztailaren 2022a da.
Aurreko bertsioa
Aurreko MPLAB XC8 C konpiladorearen bertsioa 2.39 zen, segurtasun funtzionalaren konpilatzailea, 27ko urtarrilaren 2022an eraikia. Aurreko konpiladore estandarra 2.36 bertsioa zen, 27ko urtarrilaren 2022an eraikia.
Segurtasun Funtzionaleko Eskuliburua
MPLAB XC konpiladoreentzako segurtasun funtzionalaren eskuliburua dokumentazio paketean eskuragarri dago segurtasun funtzionalaren lizentzia erosten duzunean.
Osagaien lizentziak eta bertsioak
MPLAB® XC8 C Compiler AVR MCU tresnak GNU Lizentzia Publiko Orokorraren (GPL) pean idatzi eta banatzen dira, eta horrek esan nahi du bere iturburu-kodea libreki banatu eta publikoarentzat eskuragarri dagoela. GNU GPL pean dauden tresnen iturburu kodea Microchip-en bereizita deskarga daiteke webgunea. GNU GPL irakur dezakezu file izeneko zure instalazio-direktorioaren azpidirektorioan kokatuta dago. GPLren azpian dauden printzipioei buruzko eztabaida orokorra aurki daiteke hemen. Goibururako emandako laguntza-kodea files, estekatzaileen script-ak eta exekuzio-denborako liburutegiak jabetza-kodeak dira eta ez daude GPL-ren arabera.
Konpiladore hau GCC 5.4.0 bertsioaren, binutils 2.26 bertsioaren inplementazioa da eta avr-libc 2.0.0 bertsioa erabiltzen du.
Sistemaren eskakizunak
MPLAB XC8 C konpilatzailea eta erabiltzen duen lizentzia-softwarea hainbat sistema eragiletarako eskuragarri daude, besteak beste, honako hauen 64 biteko bertsioetarako: Microsoft Windows 10-ren edizio profesionalak; Ubuntu 18.04; eta macOS 10.15.5. Windows-erako bitarrak kodea-sinatu dira. Mac OS-erako bitarrak kodez sinatu eta notarizatu egin dira.
Sareko lizentzia zerbitzari bat exekutatzen ari bazara, konpilatzaileek onartzen duten sistema eragileak dituzten ordenagailuak soilik erabil daitezke lizentzia zerbitzaria ostatatzeko. Xclm 2.0 bertsiotik aurrera, sareko lizentzia zerbitzaria Microsoft Windows Server plataforma batean instala daiteke, baina lizentzia zerbitzariak ez du zertan sistema eragilearen zerbitzariaren bertsio batean exekutatu.
Gailuak onartzen dira
Konpiladore honek kaleratze unean ezagutzen ziren 8 biteko AVR MCU gailu guztiak onartzen ditu. Ikus (konpiladorearen doc direktorioan) onartzen diren gailu guztien zerrenda ikusteko. Hauek filegailu bakoitzaren konfigurazio-bit ezarpenak ere zerrendatzen ditu.
Edizioak eta Lizentzien Berrikuntzak
MPLAB XC8 konpilatzailea lizentziadun (PRO) edo lizentziarik gabeko (Doakoa) produktu gisa aktibatu daiteke. Aktibazio-gako bat erosi behar duzu zure konpiladorearen lizentzia lortzeko. Lizentzia batek Doako produktuarekin alderatuta optimizazio-maila handiagoa ahalbidetzen du. Lizentziarik gabeko konpilatzaile bat mugarik gabe funtzionatu daiteke lizentziarik gabe.
MPLAB XC8 Functional Safety konpilatzailea Microchip-i erositako segurtasun funtzionalaren lizentzia batekin aktibatu behar da. Konpilatzaileak ez du funtzionatuko lizentzia hau gabe. Behin aktibatuta, edozein optimizazio-maila hauta dezakezu eta konpiladorearen funtzio guztiak erabil ditzakezu. MPLAB XC Functional Safety Compiler-en bertsio honek Sareko zerbitzariaren lizentzia onartzen du.
Ikus MPLAB XC C konpiladoreak instalatzea eta ematea (DS50002059) dokumentua lizentzia-motei eta lizentzia batekin konpilatzailea instalatzeari buruzko informazioa lortzeko.
Instalazioa eta aktibazioa
Ikus, halaber, Migrazio-arazoak eta mugak atalak, konpilatzaile honekin sartutako azken lizentzia-kudeatzaileari buruzko informazio garrantzitsua lortzeko.
MPLAB IDE erabiltzen baduzu, ziurtatu azken MPLAB X IDE 5.0 bertsioa edo berriagoa instalatu duzula tresna hau instalatu aurretik. Irten IDEtik konpilatzailea instalatu aurretik. Exekutatu .exe (Windows), .run (Linux) edo aplikazioa (macOS) konpiladore-instalatzaile-aplikazioa, adibidez, XC8-1.00.11403-windows.exe eta jarraitu pantailako argibideak.
Instalazio-direktorio lehenetsia gomendatzen da. Linux erabiltzen ari bazara, konpilatzailea instalatu behar duzu terminal baten bidez eta root kontu batetik. Instalatu administratzaile-pribilegioak dituen macOS kontu bat erabiliz.
Aktibazioa instalatzeko bereizita egiten da orain. Informazio gehiago lortzeko, ikusi MPLAB® XC C konpilatzaileentzako License Manager (DS52059) dokumentua.
Konpilatzailea ebaluazio-lizentziapean exekutatzeko aukeratzen baduzu, orain abisu bat jasoko duzu konpilazioan zure ebaluazio-aldia amaitu eta 14 eguneko epean zaudenean. Abisu bera emango da HPA harpidetza amaitu eta 14 eguneko epean bazaude.
XC Network License Server instalatzaile bereizia da eta ez dago erabiltzaile bakarreko konpiladorearen instalatzailean sartzen.
XC License Manager-ek sare mugikorreko lizentzien ibiltaritza onartzen du orain. Mugikorrentzako erabiltzaileei zuzenduta, funtzio honek baimen mugikor bati saretik irteteko aukera ematen du denbora laburrean. Ezaugarri hau erabiliz, saretik deskonekta zaitezke eta oraindik ere zure MPLAB XC konpilatzailea erabil dezakezu. Ikusi XCLM instalazioaren doc karpeta eginbide honi buruzko informazio gehiago lortzeko. MPLAB X IDE-k Lizentzien leiho bat (Tresnak > Lizentzia) barne hartzen du ibiltaritza bisualki kudeatzeko.
Instalazio-arazoak konpontzea
Windows sistema eragileren batean konpilatzailea instalatzeko zailtasunak badituzu, saiatu iradokizun hauek.
- Exekutatu instalazioa administratzaile gisa.
- Ezarri instalatzailearen aplikazioaren baimenak 'Kontrol osoa' moduan. (Egin klik eskuineko botoiarekin file, hautatu Propietateak, Segurtasuna fitxa, hautatu erabiltzailea, editatu.)
- Ezarri denborazko karpetaren baimenak "Kontrol osoa!
Tenperatura karpetaren kokapena zehazteko, idatzi %temp% Exekutatu komandoan (Windowsen logotipoaren tekla + R). Honek a irekiko du file direktorio hori erakusten duen esploratzailearen elkarrizketa-koadroa eta karpeta horren bidea zehazteko aukera emango dizu.
Konpilatzailearen dokumentazioa
Konpilatzailearen erabiltzailearen gidak zure arakatzailean irekitzen den HTML orrialdetik ireki daitezke MPLAB X IDE paneleko laguntza botoi urdina sakatzean, pantaila-argazkian adierazten den moduan.
8 biteko AVR helburuetarako eraikitzen ari bazara, AVR® MCUrako MPLAB® XC8 C Konpiladorearen Erabiltzailearen Gidak arkitektura honetara aplikagarriak diren konpiladoreen aukera eta ezaugarriei buruzko informazioa dauka.
Bezeroarentzako Arreta
Microchip-ek akatsen txostenak, iradokizunak edo iruzkinak onartzen ditu konpiladorearen bertsio honi buruz. Mesedez, zuzendu edozein akatsen txostena edo eginbide eskaerak Laguntza Sistemaren bidez.
Dokumentazio eguneraketak
MPLAB XC8 dokumentazioaren lineako bertsio eguneratuak eta eguneratuak lortzeko, bisitatu Microchip-en lineako dokumentazio teknikoa. webgunea.
Argitalpen honetako AVR dokumentazio berria edo eguneratua:
- MUSL copyright-oharra
- MPLAB XC C konpilatzaileak instalatzea eta lizentzia ematea (M berrikuspena)
- MPLAB XC8 Erabiltzailearen Gida Ingeniari Txertatuentzako - AVR MCUak (A berrikuspena)
- MPLAB XC8 C konpilatzailearen erabiltzailearen gida AVR MCUrako (F berrikuspena)
- Microchip Unified Standard Library erreferentzia-gida (B berrikuspena)
Microchip Unified Standard Library Reference Guide-k Microchip Unified Standard Library-k definitutako funtzioen portaera eta interfazea deskribatzen ditu, baita liburutegi moten eta makroen aurreikusitako erabilera ere. Informazio horietako batzuk AVR® MCUrako MPLAB® XC8 C Konpiladorearen Erabiltzaileen Gidan zegoen. Gailuaren liburutegiko informazio espezifikoa konpiladorearen gida honetan dago oraindik.
8 biteko gailuekin eta MPLAB XC8 C konpilatzailearekin hasi berria bazara, MPLAB® XC8 User!s Guide for Embedded Engineers - AVR® MCUs (DS50003108) MPLAB X IDEn proiektuak konfiguratzeko eta kodea idazteko informazioa du. zure lehen MPLAB XC8 C proiekturako. Gida hau orain konpiladorearekin banatzen da.
Hamate Erabiltzailearen Gida bertsio honetako docs direktorioa sartu da. Gida hau Hamate aplikazio autonomo gisa erabiltzen dutenentzat da.
Zer berri
Honako hauek dira orain konpilatzaileak onartzen dituen AVR-helburuko eginbide berriak. Azpitituluetako bertsio-zenbakiak hurrengo ezaugarriak onartzen dituen lehen konpilatzailearen bertsioa adierazten du.
2.40 bertsioa
Gailu laguntza berria AVR pieza hauetarako laguntza eskuragarri dago orain: AT90PWM3, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR64EA28, AVR64EA32EA64 eta AVR48EAXNUMXEAXNUMX.
Prozeduraren abstrakzioa hobetua Prozedurazko abstrakzioa (PA) optimizatzeko tresna hobetu da, funtzio-deiaren instrukzioa ( call recall ) duen kodea zehaztu ahal izateko. Hau bakarrik gertatuko da pila ez bada erabiltzen argumentuak pasatzeko edo funtzioaren itzulera-balioa lortzeko. Pila argumentu-zerrenda aldakorra duen funtzio bati deitzean edo horretarako izendatutako erregistroak baino argumentu gehiago hartzen dituen funtzio bati deitzean erabiltzen da. Ezaugarri hau monk-pa-outline-calls aukera erabiliz desgaitu daiteke edo prozedura-abstrakzioa guztiz desgaitu daiteke objektu baterako file edo funtzionatu -monk-pa-on- erabilizfile eta -mo.-pa-on-funtzioa hurrenez hurren, edo nipa atributua (nipa specifier) funtzioekin selektiboki erabiliz
Kode estaldura makroa Konpilatzaileak __CODECOV makroa definitzen du orain baliozko mcodecov aukera bat zehazten bada.
Memoria erreserbatzeko aukera xc8-cc kontrolatzaileak -mreserve=space@start: end aukera onartuko du orain AVR helburuetarako eraikitzean. Aukera honek zehaztutako memoria-tartea gordetzen du datuen edo programaren memoria-espazioan, estekatzaileak eremu honetako kodea edo objektuak betetzea eragotziz.
IO adimendunagoa Smart IO funtzioetan hainbat hobekuntza egin dira, printf core kodeari egindako doikuntza orokorrak barne, %n bihurketa-eskatzailea aldaera independente gisa tratatuz, vararg pop errutinak eskatuz lotuz, datu-mota laburragoak erabiliz, ahal den neurrian, IO funtzioaren argumentuak kudeatzeko. , eta eremuen zabaleran eta doitasun-kudeaketan kode arrunta factoring. Honek kode eta datuen aurrezpen handia eragin dezake, baita IOaren exekuzio-abiadura handitu ere.
2.39 bertsioa (Segurtasun funtzionalaren bertsioa)
Sareko zerbitzariaren lizentzia MPLAB XC8 Functional Safety Compiler-en bertsio honek Sareko zerbitzariaren lizentzia onartzen du.
2.36 bertsioa
Bat ere ez.
2.35 bertsioa
Gailu laguntza berria AVR pieza hauetarako laguntza dago eskuragarri: ATTINY3224, ATTINY3226, ATTINY3227, AVR64DD14, AVR64DD20, AVR64DD28 eta AVR64DD32.
Testuinguru-aldaketa hobetua -mcall-isr-prologues aukera berriak eten funtzioek sarreran erregistroak nola gordetzen dituzten eta erregistro horiek nola leheneratzen diren eten errutina amaitzen denean aldatzen du. -mcall-prologues aukeraren antzera funtzionatzen du, baina eten funtzioei (ISR) bakarrik eragiten die.
Are gehiago, testuinguru-aldaketa hobetu -mgas-isr-prologues aukera berriak eten zerbitzuen errutina txikietarako sortutako testuinguruak kontrolatzen ditu. Gaituta dagoenean, funtzio honek mihiztatzaileak ISR eskaneatu egingo du erregistroaren erabileraren bila eta erabilitako erregistro hauek soilik gordeko ditu beharrezkoa bada.
Flash-mapa konfiguragarria AVR DA eta AVR DB familiako gailu batzuek SFR bat dute (adibidez, FLMAP) programaren memoriaren zein 32k-ko atal mapatuko den datuen memorian zehazten duena. – mconst-data-in-config-mapped-proem aukera berria erabil daiteke estekatzaileak 32k-ko atal bakarreko datu guztiak kontrako sailkatuak jartzeko eta dagokion SFR erregistroa automatikoki hasieratzeko, datu horiek datuen memoria espazioan mapatzen direla ziurtatzeko. , non modu eraginkorragoan sartuko den.
Microchip Liburutegi Estandar bateratuak MPLAB XC konpilatzaile guztiek Microchip Unified Standard Library partekatuko dute, orain eskuragarri dagoen MPLAB XC8 bertsio honekin. MPLAB® XC8 C Konpiladorearen Erabiltzailearen Gida/edo AVR® MCU-k jada ez du funtzio estandar hauen dokumentazioa sartzen. Informazio hau Microchip Unified Standard Library erreferentzia-gidan aurki daiteke. Kontuan izan avr-libc-ek aurrez definitutako funtzionalitate batzuk jada ez daudela erabilgarri. (Ikus Liburutegia):'. funtzionaltasuna...)
IO adimenduna Liburutegi bateratu berrien zati gisa, inprimatze eta eskaneatu familien IO funtzioak orain pertsonalizatuta sortzen dira eraikuntza bakoitzean, funtzio horiek programan nola erabiltzen diren kontuan hartuta. Honek programa batek erabiltzen dituen baliabideak nabarmen murriztu ditzake.
Smart IO laguntza aukera IO funtzio adimendunetarako deiak aztertzean (adibidez, printf () edo scanf () ), konpilatzaileak ezin ditu beti formatu-katearen arabera zehaztu edo argumentuetatik ondorioztatu deiak eskatzen dituen bihurketa-zehatzaile horiek. Aurretik, konpilatzaileak beti ez zuen hipotesirik egingo eta IO funtzio guztiz funtzionalak programaren amaierako irudira lotzen zirela ziurtatzen zuen. – msmart-io-format=fmt aukera berri bat gehitu da, konpilatzaileari erabiltzaileak bere erabilera anbiguoa den IO funtzio adimendunek erabiltzen dituzten bihurketa-zehaztatzaileen berri izan dezan, IO errutina luzeegiak lotzea ekiditeko. (Ikusi smart-io-format Aukera xehetasun gehiago lortzeko.)
Atal pertsonalizatuak jartzea Aurretik, -Wl, –section-start aukerak zehaztutako sekzioa eskatutako helbidean bakarrik jartzen zuen estekatzailearen scriptak izen bereko irteerako atal bat definitu zuenean. Hori horrela ez zenean, atala estekatzaileak aukeratutako helbide batean jartzen zen eta aukera baztertu zen funtsean. Orain aukera errespetatuko da atal pertsonalizatu guztietan, estekatzailearen scriptak atala definitzen ez badu ere. Kontuan izan, ordea, atal estandarrentzat, hala nola. testua,. bss edo. datuak, egokien egokien esleitzaileak oraindik ere erabateko kontrola izango du haien kokapenaren gainean, eta aukerak ez du eraginik izango. Erabili -Wl, -Tsection=gehitu aukera, erabiltzailearen gidan azaltzen den moduan.
2.32 bertsioa
Pila-gida PRO konpiladore lizentziarekin eskuragarri, konpilatzailearen pila gidatzeko funtzioa erabil daiteke programa batek erabiltzen duen edozein pilaren gehienezko sakonera kalkulatzeko. Programa baten dei grafikoa eraiki eta aztertzen du, funtzio bakoitzaren pila-erabilera zehazten du eta txosten bat egiten du, eta hortik programak erabiltzen dituen pila-saken sakontasuna ondoriozta daiteke. Ezaugarri hau -mchp-stack-usage komando-lerroko aukeraren bidez gaitzen da. Exekutatu ondoren pilaren erabileraren laburpena inprimatzen da. Mapan eskuragarri dago pila-txosten zehatza file, ohiko moduan eska daitekeena.
Gailu berrien laguntza laguntza AVR pieza hauetarako eskuragarri dago: ATTINY 427, ATTINY 424, ATTINY 426, ATTINY827, ATTINY824, ATTINY826, AVR32DB32, AVR64DB48, AVR64DB64, AVR64DB28, AVR32DB28, AVR64DB32, AVR32DB48, eta AVRXNUMXDBXNUMX.
Erretiratutako gailuaren euskarria jada ez dago erabilgarri AVR pieza hauetan: AVR16DA28, AVR16DA32 eta AVR16DA48.
2.31 bertsioa
Bat ere ez.
2.30 bertsioa
Datuen hasieratzea saihesteko aukera berria -mno-data-ini t kontrolatzaile aukera berri batek datuak hasieratzea eta bss atalak garbitzea eragozten du. Do_ copy_ datuen eta d o_ clear_ bss sinboloen irteera kenduz funtzionatzen du muntaian files, eta horrek eragotziko du estekatzaileak errutina horiek sartzea.
Optimizazio hobetuak Optimizazio-hobekuntza ugari egin dira, besteak beste, itzulera-jarraibide erredundanteak kentzea, jauzi batzuk ezabatzea bit-it-is instrukzio baten ondoren, eta prozedura-abstrakzioa eta prozesu hau errepikatzeko gaitasuna hobetu dira.
Optimizazio horietako batzuk kontrolatzeko aukera gehigarriak daude orain, zehazki -f sekzioko aingurak, zeinak objektu estatikoen sarbidea ikur batekin egin ahal izateko aukera ematen baitu; -mpai derations=n, prozedurazko abstrakzio-iterazioen kopurua 2 lehenespenetik aldatzeko aukera ematen duena; eta, -mpa- call cost- shortcall, abstrakzio prozesal oldarkorragoa egiten duena, estekatzaileak dei luzeak lasaitu ditzakeen itxaropenarekin. Azken aukera honek kodearen tamaina handitu dezake azpiko hipotesiak betetzen ez badira.
Gailu laguntza berria AVR pieza hauetarako laguntza eskuragarri dago: AVR16DA28, AVR16DA32,
AVR16DA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR128DB28, AVR128DB32, AVR128DB48 eta AVR128DB.
Erretiratutako gailuaren euskarria Jada ez dago laguntza erabilgarri AVR zati hauetarako: ATA5272, ATA5790, ATA5790N, ATA5791, ATA5795, ATA6285, ATA6286, ATA6612C, ATA6613C, ATA6614Q, ATA6616C, ATA6617C eta ATA664251.
2.29 bertsioa (Segurtasun funtzionalaren bertsioa)
Goiburua file konpiladore integratuetarako Konpilatzaileak MISRA bezalako hizkuntza-zehaztapenekin bat egin dezakeela ziurtatzeko goiburua file, automatikoki sartzen dena , eguneratu da. Goiburu honek eraikitako funtzio guztien prototipoak ditu, hala nola _buil tin _avrnop () eta _buil tin_ avr delay_ zikloak () . Baliteke integrazio batzuk ez izatea MISRA bat; hauek ezaba daitezke definitzen _Xe_ STRICT_ MISRA konpiladorearen komando-lerroan gehituz. Eraikitakoak eta haien deklarazioak eguneratu dira zabalera finko motak erabiltzeko.
2.20 bertsioa
Gailu laguntza berria AVR pieza hauetarako laguntza dago eskuragarri: ATTINY1624, ATTINY1626 eta ATTINY1627.
Egokipen onenaren esleipena Konpilagailuko egokitzerik onena (BFA) hobetu da, atalak optimizazio hobea ahalbidetzen duen ordena batean eslei daitezen. BFAk orain izendun helbide-espazioak onartzen ditu eta hobeto kudeatzen du datuen hasieratzea.
Prozeduraren abstrakzioa hobetua Prozedurazko abstrakzio-optimizazioak kode-sekuentzia gehiagotan egiten dira orain. Optimizazio honek kode-tamaina handitu izan zezakeen aurreko egoerei aurre egin zaie optimizazio-kodea estekatzailearen zabor-bilketa prozesuaren berri emanez.
AVR Muntatzailerik ez izatea AVR Assembler jada ez dago banaketa honekin.
2.19 bertsioa (Segurtasun funtzionalaren bertsioa)
Bat ere ez.
2.10 bertsioa
Kode-estaldura Argitalpen honek kode-estaldura-eginbide bat dakar, proiektu baten iturburu-kodea zenbateraino exekutatu den aztertzen errazten duena. Erabili -mcodecov=ram aukera gaitzeko. Programa zure hardwarean exekutatu ondoren, kode-estalduraren informazioa bilduko da gailuan, eta hau MPLAB X IDEra transferitu eta bistaratu ahal izango du kode-estaldura-plugin baten bidez. Ikus IDE dokumentazioa plugin honi buruzko informazioa lor daiteke. #pragma mcodecov erabil daiteke ondorengo funtzioak estaldura-analisitik baztertzeko. Egokiena, pragmaren hasieran gehitu behar da file osoa hori baztertzeko file estalduraren analisitik. Bestela, atributua ( (mcodecov) ) erabil daiteke estaldura-analisitik funtzio zehatz bat baztertzeko.
Gailuaren deskribapena files Gailu berri bat file avr chipinfo izenekoa. html konpiladorearen banaketaren docs direktorioan dago. Hau file konpilatzaileak onartzen dituen gailu guztiak zerrendatzen ditu. Egin klik gailuaren izenean, eta orri bat irekiko du gailu horretarako baimendutako konfigurazio bit ezarpen/balio bikote guztiak erakusten dituena, exekin.amples.
Abstrakzio prozedurazkoa Prozedurazko abstrakzio optimizazioak, muntaketa-kodearen bloke arruntak bloke horren ateratako kopia baterako deiak ordezkatzen dituztenak, gehitu dira konpilatzaileari. Hauek aparteko aplikazio batek egiten ditu, eta konpilatzaileak automatikoki deitzen du 2., 3. maila edo optimizazioak hautatzen dituenean. Optimizazio hauek kodearen tamaina murrizten dute, baina exekuzio-abiadura eta kodea arazketa-gaitasuna murriztu ditzakete.
Abstrakzio prozedurala optimizazio-maila altuagoetan desgaitu daiteke -mno-pa aukera erabiliz, edo optimizazio-maila baxuagoetan gaitu daiteke (zure lizentziaren arabera) -mpa erabiliz. Objektu baterako desgaitu daiteke file -mno-pa-on- erabilizfile=fileizena, edo funtzio baterako desgaituta dago -mno-pa function= funtzioan erabiliz.
Zure iturburu-kodearen barruan, prozedura-abstrakzioa desgaitu daiteke funtzio baterako _attribute_ ( (nopa)) funtzioaren definizioarekin erabiliz, edo _nopa erabiliz, atributuan ((nopa, noinline)) hedatzen dena) eta, beraz, funtzio inlinea gertatzea eragozten du. eta inlined kodearen abstrakzioa egotea.
Blokeatu bit euskarria pragman #pragma konfigurazioa orain AVR blokeo-bitak zein beste konfigurazio-bitak zehazteko erabil daiteke. Egiaztatu avr txiparen informazioa. html file (Goian aipatua) ezarpen/balio bikoteak pragma honekin erabiltzeko.
Gailu laguntza berria Parte hauetarako laguntza dago eskuragarri: AVR28DA128, AVR64DA128, AVR32DA128 eta AVR48DA128.
2.05 bertsioa
Bit gehiago zure diruaren truke Konpilatzaile eta lizentzia-kudeatzaile honen macOS bertsioa 64 biteko aplikazioa da orain. Honek konpilatzailea macOS-en azken bertsioetan abisurik gabe instalatuko eta exekutatzen dela ziurtatuko du.
Const objektuak programaren memorian Konpilatzaileak orain konst-kualifikatutako objektuak jar ditzake programaren Flash memorian, hauek RAMan egon beharrean. Konpilatzailea aldatu egin da, konst-kualifikatutako datu globalak programaren flash memorian gorde daitezen eta datu horietara zuzenean zein zeharka programa-memoriaren instrukzio egokiak erabiliz atzitu ahal izateko. Ezaugarri berri hau lehenespenez gaituta dago baina desgaitu daiteke -mno-const-data-in-progmem aukera erabiliz. Avrxmega3 eta avrtiny arkitekturarentzat, eginbide hau ez da beharrezkoa eta beti desgaituta dago, programaren memoria gailu hauen datu-helbide-espazioan mapatzen baita.
Doan estandarra Lizentziarik gabeko (Doako) konpiladore honen bertsioek orain 2. mailara arteko optimizazioak ahalbidetzen dituzte. Honek, lehen lizentzia estandarra erabiliz posible zenaren antzeko irteera ahalbidetuko du, baina ez berdina.
Ongi etorri AVRASM2 2 biteko gailuetarako AVRASM8 muntatzailea XC8 konpiladorearen instalatzailean sartzen da orain. Muntatzaile hau ez du XC8 konpilatzaileak erabiltzen, baina eskuz idatzitako muntaia iturrian oinarritutako proiektuetarako eskuragarri dago.
Gailu laguntza berria Parte hauetarako laguntza dago eskuragarri: ATMEGA1608, ATMEGA1609, ATMEGA808 eta ATMEGA809.
2.00 bertsioa
Goi-mailako Gidaria Gidari berri bat, xc8-cc izenekoa, aurreko avr-gcc kontrolatzailearen eta xc8 kontrolatzailearen gainetik dago orain, eta xede gailuaren hautapenaren arabera konpiladore egokia dei dezake. Gidari honek GCC estiloko aukerak onartzen ditu, exekutatzen ari den konpiladorearentzat itzultzen direnak edo itzultzen direnak. Gidari honek antzeko semantika duten aukera-multzo antzeko bat AVR edo PIC helbururekin erabiltzeko aukera ematen du eta, beraz, konpilatzailea deitzeko gomendatutako modua da. Beharrezkoa izanez gero, avr-gcc kontrolatzaile zaharrari zuzenean deitu daiteke aurreko konpilatzaileen bertsioetan onartzen zituen estilo zaharreko aukerak erabiliz.
C Interfaze arrunta Konpiladore hau MPLAB Common C Interface-ra moldatu daiteke, iturburu-kodea errazago eraman daiteke MPLAB XC konpilatzaile guztietan. -mext=cci aukerak ezaugarri hau eskatzen du, hizkuntza-luzapen askotarako ordezko sintaxia gaituz.
Liburuzain gidari berria Liburuzain gidari berri bat aurreko PIC libr liburuzainaren eta AVR avr-ar liburuzainaren gainean kokatzen da. Gidari honek GCC artxibatzaile estiloko aukerak onartzen ditu, exekutatzen ari den liburuzainarentzat itzultzen direnak edo itzultzen direnak. Gidari berriak antzeko semantika duten aukera-multzo bat erabiltzeko aukera ematen du edozein PIC edo AVR liburutegia sortzeko edo manipulatzeko. file eta horrela liburuzaina deitzeko gomendatutako modua da. Oinarrizko proiektuetarako behar izanez gero, aurreko liburuzainari zuzenean deitu ahal izango zaio aurreko konpilatzaileen bertsioetan onartzen zituen estilo zaharreko aukerak erabiliz.
Migrazio Arazoak
Honako hauek dira orain konpilatzaileak modu ezberdinean kudeatzen dituen ezaugarriak. Baliteke aldaketa hauek zure iturburu-kodea aldatzea behar izatea, kodea konpiladore-bertsio honetara eramaten baduzu. Azpitituluetako bertsio-zenbakiak hurrengo aldaketak onartzen dituen lehen konpilatzailearen bertsioa adierazten du.
2.40 bertsioa
Bat ere ez.
2.39 bertsioa (Segurtasun funtzionalaren bertsioa)
Bat ere ez.
2.36 bertsioa
Bat ere ez.
2.35 bertsioa
Hari-oinarrien manipulazioa (XCS-2420) Beste XC konpilatzaile batzuekin koherentzia bermatzeko, XC8 string-to funtzioak, strtol () etab., adibidez, ez dira sarrerako kate bat bihurtzen saiatuko zehaztutako oinarria 36 baino handiagoa bada eta horren ordez errno ezarriko dute EINVAL. C estandarrak ez du zehazten funtzioen portaera oinarrizko balio hori gainditzen denean.
Abiadura-optimizazio desegokiak Prozedurazko abstrakzio-optimizazioak gaitzen ari ziren 3. mailako optimizazioak (-03) hautatzean. Optimizazio hauek kodearen tamaina murrizten dute kodearen abiaduraren kontura, beraz, ez lukete egin behar. Optimizazio-maila hau erabiltzen duten proiektuek kode-tamainan eta exekuzio-abiaduran desberdintasunak ikus ditzakete bertsio honekin eraikitzen direnean.
Liburutegiaren funtzionaltasuna C liburutegiko funtzio estandar askoren kodea orain Microchip-en Liburutegi Estandar bateratutik dator, eta egoera batzuetan portaera ezberdina izan dezake avr-libc liburutegiak emandakoarekin alderatuta. Adibidezample, jada ez da beharrezkoa lprintf_flt liburutegian estekatzea (-print _flt aukera) formateatutako IO euskarria aktibatzeko float-format zehaztatzaileentzako. Microchip Unified Standard Library-ren IO adimendunak aukera hau erredundantea bihurtzen du. Gainera, _p atzizkidun errutinak erabiltzea kate eta memoria funtzioetarako (adibidez, strcpy_P () etab.. .. ) flash-en const kateetan funtzionatzen dutenak ez dira beharrezkoak. C errutina estandarrak (adibidez, strcpy ()) behar bezala funtzionatuko du datu horiekin const-data-in-program-memory funtzioa gaituta dagoenean.
2.32 bertsioa
Bat ere ez.
2.31 bertsioa
Bat ere ez.
2.30 bertsioa
Bat ere ez.
2.29 bertsioa (Segurtasun funtzionalaren bertsioa)
Bat ere ez.
2.20 bertsioa
DFP diseinua aldatu da Konpilatzaileak DFPek (Gailu-Familien Paketeak) erabiltzen duen beste diseinu bat hartzen du orain. Horrek esan nahi du DFP zaharrago batek agian ez duela funtzionatuko bertsio honekin, eta konpilatzaile zaharrek ezin izango dituzte azken DFPak erabili.
2.19 bertsioa (Segurtasun funtzionalaren bertsioa)
Bat ere ez.
2.10 bertsioa
Bat ere ez
2.05 bertsioa
Const objektuak programaren memorian Kontuan izan, lehenespenez, konst-kalifikatutako objektuak programaren memorian kokatu eta sartuko direla (hemen azaltzen den moduan). Horrek zure proiektuaren tamainan eta exekuzio abiaduran eragingo du, baina RAM erabilera murriztu beharko luke. Ezaugarri hau desgaitu daiteke, behar izanez gero, -mnoconst- da ta-in-progmem aukera erabiliz.
2.00 bertsioa
Konfigurazio-fusibleak Gailuaren konfigurazio-fusibleak orain konfigurazio pragma bat erabiliz programatu daitezke, eta ondoren, ezarpen-balio-pareak, fusiblearen egoera zehazteko, adibidez.
#pragma config WDT0N = EZAR
#pragma config B0DLEVEL = B0DLEVEL_4V3
Objektu eta funtzio absolutuak Objektuak eta funtzioak memorian helbide zehatz batean jar daitezke orain CCI _at (helbidea) espezifikatzailea erabiliz, adibidezample: #sartu int foobar at(Ox800100); char at(Ox250) get ID(int offset) { … } Zehaztaile honen argumentuak lehen byte edo instrukzioa kokatuko den helbidea adierazten duen konstante bat izan behar du. RAM helbideak 0x800000 desplazamendua erabiliz adierazten dira. Gaitu CCI funtzio hau erabiltzeko.
Eten funtzioaren sintaxi berria Konpilatzaileak orain CCI eten (num) zehatzailea onartzen du C funtzioak eten-kudeatzaileak direla adierazteko. Espezifikatzaileak eten-zenbaki bat hartzen du, adibidezample: #sartu void eten (SPI STC_ vect _num) spi Isr (void) { … }
Arazo finkoak
Honako hauek dira konpilatzaileari egin zaizkion zuzenketak. Hauek sortutako kodean akatsak konpondu ditzakete edo konpilatzailearen funtzionamendua erabiltzailearen gidan aurreikusitako edo zehaztutakoaren arabera alda dezakete. Azpitituluetako bertsio-zenbakiak hurrengo arazoetarako konponketak izango dituen lehen konpilatzailearen bertsioa adierazten du. Tituluan kortxeteen etiketa(k) gai horren identifikazioa da jarraipenaren datu-basean. Hauek erabilgarriak izan daitezke laguntzarekin harremanetan jarri behar baduzu.
Kontuan izan gailuaren arazo espezifikoak gailuarekin lotutako Device Family Pack (DFP) konpontzen direla. Ikus MPLAB paketeen kudeatzailea DFPetan egindako aldaketei buruzko informazioa lortzeko eta azken paketeak deskargatzeko.
2.40 bertsioa
Lasaiegi (XCS-2876) -mrelax aukera erabiltzean, konpilatzaileak ez zituen atal batzuk batera esleitzen, eta ondorioz, kode-tamaina ezin hobea izan zen. Baliteke hau MUSL liburutegi berriak erabiltzen zituen kodearekin edo ikur ahulekin gertatu izana.
Kartografia-eginbidea ez dago desgaituta abisuan adierazi bezala (XCS-2875) Cost-data-in-config mappedprogmem funtzioa gaitzen ari den cost-data-in-proem funtzioan oinarritzen da. Cost-data-ipconfig-mapped-proem funtzioa aukera erabiliz esplizituki gaituta bazegoen eta cost-data-inprogmem funtzioa desgaituta bazegoen, estekaren urratsak huts egin zuen, abisu-mezu bat kons data- in-config-mapped- esan arren. proem funtzioa automatikoki desgaituta zegoen, eta hori ez zen guztiz zuzena. Const-data-in-config-mapped-proem funtzioa guztiz desgaituta dago egoera honetan.
DFP aldaketak NVMCTRL zuzen atzitzeko (XCS-2848) AVR64EA gailuek erabiltzen duten exekuzio-denbora abiarazteko kodeak ez zuen kontuan hartu NVMCTRL erregistroa Konfigurazio-aldaketaren babespean (CCP) pean zegoela eta ezin izan zuen IO SFR ezarri const-data-in configpped-proem konpilatzaileak erabiltzen duen orrialdean. ezaugarria. AVR-Ex_DFP 2.2.55 bertsioan egindako aldaketek exekuzio-denbora abiarazteko kodea erregistro honetan zuzen idazteko aukera emango dute.
DFP aldaketak flash mapak ekiditeko (XCS-2847) AVR128DA28/32/48/64 Silicon Erratan (DS80000882) txostenean jakinarazitako flash-mapping gailuaren eginbidearekin arazo baten konponbidea ezarri da. Const-data-in-config-mapped-proem konpiladorearen funtzioa ez da lehenespenez aplikatuko kaltetutako gailuetan, eta aldaketa hau AVR-Ex_DFP 2.2.160 bertsioan agertuko da.
Eraikitze-errorea sinhf edo coshf-rekin (XCS-2834) Sinhf () edo coshf () liburutegiko funtzioak erabiltzen saiatzeak esteka-errore bat eragin du, definitu gabeko erreferentzia bat deskribatuz. Erreferentzia falta den funtzioa konpiladorearen banaketan sartu da.
Eraiki erroreak nopa-rekin (XCS-2833) Nopa atributua () gisa erabiliz bere mihiztatzaile-izena zehaztuta duen funtzio batekin erabiltzeak errore-mezuak abiarazi zituen mihiztatzailetik. Konbinazio hau ez da posible.
Erakusleen argumentuekin funtzio bariadikoaren hutsegitea (XCS-2755, XCS-2731) Argumentu kopuru aldakorra duten funtzioek 24 biteko (_memo mota) erakusleak pasatzea espero dute argumentu aldagaien zerrendan kostu-datuak-en-proem funtzioa gaituta dagoenean. Datu-memoriaren erakusleak ziren argudioak 16 biteko objektu gisa pasatzen ari ziren, eta, azkenean, irakurtzen zirenean kodea hutsegitea eragiten zuten. Cons data-in-proem funtzioa gaituta dagoenean, 16 biteko erakusleen argumentu guztiak 24 biteko erakusle bihurtzen dira. strtoxxx liburutegiko funtzioek huts egiten dute (XCS-2620) Const-data-in-proem funtzioa gaituta zegoenean, strtoxxx liburutegiko funtzioetan sartu parametroa ez zen behar bezala eguneratu programaren memorian ez dauden iturburu-kateen argumentuetarako.
Igorpen baliogabeen alertak (XCS-2612) Konpilatzaileak errore bat emango du kostu-in-proem funtzioa gaituta badago eta kate literal baten helbidea datu-helbide-espaziora esplizituki botatzen bada (const kalifikatzailea kenduz), adibidez.ample, (uint8 t *) "Kaixo mundua!". Abisua sortzen da helbidea baliogabea izan badaiteke datu-erakusle bat datu helbide-espaziora esplizituki igortzen denean.
Hasieratu gabeko konst objektuak kokatzea (XCS-2408) Hasieratu gabeko objektu konst eta konst v olatileak ez ziren programaren memorian jartzen programaren memoria osoa edo zati bat datu helbide-espazioan mapatzen duten gailuetan. Gailu hauetarako, horrelako objektuak programaren memorian jartzen dira, eta haien funtzionamendua beste gailuekin koherentea da.
2.39 bertsioa (Segurtasun funtzionalaren bertsioa)
Bat ere ez.
2.36 bertsioa
Errorea atzeratzean (XCS-2774) Doako moduko optimizazio lehenetsian egindako aldaketa txikiek eragiketa-adierazpenen atzerapen-funtzioetan etengabeko tolestea eragotzi zuten, eta ondorioz, kontaktuak ez diren bezala tratatu ziren eta errorea eragin zuten: _buil tin avr delay_ cycles expects ac ompile denbora osoko konstantea.
2.35 bertsioa
Alboko esleipena _at erabiliz (XCS-2653) Izen bereko eta ()-n erabiliz atal bateko hainbat objekturen lekuen ondoko esleipenak ez zuen behar bezala funtzionatu. Adibidezample: constchararrl [ ] at tri butte ((sect on (".misses"))) at (Ox50 0 ) = {Oxo , Ox CD} ; cost char arr2[ ] at tri butte ((section(“.my s eke”))) = {Idiak, Idi FE }; arr2 jarri beharko luke berehala arilaren ondoren.
Atalaren hasierako helbideak zehaztea (XCS-2650) -Wal, –section-start aukerak isilean huts egiten zuen atalak jarritako hasierako helbidean. Arazo hau konpondu da pertsonalizatutako edozein ataletarako; hala ere, ez du funtzionatuko inongo atal estandarretan, adibidez. testua edo. bss, -Wl, -T aukera erabiliz jarri behar dena.
Linker-ek huts egiten du lasaitzean (XCS-2647) -relax optimizazioa gaitu zenean eta memorian sartzen ez ziren kode edo datu-atalak zeudenean, lokailua huts egin zuen. Orain, halako egoera batean, errore-mezuak igortzen dira ordez.
EEPROM sarbide txarra (XCS-2629) Leproma _read_ bloke errutinak ez zuen behar bezala funtzionatu Mega gailuetan -monist-data-in-proem aukera gaituta zegoenean (egoera lehenetsia da), eta ondorioz EEPROM memoria ez zen behar bezala irakurri.
Memoria esleipen baliogabea (XCS-2593, XCS-2651) -Testua edo -Tata estekatzailea aukera denean (adibidezamp-Wl kontrolatzaile-aukera erabiliz pasatu den fitxategia) zehazten da, dagokion testu/datuen eskualdearen jatorria eguneratu da; hala ere, amaierako helbidea ez zen horren arabera egokitu, eta horrek eskualdeak xede gailuaren memoria-tartea gainditzea eragin zezakeen.
ATtiny eten-kode baliogabea (XCS-2465) Tatin gailuetarako eraikitzean eta optimizazioak desgaitu zirenean (-00), baliteke eten-funtzioek eragiketa-sortaz kanpoko mihiztatzaile-mezuak abiarazi izana.
Aukerak ez dira pasatzen (XCS-2452) -Wl aukera estekatzaile-aukera anitzekin eta komaz bereiziekin erabiltzean, estekatzaile-aukera guztiak ez ziren estekatzaileari pasatzen.
Errore bat gertatu da programaren memoria zeharka irakurtzean (XCS-2450) Zenbait kasutan, konpilatzaileak barne-errore bat sortu zuen (insn ezagutezina) erakusle batetik programaren memoriara bi byte-balioa irakurtzean.
2.32 bertsioa
Liburutegiaren bigarren sarbidea huts egin du (XCS-2381) xc8-ar-en Windows bertsioa deitzea. exe liburutegiko artxiboak bigarren aldiz lehendik dagoen liburutegiko artxibo batera atzitzeko, baliteke huts egin izana errore-mezua aldatu ezin izatearekin.
2.31 bertsioa
Azaldu gabeko konpiladoreen hutsegiteak (XCS-2367) Sistemaren behin-behineko direktorioa puntu bat barne hartzen zuen bide batean ezarrita zuten Windows plataformetan exekutatzen ari zarenean'.' karakterea, baliteke konpilatzaileak huts egin izana exekutatu.
2.30 bertsioa
Etiketa globalak gaizki kokatu dira eskema egin ondoren (XCS-2299) Baliteke prozedurazko abstrakzioaren arabera bereizten diren muntaketa-sekuentzietan etiketa globalak jartzen dituen eskuz idatzitako muntaketa-kodea behar bezala ez kokatuta egon.
Istripu lasaigarria (XCS-2287) Baliteke -merlad aukera erabiltzeak estekatzailea huts egitea eragin izana buztan-jauziaren erlaxazio-optimizazioek atal baten amaieran ez zeuden ret instrukzioak kentzen saiatu zirenean.
Huts egin du etiketak balio gisa optimizatzean (XCS-2282) "Etiketak balio gisa" GNU C hizkuntzaren luzapena erabiliz kodeak prozedura-abstrakzio-optimizazioak huts egitea eragin zuen, Outlined VMA barrutiaren konponketa-errore batekin.
Ez da hain konstantea (XCS-2271) Hasteko () eta beste funtzio batzuen prototipoak jada ez zehaztu kostu-kalifikatzaile ez-estandarra itzulitako kate-erakusleetan -monist-data inprogmem funtzioa desgaituta dagoenean. Kontuan izan avrxmega3 eta avertin gailuekin eginbide hau betirako gaituta dagoela.
Hasierako galduak (XCS-2269) Itzulpen-unitate bateko aldagai bat baino gehiago atal batean jartzen zenean (atala edo atributua ((atala)) erabiliz), eta lehen aldagaia zero hasieratuta zegoenean edo hasieratzailerik ez zuenean, itzulpen-unitate bereko beste aldagai batzuen hasieratzaileak. atal berean jartzen zirenak galdu ziren.
2.29 bertsioa (Segurtasun funtzionalaren bertsioa)
Bat ere ez.
2.20 bertsioa
Errore bat komando luzeekin (XCS-1983) AVR helburu bat erabiltzean, baliteke konpilatzailea a batekin gelditu izana file ez da aurkitu errorea, komando-lerroa oso handia bazen eta karaktere bereziak baditu, hala nola komatxoak, kontrako barrak, etab.
Esleitu gabeko rodata atala (XCS-1920) AVR lokailuak huts egin du rodata atal pertsonalizatuetarako memoria esleitu avrxmega3 eta avrtiny arkitekturak eraikitzean, memoria gainjartze-erroreak sor ditzakeela.
2.19 bertsioa (Segurtasun funtzionalaren bertsioa)
Bat ere ez.
2.10 bertsioa
Lekualdatze-hutsak (XCS-1891) Egokitzen den esleitzaile onena memoriaren "zuloak" uztea izan zen atalen artean lokailua erlaxatu ondoren. Memoria zatikatzeaz gain, ordenagailuaren jauzi edo deiak barrutitik kanpo geratzen diren estekatzaileen lekualdatze akatsak izateko aukera areagotu zuen.
Erlaxazioaren bidez eraldatu gabeko argibideak (XCS-1889) Lokatzaileen erlaxazioa ez da gertatu jauzi edo dei jarraibideetarako, zeinen helburuak erlaxatuta egonez gero irisgarri bihurtzen diren.
Falta funtzionaltasuna (XCSE-388) Hainbat definiziotik , hala nola, clock_ div_ t eta clock_prescale_set () ez ziren gailuetarako definitu, ATmega324PB, ATmega328PB, ATtiny441 eta ATtiny841 barne.
Makroak falta dira Aurreprozesadorearen makroak_ xcs _MODE_, _xcs VERSION, _xc eta xcs ez zituen konpilatzaileak automatikoki definitu. Hauek eskuragarri daude orain.
2.05 bertsioa
Barne-konpilatzailearen errorea (XCS-1822) Windows-en eraikitzean, baliteke barne-konpiladorearen errore bat sortu izana kodea optimizatzean.
Ez da RAM gainezkatzea hauteman (XCS-1800, XCS-1796) Eskuragarri dagoen RAM hori gainditzen zuten programak ez zituen konpilatzaileak hauteman zenbait egoeratan, eta ondorioz, exekuzio-kodearen hutsegite bat izan zen.
Utzitako flash memoria (XCS-1792) Avrxmega3 eta avrtiny gailuetarako, baliteke flash memoriaren zatiak programatu gabe utzi izana MPLAB X IDE-k.
Ezin izan da exekutatu nagusia (XCS-1788) Programak aldagai global definitu ez zuen egoera batzuetan, abiarazte-kodea ez zen irten eta () funtzio nagusira ez zen inoiz iritsi.
Memoriaren informazio okerra (XCS-1787) Avrxmega3 eta avrtiny gailuetarako, avr-size programak irakurtzeko soilik diren datuek programaren memoriaren ordez RAM kontsumitzen zutela jakinarazi zuen.
Programaren memoria oker irakurrita (XCS-1783) Baliteke datu-helbideen espazioan mapatutako programa-memoria duten eta PROGMEM makro/atributua erabiliz objektuak definitzen dituzten gailuetarako konpilatutako proiektuek objektu horiek helbide okerretik irakurri izana.
Barne-errorea atributuekin (XCS-1773) Barne-errore bat gertatu da erakusle-objektuekin definitu baduzu
_at () edo attribute() tokenak erakuslearen izenaren eta deserreferentzia motaren artean, adibidezample, char *
_at (0x80015 0) cp; Kode hori aurkitzen bada abisua emango da orain.
Ezin izan da nagusia exekutatu (XCS-1780, XCS-1767, XCS-1754) EEPROM aldagaiak erabiltzeak edo konfigurazio pragma erabiliz fusibleak definitzeak datuen hasieraketa okerra eragin izana eta/edo programaren exekuzioa blokeatu izana exekuzio-denboran abiarazteko kodean, main () iritsi aurretik.
Fusion-errorea gailu txikiekin (XCS-1778, XCS-1742) attiny4/5/9/10/20/40 gailuek goiburuan zehaztutako fusiblearen luzera okerra zuten fileestekatzaile-erroreak eragiten dituztenak, fusibleak definitzen dituen kodea eraikitzen saiatzean.
Segmentazio-matxura (XCS-1777) Etengabeko segmentazio akats bat zuzendu da.
Muntatzaileen istripua (XCS-1761) Baliteke avr-as mihiztatzailea huts egin izana konpilatzailea Ubuntu 18 pean exekutatu zenean.
Garbitu gabeko objektuak (XCS-1752) Baliteke hasierarik gabeko biltegiratze estatikoko iraupeneko objektuak exekuzio-denborako abiarazte-kodeak garbitu ez izatea.
Gailuaren zehaztapen gatazkatsua ez ikusi egin da (XCS-1749) Konpilatzaileak ez zuen errorerik sortzen gailuen zehaztapen-aukera anitz erabili zirenean eta gailu desberdinak adierazi zituenean.
Memoriaren ustelkeria pila bidez (XCS-1748) Heap_ hasierako ikurra gaizki ezartzen ari zen, eta ondorioz aldagai arruntak hondatzeko aukera zegoen.
Lokatzailearen lekualdatze-errorea (XCS-1739) Baliteke estekatzailearen lekualdatze-errore bat igorri izana kodeak rjmp edo rcall bat zeudela 4k byte-ra helburu batekin.
2.00 bertsioa
Bat ere ez.
Arazo ezagunak
Honako hauek dira konpilatzailearen funtzionamenduaren mugak. Hauek kodeketa-murrizketa orokorrak izan daitezke, edo
erabiltzailearen eskuliburuan jasotako informazioarekiko desbideratzeak. Tituluan kortxeteen etiketa(k) gai horren identifikazioa da jarraipenaren datu-basean. Hau onuragarria izan daiteke laguntzarekin harremanetan jarri behar baduzu. Etiketarik ez duten elementuak funtzionamendu modua deskribatzen duten mugak dira eta litekeena da betirako indarrean egongo direnak.
MPLAB X IDE integrazioa
MPLAB IDE integrazioa Konpilatzailea MPLAB IDEtik erabili behar bada, MPLAB IDE instalatu behar duzu Konpilatzailea instalatu aurretik.
Kodea sortzea
PA memoria-esleipenaren hutsegitea (XCS-2881) Prozedurazko abstrakzio-optimizatzaileak erabiltzean, estekatzaileak memoria-esleipen-erroreen berri izan dezake kode-tamaina gailuan eskuragarri dagoen programa-memoria kopurutik hurbil dagoenean, nahiz eta programak erabilgarri dagoen espaziora egokitzeko gai izan.
Smart-IO ez hain adimenduna (XCS-2872) Konpilatzailearen smart-io funtzioak sprint funtziorako kode baliozkoa baina azpi-optimoa sortuko du coast-data-in-proem funtzioa desgaitu bada edo gailuak bere flash guztia datu-memorian mapatuta badu.
Are gutxiago Smart-IO adimenduna (XCS-2869) Konpiladorearen smart-io funtzioak kode baliozkoa baina ezin hobea sortuko du -floe eta -fno-buil tin aukerak biak erabiltzen direnean.
Irakurtzeko soilik den datuen kokapen egokia (XCS-2849) Lokatzaileak ez ditu ezagutzen APPCODE eta APPDATA memoria atalak, ezta [Ez-]Irakurri-Idatzi bitartean-zatiketak memoria mapan. Ondorioz, aukera txikia dago lokailuak irakurtzeko soilik datuak memoria eremu desegoki batean esleitzeko. Datu okerra izateko aukera handitzen da coast-data-in-pragma funtzioa gaituta badago, batez ere coast-data-in-config-mapped-proem funtzioa ere gaituta badago. Ezaugarri hauek desgaitu egin daitezke behar izanez gero.
Objektua file prozesatzeko agindua (XCS-2863) Objektuen ordena fileLokatzaileak prozesatu egingo ditu prozesualak abstrakzio optimizazioen erabileraren arabera desberdinak izan daitezke (-mpa aukera). Honek hainbat modulutan funtzio ahulak definitzen dituen kodean bakarrik eragingo luke.
Lokatzailearen errorea absolutuarekin (XCS-2777) Objektu bat RAMaren hasieran helbide batean absolutua egin denean eta hasieratu gabeko objektuak ere definitu direnean, estekatzaile-errore bat ager daiteke.
Esnatzeko ID laburrak (XCS-2775) ATA5700/2 gailuetarako, PHID0/1 erregistroak 16 biteko zabalera baino ez dira 32 biteko.
Lokatzaileak huts egin du ikurra deitzean (XCS-2758) Lokatzaileak huts egin dezake -merlad kontrolatzailearen aukera erabiltzen bada iturburu-kodeak -Wl, –defsym estekatzailearen aukera erabiliz definitu den ikur bati deitzen dionean.
Hasierako okerra (XCS-2679) Desadostasuna dago byte-tamainako objektu global/estatiko batzuen hasierako balioak datuen memorian eta aldagaiak exekuzioan atzituko diren artean.
gaizki hasita hutsik ezartzen du (XCS-2652) Adierazitako () bidez bihurtzeko gai-kate batek formatu esponentzialean koma mugikorreko zenbaki bat dela dirudien kasuetan eta e karaktere baten ondoren ustekabeko karaktere bat dagoenean, helbide hutsak, ematen bada, karaktereari seinalatu egingo du ondoren. e-a eta ez e-a bera. Adibidezample: adierazia(“hooey”, hutsik); x karakterea seinalatuz hutsik egingo du.
Zeharkako funtzio-deiak txarrak (XCS-2628) Zenbait kasutan, egitura baten zati gisa gordetako funtzio-erakusle baten bidez egindako funtzio-deiak huts egin dezakete.
strtof-ek zero itzultzen du flotagailu hamaseimaletarako (XCS-2626) strtof () et al eta scanf () et al liburutegiko funtzioek, berretzailerik zehazten ez duten koma mugikorreko zenbaki hamaseimal bat bihurtuko dute beti.
zero. Adibidezample: stator(“Hontza”, &huts); 0 balioa itzuliko du, ez 1.
Pila-aholkulariaren mezularitza zehatza (XCS-2542, XCS-2541) Zenbait kasutan, pilaren aholkulariaren abisua ez da igortzen errekurtsioari edo erabilitako pila zehaztugabeari buruz (agian alloca() erabiliz).
Huts egin du bikoiztutako eten-kodearekin (XCS-2421) Eten-funtzio batek baino gehiagok gorputz bera dutenean, konpilatzaileak eten-funtzio baten irteera bestera deitzea izan dezake. Honen ondorioz, dei-zapatutako erregistro guztiak alferrik gordeko dira, eta etenaldiak aktibatu egingo dira uneko eten kudeatzailearen epilogoa exekutatu baino lehen ere, eta horrek kodea hutsegitea eragin dezake.
Const objektuak ez daude programaren memorian (XCS-2408) Avrxmega3 eta avertins proiektuetarako const objektu ez-idealizatuak datuen memorian jartzen dira, abisu batek programaren memorian jarri direla iradokitzen badu ere. Horrek ez die eragingo programa-memoria datuen memoria-espazioan mapatuta ez duten gailuei, ezta hasieratutako objektuei ere eragingo.
Irteera txarra DFP bide baliogabearekin (XCS-2376) Konpilatzailea DFP bide baliogabe batekin eta "spec" batekin deitzen bada file hautatutako gailurako badago, konpilatzaileak ez du falta den gailuen familia paketearen berri ematen ari eta, horren ordez, "zehaztapena" hautatzen du file, eta horrek irteera baliogabea sor dezake. 'zehaztapena' fileBaliteke banatutako DFPekin eguneratuta ez egotea eta barne-konpiladoreen probetan soilik erabiltzeko pentsatuta.
Memoria gainjartzea detektatu gabe (XCS-1966) Konpilatzailea ez da detektatzen helbide batean (at() bidez) eta () atalaren zehazlea erabiliz eta helbide berdinarekin lotuta dauden objektuen memoria gainjartzea.
Liburutegiko funtzioekin eta _memearekin huts egin du (XCS-1763) Baliteke _memo helbide-espazioan argumentu bat duten flotatzaile linbiko deitutako funtzioak huts egitea. Kontuan izan liburutegiko errutinak C operadore batzuetatik deitzen direla, beraz, adibidezample, honako kodea eragiten du: return regFloatVar > memxFloatVar;
Inplementazio linbiko mugatua (AVRTC-731) ATTiny4/5/9/10/20/40 produktuetarako, C / Matematika liburutegi estandarra inplementazioa oso mugatua da edo ez dago.
Programaren memoria-mugak (AVRTC-732) 128 kb-tik gorako programa-memoriaren irudiak tresna-kateak onartzen ditu; hala ere, badaude estekatzaileak erlaxaziorik gabe eta errore-mezu lagungarririk gabe bertan behera uzten diren kasuak, behar diren funtzioen zirriborroak sortu beharrean -relax aukera erabiltzen denean.
Izenen espazioaren mugak (AVRTC-733) Helbide-espazio izendatuak tresna-kateak onartzen ditu, erabiltzailearen gidaliburuaren atalean Mota Berezien Kalifikatzaileak aipatzen diren mugen arabera.
Ordu-eremuak The liburutegiko funtzioek GMT hartzen dute eta ez dute tokiko ordu-eremuak onartzen; beraz, tokiko orduak () gummite ()-ren ordu bera itzuliko da, adibidezample.
BEZEROEI LAGUNTZA
file:///Aplikazioak/microehip/xc8/v 2 .40/docs/Irakurri nazazu_X C 8_ A VRrako. htm
Dokumentuak / Baliabideak
![]() |
MICROCHIP MPLAB XC8 C konpilatzailearen softwarea [pdf] Erabiltzailearen eskuliburua MPLAB XC8 C, MPLAB XC8 C Konpiladorearen Softwarea, Konpiladorearen Softwarea, Softwarea |