MPLAB XC8 C þýðanda útgáfa 2.39 útgáfuskýringar fyrir AVR MCU
Notendahandbók
ÞETTA SKJAL INNIHALDUR MIKILVÆGAR UPPLÝSINGAR SEM VARÐA MPLAB XC8 C ÞJÁLFARI ÞEGAR MICROCHIP AVR TÆKI er miðuð. VINSAMLEGAST LESIÐ ÞAÐ ÁÐUR EN ÞESSI HUGBÚNAÐUR EKKIÐ er.
SJÁÐU ÚTGÁFUGYNDIR MPLAB XC8 C ÞJÁLFARNAR FYRIR MYNDASKJÁL EF ÞÚ ERT AÐ NOTA ÞJÁLFANUM FYRIR 8-BITA MYNDATÆKI.
Yfirview
1.1. Inngangur
Þessi útgáfa af Microchip MPLAB® XC8 C þýðandanum er hagnýtur öryggisþýðandi, byggður á v2.36 útgáfu þessa þýðanda og styður nú netþjónaleyfið.
1.2. Útgáfudagur
Opinber útgáfudagur þessarar þýðandaútgáfu er 27. janúar 2022.
1.3. Fyrri útgáfa
Fyrri MPLAB XC8 C þýðandaútgáfan var 2.36, gefin út 25. janúar 2022.
1.4. Handbók um virkni öryggis
Hagnýt öryggishandbók fyrir MPLAB XC þýðendur er fáanleg í skjalapakkanum þegar þú kaupir hagnýtt öryggisleyfi.
1.5. Íhlutaleyfi og útgáfur® hann MPLAB
XC8 C þýðanda fyrir AVR MCU tæki eru skrifuð og dreift undir GNU General Public License (GPL) sem þýðir að frumkóði hans er frjálst dreift og aðgengilegur almenningi.
Frumkóðann fyrir verkfæri undir GNU GPL má hlaða niður sérstaklega frá Microchip's websíða. Þú getur lesið GNU GPL í skránni sem heitir sem staðsett er undirmöppu af install license.txt avr/doc skránni þinni. Almenna umfjöllun um meginreglur sem liggja til grundvallar GPL má finna hér.
Stuðningskóði sem gefinn er upp fyrir hausskrár, tengiforskriftir og keyrslutímasöfn eru sérkóði og fellur ekki undir GPL.
Þessi þýðandi er útfærsla á GCC útgáfu 5.4.0, binutils útgáfu 2.26 og notar avr-libc útgáfu 2.0.0.
1.6. Kerfiskröfur
MPLAB XC8 C þýðandinn og leyfishugbúnaðurinn sem hann notar eru fáanlegir fyrir margs konar stýrikerfi, þar á meðal 64-bita útgáfur af eftirfarandi: Professional útgáfur af Microsoft Windows 10; Ubuntu 18.04; og macOS 10.15.5. Tvöfaldur fyrir Windows hafa verið undirritaður með kóða. Tvöföld fyrir macOS hafa verið kóða-undirrituð og þinglýst.
Ef þú ert að keyra netleyfaþjón, má aðeins nota tölvur með stýrikerfi sem þýðendur styðja til að hýsa leyfisþjóninn. Frá og með xclm útgáfu 2.0 er hægt að setja upp netleyfaþjóninn á Microsoft Windows Server vettvang, en leyfisþjónninn þarf ekki að keyra á miðlaraútgáfu stýrikerfisins.
1.7. Tæki studd
Þessi þýðandi styður öll 8-bita AVR MCU tæki sem þekkt eru við útgáfu. Sjá (í þýðandanum avr_chipinfo.html skrá) fyrir lista yfir öll studd tæki. Þessar skrár skrá einnig stillingar bitaskjalsstillingar fyrir hvert tæki.
1.8. Útgáfur og leyfisuppfærslur
MPLAB XC8 þýðandann er hægt að virkja sem leyfisskylda (PRO) eða óleyfisskylda (ókeypis) vöru. Þú þarft að kaupa virkjunarlykil til að leyfa þýðandanum þínum. Leyfi gerir ráð fyrir meiri hagræðingu miðað við ókeypis vöruna. Óleyfilegan þýðanda er hægt að stjórna endalaust án leyfis.
MPLAB XC8 Functional Safety þýðanda verður að virkja með hagnýtu öryggisleyfi sem keypt er af Microchip. Þjálfarinn mun ekki starfa án þessa leyfis. Þegar það hefur verið virkjað geturðu valið hvaða hagræðingarstig sem er og notað alla þýðandaeiginleikana. Þessi útgáfa af MPLAB XC Functional Safety
Þýðandi styður netþjónaleyfið.
Sjá Uppsetning og leyfisveiting MPLAB XC C þýðenda (DS50002059) skjal fyrir upplýsingar um leyfisgerðir og uppsetningu á þýðanda með leyfi.
1.9. Uppsetning og virkjun
Sjá einnig kaflana Flutningsvandamál og takmarkanir fyrir mikilvægar upplýsingar um nýjasta leyfisstjórann sem fylgir þessum þýðanda.
Ef þú notar MPLAB IDE, vertu viss um að setja upp nýjustu MPLAB X IDE útgáfu 5.0 eða nýrri áður en þú setur upp þetta tól. Slepptu IDE áður en þú setur upp þýðandann. Keyrðu (Windows), (Linux) eða (macOS) .exe .run .app þýðanda uppsetningarforritið, td og fylgdu leiðbeiningunum á skjánum.
XC8-1.00.11403-windows.exe
Mælt er með sjálfgefna uppsetningarskránni. Ef þú ert að nota Linux verður þú að setja upp þýðandann með því að nota flugstöð og frá rótarreikningi. Settu upp með því að nota macOS reikning með stjórnandaréttindi.
Virkjun fer nú fram sérstaklega við uppsetningu. Sjá skjalið License Manager fyrir MPLAB® XC C þýðendur (DS52059) fyrir frekari upplýsingar.
Ef þú velur að keyra þýðandann undir matsleyfinu færðu nú viðvörun meðan á söfnun stendur þegar þú ert innan 14 daga frá lokum matstímabilsins. Sama viðvörun er gefin út ef þú ert innan 14 daga frá lokum HPA áskriftar þinnar.
XC Network License Server er sérstakt uppsetningarforrit og er ekki innifalið í uppsetningarforritinu fyrir einn notanda.
XC leyfisstjórinn styður nú reiki á fljótandi netleyfum. Miðað er við farsímanotendur, þessi eiginleiki gerir fljótandi leyfi kleift að fara af netinu í stuttan tíma. Með því að nota þennan eiginleika geturðu aftengst netinu og samt notað MPLAB XC þýðanda. Sjá doc möppu XCLM uppsetningar fyrir meira um þennan eiginleika.
MPLAB X IDE inniheldur leyfisglugga (Tól > Leyfi) til að stjórna reiki sjónrænt.
1.9.1. Að leysa uppsetningarvandamál
Ef þú átt í erfiðleikum með að setja upp þýðandann undir einhverju af Windows stýrikerfum skaltu prófa eftirfarandi tillögur.
- Keyrðu uppsetninguna sem stjórnandi.
- Stilltu heimildir uppsetningarforritsins á „Full stjórn“. (Hægri-smelltu á skrána, veldu Properties, Security flipann, veldu notanda, breyttu.)
- Stilltu heimildir tímabundinnar möppu á "Full Control!.
- Til að ákvarða staðsetningu tímabundinnar möppu skaltu slá inn Run skipunina (Windows lógó lykill + R). %temp% Þetta mun opna file explorer glugga sem sýnir þá möppu og gerir þér kleift að ákvarða slóð þeirrar möppu.
1.10. Samfylkingarskjöl
Hægt er að opna notendahandbækur þýðandans frá HTML síðunni sem opnast í vafranum þínum þegar smellt er á bláa hjálparhnappinn í MPLAB X IDE mælaborðinu, eins og sýnt er á skjámyndinni.
Ef þú ert að byggja fyrir 8-bita AVR markmið, MPLAB® XC8 C þýðanda notendahandbók fyrir AVR
MCU inniheldur upplýsingar um þá þýðandavalkosti og eiginleika sem eiga við um þennan arkitektúr.
1.11. Þjónustudeild
Microchip fagnar villuskýrslum, ábendingum eða athugasemdum varðandi þessa þýðandaútgáfu. Vinsamlegast sendu allar villuskýrslur eða eiginleikabeiðnir í gegnum stuðningskerfið.
Skjalauppfærslur
Fyrir á netinu og uppfærðar útgáfur af MPLAB XC8 skjölum, vinsamlegast farðu á Microchip's Online
Tækniskjöl websíða.
Ný eða uppfærð AVR skjöl í þessari útgáfu:
Uppsetning og leyfisveiting MPLAB® XC C þýðenda (DS50002059) endurskoðun L
Microchip Unified Standard Library Reference Guide lýsir hegðun og viðmóti við aðgerðirnar sem skilgreindar eru af Microchip Unified Standard Library, sem og fyrirhugaðri notkun á bókasafnsgerðum og fjölvi. Sumar af þessum upplýsingum var áður að finna í MPLA® XC8 C þýðanda notandahandbók® fyrir AVR
MCU. Tækjasértækar bókasafnsupplýsingar eru enn í þessari þýðandahandbók.
Hexmate notendahandbókin hefur verið innifalin í skránni í þessari útgáfu. Þessi handbók er ætluð skjölum sem keyra Hexmate sem sjálfstætt forrit.
Eftirfarandi hlutar veita leiðréttingar og viðbótarupplýsingar við það sem er að finna í notendahandbókunum sem fylgja með þýðandanum.
2.1. smart-io-snið valkostur
The-msmart-io-format=fmt fmt valmöguleikinn, þar sem er strengur sem inniheldur sniðnar IO umbreytingarforskriftir, lætur þýðanda vita að upptaldar forskriftir séu notaðar af snjallum IO aðgerðum.
Til að minnka kóðastærð sérsniðnar þýðandinn bókasafnskóða sem tengist prent- og skannafjölskyldum snjallra IO aðgerða, byggt á umbreytingarforskriftum sem eru til staðar í sniðstrengjunum sem safnað er saman yfir öll símtöl í þessar aðgerðir. Þessi eiginleiki er fullkomlega sjálfvirkur og ekki er hægt að slökkva á honum.
Í sumum tilfellum er þýðandinn ekki fær um að ákvarða notkunarupplýsingar úr sniðnu IO aðgerðakallinu. Ef valmöguleikinn hefur verið notaður eru nauðsynlegar umbreytingarforskriftir fyrir þessar aðgerðir fengnar úr strengnum; annars gerir þýðandinn engar forsendur um hvernig -msmart-io-format=fmt fmt aðgerðirnar eru notaðar og tryggir að fullvirkar sniðnar IO aðgerðir séu tengdar inn í endanlegu forritsmyndina.
Til dæmisample, íhugaðu eftirfarandi símtöl til snjallra IO aðgerðir.
vscanf(“%d:%li”, va_list1);
vprintf(“%-s%d”, va_list2);
vprintf(fmt1, va_list3);// óljós notkun
vscanf(fmt2, va_list4);// óljós notkun
Við vinnslu á síðustu tveimur köllunum getur þýðandinn ekki dregið neinar notkunarupplýsingar af hvorki sniðstrengjum né rökum. Í þessum tilfellum er hægt að nota -msmart-io-format valmöguleikann og mun hugsanlega gera kleift að búa til ákjósanlegri sniðin I0 aðgerðir og minnka þannig kóðastærð forritsins. Til dæmisample, ef sniðstrengirnir sem fmtl og fmt2 benda á nota sameiginlega aðeins "%d", "%i" og "% s" umbreytingarforskriftina, ætti að gefa út valmöguleikann -msmart-io-format=fmt="%d%i%s".
Litastrengurinn getur innihaldið hvaða gilda umbreytingarforskrift sem er, þar á meðal fánar og breytingar (tdample “%-13. 91s“), og ætti að endurspegla nákvæmlega þær sem notaðar eru af aðgerðunum þar sem notkun þeirra er óljós. Misbrestur á að setja forskrift inn í smá rifrildi þar sem það hefur verið notað af sniðnum I0 aðgerðum gæti leitt til kóðabilunar.
Ef fmt er tómur strengur eða inniheldur engar greinanlegar umbreytingarforskriftir, skal gefa út viðvörun og fullvirk snið I0 aðgerðir tengdar inn í endanlegt forritsmynd.
Hægt er að nota þennan valkost margsinnis á skipanalínunni. Viðskiptaforskriftirnar sem notaðar eru við hvern valmöguleika eru safnaðar saman.
2.2. sleppa-ramma-bendili Valkostur
Valmöguleikinn – f omit- frame-pointer gefur þýðandanum fyrirmæli um að nota staflabendilinn beint til að fá aðgang að hlutum á staflanum og, ef mögulegt er, sleppa kóða sem vistar, frumstillir og endurheimtir rammaskrána. Það er sjálfkrafa virkt á öllum hagræðingarstigum sem eru ekki núll.
Að neita valmöguleikanum, með því að nota -fno-omit- frame-pointer, gæti aðstoðað við að kemba fínstilltan kóða; þessi valkostur tryggir þó ekki að rammabendillinn verði alltaf notaður.
2.3. unroll-lykkjur Valkostir
The – funrol I-lykkjur og -(unroll-all-loops valkostirnir stjórna hraðastýrðum hagræðingum sem reyna að fjarlægja greiningartafir í lykkjum. Afrúllaðar lykkjur auka venjulega framkvæmdarhraða myndaða kóðans, á kostnað stærri kóðastærðar.
Valmöguleikinn – funrol I-lykkjur afrólar lykkjur þar sem hægt er að ákvarða fjölda endurtekninga á tíma samantektar eða þegar kóði fer inn í lykkjuna. Valmöguleikinn -funroll-all-loops er árásargjarnari og leysir allar lykkjur upp, jafnvel þegar fjöldi endurtekninga er óþekktur. Það er venjulega minna árangursríkt við að bæta framkvæmdarhraða en - funrol 1-lykkjur valkosturinn.
2.4. fat-Ito-hlutir Valkostur
Valmöguleikinn – f fat-1 to-obj ects biður um að þýðandinn búi til feitan hlut files, sem innihalda bæði
mótmælakóða og GIMPLE (ein af innri framsetningum GCC), skrifuð á einstaka ELF hluta. Slíkir hlutir files eru gagnlegar fyrir bókasafnskóða sem hægt er að tengja við verkefni sem nota og nota ekki staðlaða hlekkitíma fínstillingu, stjórnað af -flto valkostinum.
Formið – fno-fat-lto-objects þessa valkosts, sem er sjálfgefið ef enginn valkostur er tilgreindur, bælir innlimun hlutakóðans í hlutinn files, sem leiðir til hraðari byggingu. Hins vegar slík mótmæla files verður alltaf að vera tengt með því að nota staðlaða hlekkitíma fínstillingu.
2.5. Ito-skipting valkostur
The – flto-partiti á=a Igo ri þm valkostur stjórnar reikniritinu sem notað er til að skipta hlut files þegar þú keyrir fínstillingu tengitíma. Röksemdafærslan enginn gerir skiptinguna algjörlega óvirka og framkvæmir fínstillingarskrefið tengt tíma beint úr heildaráætlunargreiningunni (WPA). Þessi notkunarmáti mun gefa sem bestum árangri, á kostnað stærri þýðandarminnisþörf og lengri byggingartíma, þó að það sé ólíklegt að þetta sé vandamál með lítil forrit. Skipting hlutarins files getur bætt byggingarframmistöðu. Rökin eitt tilgreina að nota eigi nákvæmlega eina skiptingu, og rökin lto1 tilgreina skiptingu sem endurspeglar það sem upprunaleg heimild segir til um. files. Sjálfgefin rök eru jafnvægi, sem tilgreinir skiptingu í jafnstóra bita, þegar mögulegt er.
2.6. Viðbót við kafla 3.6.11 Valmöguleikar fyrir kortlagt tengil
The -wl, –kafla-byrjun =sek tion=addr vantar í töfluna yfir algenga tengivalkosti, aðgengilegir með því að nota -wl þýðanda rekla valkostinn. Þessi valkostur gerir kleift að staðsetja sérsniðna hluta á tilgreint heimilisfang. Það er ekki hægt að nota það til að setja staðlaða hluta, eins og (. gögn, . bss, . texti), sem verður að setja með því að nota -wl, -'r valkostinn.
2.7. Breyting á kafla 4.14.2 Breyting og tenging við úthlutaðan hluta
Athugaðu að öfugt við upplýsingarnar í þessum hluta notendahandbókarinnar, þýða breytingar sem gerðar eru á þýðandanum í þessari útgáfu nú að hægt er að tengja sérsniðna hluta með því að nota -w1, -sértrúarsöfnuður jón- byrjun=kafli=acicir valmöguleika og án þess að þurfa að breyta linker script.
Hvað er nýtt
Eftirfarandi eru nýir AVR-target eiginleikar sem þýðandinn styður nú. Útgáfunúmerið í undirfyrirsögnum gefur til kynna fyrstu þýðandaútgáfuna sem styður eiginleikana sem fylgja.
3.1. Útgáfa 2.39 (virkt öryggisútgáfa)
Netþjónsleyfi Þessi útgáfa af MPLAB XC8 Functional Safety Compiler styður netþjónaleyfið.
3.2. Útgáfa 2.36
Engin.
3.3. Útgáfa 2.35
Stuðningur við nýja tæki er í boði fyrir eftirfarandi AVR hluta: ATTINY3224, ATTINY3226, ATTINY3227, AVR64DD14, AVR64DD20, AVR64DD28 og AVR64DD32.
Bætt samhengisskipti Nýi valmöguleikinn -mcall-isr-prologues breytir því hvernig truflunaraðgerðir vista skrár við inngöngu og hvernig þær skrár eru endurheimtar þegar truflunarrútínan lýkur. Það virkar á svipaðan hátt og -mcall-prologues valmöguleikinn, en hefur aðeins áhrif á truflunaraðgerðir (ISR).
Enn betri samhengisskipti Hin nýja -mgas-isr-formálar valkostur stjórnar samhengisrofakóðanum sem myndaður er fyrir litlar truflanir á þjónusturútum. Þegar hann er virkur mun þessi eiginleiki láta samsetningaraðilann skanna ISR fyrir skráarnotkun og vista aðeins þessar notaðar skrár ef þess er krafist.
Stillanleg flasskortlagning Sum tæki í AVR DA og AVR DB fjölskyldunni eru með SFR (td FLMAP) sem tilgreinir hvaða 32k hluta forritaminnis verður varpað inn í gagnaminnið. Hægt er að nota nýja – mconst-data-in-config-mapped-progmem valmöguleikann til að láta tengilinn setja öll gallahæf gögn í einn 32k hluta og frumstilla sjálfkrafa viðkomandi SFR skrá til að tryggja að þessi gögn séu kortlögð inn í gagnaminnið, þar sem hægt verður að nálgast þau á skilvirkari hátt.
Microchip Unified Standard Libraries Öll MPLAB XC þýðendur munu deila Microchip Unified Standard Library, sem er nú fáanlegt með þessari útgáfu af MPLAB XC8. The MPLAB® XC8 C þýðanda
Notendahandbók fyrir AVR® MCU inniheldur ekki lengur skjölin fyrir þessar staðlaðar aðgerðir. Þessar upplýsingar er nú að finna í Microchip Unified Standard Library Reference Guide. Athugaðu að einhver virkni sem áður var skilgreind af avr-libc er ekki lengur tiltæk. (Sjá Bókasafnsvirkni.)
Smart I0 Sem hluti af nýju sameinuðu bókasöfnunum eru JO aðgerðir í printf og scanf fjölskyldunum nú sérsniðnar til í hverri byggingu, byggt á því hvernig þessar aðgerðir eru notaðar í forritinu. Þetta getur dregið verulega úr því fjármagni sem forritið notar.
Snjall I0 aðstoð valkostur Þegar símtöl eru greind í snjall I0 aðgerðir (eins og printf () eða scanf ()), getur þýðandinn ekki alltaf ákvarðað út frá sniðstrengnum eða dregið þá ályktun út frá röksemdum þá umbreytingarforskrift sem símtalið krefst. Áður fyrr myndi þýðandinn alltaf gera engar forsendur og tryggja að fullvirk 10 aðgerðir væru tengdar inn í endanlegt forritsmynd. Nýr valkostur – msma rt-io- format=fmt hefur verið bætt við þannig að notandinn geti í staðinn upplýst þýðandann um umbreytingarforskriftina sem notuð eru af snjöllum I0 aðgerðum þar sem notkun þeirra er óljós og kemur í veg fyrir að of langar 10 venjur séu tengdar. (Sjá smart-io-snið Valkostur fyrir frekari upplýsingar.)
Að setja sérsniðna hluta Áður setti -W1, –section-start valmöguleikinn aðeins tilgreindan hluta á umbeðnu heimilisfangi þegar tengihandritið skilgreindi úttakshluta með sama nafni. Þegar það var ekki raunin var hlutinn settur á heimilisfang sem tengillinn valdi og valkosturinn var í raun hunsaður. Nú verður valmöguleikinn virtur fyrir alla sérsniðna hluta, jafnvel þó að tengihandritið skilgreini ekki hlutann. Athugaðu þó að fyrir staðlaða hluta, svo sem . texti, . bss eða . gögn, besti úthlutunaraðilinn mun samt hafa fulla stjórn á staðsetningu þeirra og valkosturinn hefur engin áhrif. Notaðu -wl, -Tsection=addr valmöguleika, eins og lýst er í notendahandbókinni.
3.4. Útgáfa 2.32
Staflaleiðsögn Fáanlegt með PRO þýðandaleyfi, hægt er að nota staflaleiðbeiningareiginleika þýðandans til að áætla hámarksdýpt hvers stafla sem forritið notar. Það smíðar og greinir símtalsgraf forrits, ákvarðar staflanotkun hvers falls og framleiðir skýrslu þar sem hægt er að álykta um dýpt stafla sem forritið notar.
Þessi eiginleiki er virkur í gegnum -mchp-stack- notkun skipanalínuvalkostsins. Yfirlit yfir notkun stafla er prentuð eftir framkvæmd. Nákvæm staflaskýrsla er fáanleg á kortinu file, sem hægt er að óska eftir með venjulegum hætti.
Stuðningur við nýja tæki er fáanlegur fyrir eftirfarandi AVR hluta: ATTINY427, ATTINY424, ATTINY426, ATTINY827, ATTNY824, ATTINY826, AVR32DB32, AVR64DB48, AVR64DB64, AVR64DB28, AVR32DB28 og AVR64DB32.
Stuðningur við afturkallað tæki Stuðningur er ekki lengur í boði fyrir eftirfarandi AVR hluta: AVR 16DA28, AVR16DA32 og, AVR16DA48.
3.5. Útgáfa 2.31 Engin.
3.6. Útgáfa 2.30
Nýr valkostur til að koma í veg fyrir frumstillingu gagna Nýr valkostur -mno-data-init ökumanns kemur í veg fyrir frumstillingu gagna og hreinsun bss hluta. Það virkar með því að bæla niður úttak do_copy_data og do_clear_bss táknanna í samsetningu files, sem mun aftur á móti koma í veg fyrir að þessar venjur séu teknar með tengiliðnum.
Auknar hagræðingar Ýmsar hagræðingarbætur hafa verið gerðar, þar á meðal að fjarlægja óþarfa skilaleiðbeiningar, fjarlægja nokkur stökk eftir skip-ef-bita-er leiðbeiningar og bætt verklagsúrdrátt og getu til að endurtaka þetta ferli.
Fleiri valkostir eru nú í boði til að stjórna sumum þessara hagræðinga, sérstaklega -fsection-akkeri, sem gerir kleift að framkvæma aðgang að kyrrstæðum hlutum miðað við eitt tákn; -mpa-endurtekningar =n, sem gerir kleift að breyta fjölda endurtekinna aðferðaúrdráttar úr sjálfgefnu 2; og -mpa-callcost-shortcal 1, sem framkvæmir árásargjarnari málsmeðferðarabstrakt, í þeirri von að tengillinn geti slakað á löngum símtölum. Þessi síðasti valkostur getur aukið kóðastærð ef undirliggjandi forsendur eru ekki að veruleika.
Nýtt stuðningur við tæki Stuðningur er í boði fyrir eftirfarandi AVR hluta: AVR16DA28, AVR16DA32, AVR16DA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR128DB28, 128, AVR32DB128, AVR48DB128, 64 VRXNUMXDBXNUMX.
Stuðningur við afturkallað tæki Stuðningur er ekki lengur fáanlegur fyrir eftirfarandi AVR hluta: ATA5272, ATA5790, ATA5790N, ATA5791, ATA5795, ATA6285, ATA6286, ATA6612C, ATA6613C, ATA6614Q, ATA6616C, ATA6617C, ATA664251 og ATAXNUMXC, ATAXNUMX.
3.7. Útgáfa 2.29 (virkt öryggisútgáfa)
Haus file fyrir þýðanda bunt-ins Til að tryggja að þýðandinn geti verið í samræmi við tungumálaforskriftir eins og MISRA, haus file, sem er sjálfkrafa innifalið af , hefur verið uppfært. Þessi haus inniheldur frumgerðir fyrir allar innbyggðar aðgerðir, svo sem innbyggða in_avr_nop ( ) og _builtin_avr_delay_cycles () . Sumar innbyggðar eru hugsanlega ekki MISRA samhæfðar; þessum er hægt að sleppa með því að bæta skilgreiningu XC_STRICT MISRA við þýðanda skipanalínuna. Innbyggðu tækin og yfirlýsingar þeirra hafa verið uppfærðar til að nota fastbreiddargerðir.
3.8. Útgáfa 2.20
Nýtt stuðningur við tæki Stuðningur er í boði fyrir eftirfarandi AVR hluta: ATTINY 1624, ATTINY1626 og ATTINY 1 627.
Betri úthlutun sem hentar best Besta úthlutunarbúnaðurinn (BFA) í þýðandanum hefur verið endurbættur þannig að köflum er úthlutað í þeirri röð sem leyfir betri hagræðingu. BFA styður nú nafngreind heimilisfangarými og sér betur um frumstillingu gagna.
Bætt málsmeðferðarabstrakt Hagræðingar á málsmeðferðarútdrætti eru nú framkvæmdar á fleiri kóðaröðum. Fyrri aðstæður þar sem þessi hagræðing gæti hafa aukið kóðastærð hefur verið brugðist við með því að gera hagræðingarkóðann meðvitaðan um sorphirðuferli tengilsins.
Fjarvera AVR Assembler AVR Assembler er ekki lengur innifalinn í þessari dreifingu. 3.9. Útgáfa 2.19 (virkt öryggi Slepptu)
Engin.
3.10. Útgáfa 2.10
Code Coverage Þessi útgáfa inniheldur kóðaþekjueiginleika sem auðveldar greiningu á því að hve miklu leyti frumkóði verkefnis hefur verið keyrður. Notaðu valkostinn -mcodecov=ram til að virkja það. Eftir að forritið hefur verið keyrt á vélbúnaðinum þínum verður upplýsingum um kóðaþekju safnað saman í tækinu og hægt er að flytja þær yfir á og sýna MPLAB X IDE með kóðaþekjuviðbót. Sjá IDE skjöl til að fá upplýsingar um þessa viðbót.
Nota má #pragma nocodecov til að útiloka síðari aðgerðir frá þekjugreiningum. Helst ætti að bæta pragma við í upphafi file að útiloka þetta allt file úr umfjöllunargreiningum. Að öðrum kosti er hægt að nota _eigindið_ ((nocodecov)) til að útiloka tiltekna aðgerð frá þekjugreiningum.
Tækjalýsing files Nýtt tæki file sem heitir avr_chipinfo.html er staðsett í skjalaskránni fyrir
þýðandreifinguna. Þetta file listar öll tæki sem þýðandinn styður. Smelltu á heiti tækis og það mun opna síðu sem sýnir allar leyfilegar stillingarbitastillingar/gildapör fyrir það tæki, með td.amples.
Verklagsbundin útdráttur Hagræðingaraðferðir á útdrætti, sem koma í stað algengra blokka af samsetningarkóða með símtölum í útdregið eintak af þeim blokk, hefur verið bætt við þýðandann. Þetta er framkvæmt af sérstöku forriti, sem er sjálfkrafa ræst af þýðandanum þegar valið er stig 2, 3 eða s hagræðingar. Þessar hagræðingar draga úr kóðastærð, en þær geta dregið úr framkvæmdarhraða og kembiforrit.
Hægt er að slökkva á málsmeðferðarútdrætti á hærra hagræðingarstigi með því að nota valkostinn -mno-pa, eða hægt er að virkja hana á lægri hagræðingarstigum (háð leyfi þínu) með því að nota -mpa. Það er hægt að gera það óvirkt fyrir hlut file með því að nota -mno-pa-on-f ile=filenafn, eða óvirkt fyrir fall með því að nota -mno-pa-onfunotion=f unction.
Inni í frumkóðanum þínum er hægt að slökkva á málsmeðferðarútdrætti fyrir fall með því að nota attribute_ ( (nopa) ) með skilgreiningu fallsins, eða með því að nota nopa, sem stækkar í _attribute_ ( (nopa, noinline) ) og kemur þannig í veg fyrir að fallinlína eigi sér stað og að innbyggður kóða sé tekinn út.
Læsa bitastuðningur í pragma #pragma config er nú hægt að nota til að tilgreina AVR læsa bitana sem og aðra stillingar bita. Athugaðu avr_chipinfo.html file (sem getið er um hér að ofan) fyrir stillingar/gildi pörin til að nota með þessu pragma.
Nýtt stuðningur við tæki Stuðningur er í boði fyrir eftirfarandi hluta: AVR28DAl28, AVR64DAl28, AVR32DAl28 og AVR48DAl28.
3.11. Útgáfa 2.05
Meira fyrir peninginn MacOS útgáfan af þessum þýðanda og leyfisstjóra er nú 64 bita forrit. Þetta mun tryggja að þýðandinn muni setja upp og keyra án viðvarana á nýlegum útgáfum af macOS.
Const hlutir í forritaminni Þýðandinn getur nú sett const-hæfða hluti í forritið Flash minni, frekar en að hafa þá staðsetta í vinnsluminni. Þjálfaranum hefur verið breytt þannig að óviðeigandi alþjóðleg gögn eru geymd í flassminni forrita og hægt er að nálgast þessi gögn beint og óbeint með því að nota viðeigandi forritaminnisleiðbeiningar. Þessi nýja eiginleiki er sjálfgefið virkur en hægt er að slökkva á honum með því að nota -mno-const-data-in-progmem valkostinn. Fyrir avrxmega3 og avrtiny arkitektúr er þessi eiginleiki ekki nauðsynlegur og er alltaf óvirkur, þar sem forritaminni er kortlagt inn í gagnavistarrýmið fyrir þessi tæki.
Standard ókeypis Óleyfislausar (ókeypis) útgáfur af þessum þýðanda leyfa nú fínstillingar upp að og með stigi 2. Þetta mun leyfa svipaða, þó ekki eins, úttak og það sem áður var mögulegt með venjulegu leyfi.
Velkomin AVRASM2 AVRASM2 samsetningartækið fyrir 8-bita tæki er nú innifalið í XC8 þýðanda uppsetningarforritinu. Þessi samsetningarforrit er ekki notað af XC8 þýðandanum, en er fáanlegt fyrir verkefni byggð á handskrifuðum samsetningaruppsprettu.
Nýtt stuðningur við tæki Stuðningur er í boði fyrir eftirfarandi hluta: ATMEGA1608, ATMEGA 1609, ATMEGA808 og ATMEGA809.
3.12. Útgáfa 2.00
Bílstjóri á hæsta stigi Nýr ökumaður, kallaður xc8 -cc, situr nú fyrir ofan fyrri avr-gcc ökumanninn og xc8 ökumanninn, og hann getur kallað á viðeigandi þýðanda miðað við val á marktækinu. Þessi bílstjóri samþykkir valkosti í GCC-stíl, sem eru annað hvort þýddir fyrir eða sendar í gegnum þýðandann sem verið er að keyra. Þessi bílstjóri gerir kleift að nota svipað valkostasett með svipaða merkingarfræði með hvaða AVR eða PIC markmið sem er og er því ráðlögð leið til að kalla fram þýðandann. Ef þörf krefur er hægt að kalla í gamla avr-gcc rekilinn beint með því að nota gamla stílvalkostina sem hann samþykkti í fyrri þýðandaútgáfum.
Common C tengi Þessi þýðandi getur nú verið í samræmi við MPLAB Common C tengi, sem gerir kleift að flytja frumkóða á auðveldari hátt yfir alla MPLAB XC þýðendur. Valkosturinn -mext=cci biður um þennan eiginleika, sem gerir aðra setningafræði kleift fyrir margar tungumálaviðbætur.
Nýr bókasafnsstjóri A nýr ökumaður bókasafnsfræðings er staðsettur fyrir ofan fyrri PIC bókasafnsbókavörðinn og AVR avr-ar bókavörðinn. Þessi bílstjóri samþykkir valkosti í GCC-skjalasafnsstíl, sem eru annaðhvort þýddir fyrir eða sendar í gegnum bókasafnsvörðinn sem er tekinn af lífi. Nýi bílstjórinn gerir kleift að nota svipaðar valmöguleika með svipaða merkingarfræði til að búa til eða meðhöndla hvaða PIC eða AVR bókasafn sem er file og er því ráðlögð leið til að kalla til bókavörðinn. Ef þörf er á fyrir eldri verkefni er hægt að hringja í fyrri bókasafnsvörð beint með því að nota gamla stílvalkostina sem hann samþykkti í fyrri þýðandaútgáfum.
Flutningamál
Eftirfarandi eru eiginleikar sem nú eru meðhöndlaðir á annan hátt af þýðandanum. Þessar breytingar gætu þurft að breyta frumkóðanum þínum ef þú flytur kóða í þessa þýðandaútgáfu. Útgáfunúmerið í undirfyrirsögnum gefur til kynna fyrstu þýðandaútgáfuna til að styðja við breytingarnar sem fylgja.
4.1. Útgáfa 2.39 (virkt öryggisútgáfa)
Engin.
4.2. Útgáfa 2.36 Engin.
4.3. Útgáfa 2.35
Meðhöndlun strengja til grunna (XC8-2420) Til að tryggja samræmi við aðra XC þýðendur, XC8 strengur til aðgerðir, eins og strtol () osfrv., munu ekki lengur reyna að umbreyta inntaksstreng ef grunnurinn sem tilgreindur er er stærri en 36 og mun þess í stað setja errno á EINVAL. C staðallinn tilgreinir ekki hegðun föllin þegar farið er yfir þetta grunngildi.
Óviðeigandi hraðastillingar Verið var að virkja fínstillingar á málsmeðferðarútdrætti þegar 3. stigs fínstillingar voru valin (-03). Þessar hagræðingar draga úr kóðastærð á kostnað kóðahraða, svo ætti ekki að hafa verið framkvæmd. Verkefni sem nota þetta fínstillingarstig gætu séð mun á kóðastærð og framkvæmdarhraða þegar þau eru byggð með þessari útgáfu.
Bókasafnsvirkni Kóðinn fyrir margar af stöðluðu C bókasafnsaðgerðunum kemur nú frá Unified Standard Library frá Microchip, sem gæti sýnt aðra hegðun í sumum kringumstæðum miðað við þá sem fyrrum avr-libc bókasafnið gaf. Til dæmisample, það er ekki lengur nauðsynlegt að tengja í 1printf flt bókasafninu (-1printf_flt valkostur) til að kveikja á sniðnum I0 stuðningi fyrir float-format forskriftir. Hinir snjöllu 10 eiginleikar Microchip Unified Standard Library gera þennan valkost óþarfan. Auk þess er ekki lengur nauðsynlegt að nota _P viðskeyti venjur fyrir strengi og minnisaðgerðir (td strcpy_P ( ) osfrv.) sem starfa á const strengjum í flash. Stöðluðu C venjurnar (td strcpy 0 ) munu virka rétt með slíkum gögnum þegar const-data-in-program-minni eiginleikinn er virkur.
4.4. Útgáfa 2.32
Engin.
4.5. Útgáfa 2.31
Engin.
4.6. Útgáfa 2.30
Engin.
4.1. Útgáfa 2.29 (virkt öryggisútgáfa)
Engin.
4.2. Útgáfa 2.20
Breytt DFP útlit Þýðandinn gerir nú ráð fyrir öðru útliti sem DFP (Device Family Packs) notar. Þetta þýðir að eldra DFP virkar kannski ekki með þessari útgáfu og eldri þýðendur munu ekki geta notað nýjustu DFP.
4.3. Útgáfa 2.19 (virkt öryggisútgáfa)
Engin.
4.4. Útgáfa 2.10 Engin
4.5. Útgáfa 2.05
Const hlutir í forritaminni Athugaðu að sjálfgefið, const-hæfir hlutir verða settir inn og aðgangur að þeim í forritaminni (eins og lýst er hjá henni). Þetta mun hafa áhrif á stærð og framkvæmdarhraða verkefnisins, en ætti að draga úr vinnsluminni notkun. Hægt er að slökkva á þessum eiginleika, ef þörf krefur, með því að nota -mnocons t-data-in-pr ogmem valkostinn.
4.6. Útgáfa 2.00
Stillingar öryggi Nú er hægt að forrita stillingar öryggi tækisins með því að nota config pragma fylgt eftir með stillingargildapörum til að tilgreina öryggi ástand, td #pragma config WDTON = SET #pragma config BODLEVEL = BODLEVEL_4V3
Algjörir hlutir og aðgerðir Nú er hægt að setja hluti og aðgerðir á tiltekið heimilisfang í minni með því að nota CCI _at (heimilisfang) forskrift, tdample:
efinclude
int foobar á (0)0300100);
char at(0x250) getID(int offset) ( Rökin fyrir þessum forskrift verða að vera fasti sem táknar heimilisfangið sem fyrsta bæti eða leiðbeiningin verður sett á. RAM vistföng eru sýnd með því að nota offset af Ox800000. Virkjaðu CCI til að nota þennan eiginleika.
Ný truflunaraðgerð setningafræði Þýðandinn samþykkir nú CCI _rof (númer) forskrift til að gefa til kynna að C aðgerðir séu truflanir. Tilgreinandinn tekur truflunarnúmer, til dæmisample:
Föst mál
Eftirfarandi eru leiðréttingar sem gerðar hafa verið á þýðandanum. Þetta gæti lagað villur í kóðanum sem myndast eða breytt virkni þýðandans í það sem var ætlað eða tilgreint í notendahandbókinni. Útgáfunúmerið í undirfyrirsögnum gefur til kynna fyrstu þýðandaútgáfuna sem inniheldur lagfæringar fyrir vandamálin sem fylgja. Merkimiðarnir í svigunum í titlinum eru auðkenni þess máls í rakningargagnagrunninum. Þetta gæti verið gagnlegt ef þú þarft að hafa samband við þjónustudeild.
Athugaðu að sum tækissértæk vandamál eru leiðrétt í Device Family Pack (DR)) sem tengist tækinu. Sjá MPLAB Pack Manager fyrir upplýsingar um breytingar sem gerðar eru á DFP og til að hlaða niður nýjustu pökkunum.
5.1. Útgáfa 2.39 (virkt öryggisútgáfa)
Engin.
5.2. Útgáfa 2.36
Villa við seinkun (XCS–2774) Minniháttar breytingar á sjálfgefnum hagræðingum fyrir frjálsa stillingu komu í veg fyrir stöðuga fellingu óperandatjáninga við innbyggðu seinkun aðgerða, sem leiddi til þess að þær voru meðhöndlaðar sem óstöðugar og kveikja á villunni. byggð í_avr_delay_cycles býst við samsetningartíma heiltölufasta.
5.3. Útgáfa 2.35
Samfellt úthlutun með því að nota _at (XCS–2653) Samfelld úthlutun margra hlutar í hluta með sama nafni og með því að nota _at () virkaði ekki rétt. Til dæmisample:
const char arrl[ ] eiginleiki (section(“.mysec”) á (0x500) = (OxAB, OxCD);
const char arr2[ ] eiginleiki (sectionr.mysec”)= (OxEF, OxFE);
hefði átt að setja arr2 strax á eftir arri.
Að tilgreina upphafsföng hluta (XCS–2650) The -wl, –section-start valkostur mistókst hljóðlega að setja hluta á tilnefnt upphafsfang. Þetta mál hefur verið lagað fyrir sérsniðna hluta; hins vegar mun það ekki virka fyrir neina staðlaða hluta, svo sem . texta eða. bss, sem verður að setja með því að nota a -wl, -T valmöguleiki.
Linker hrynur þegar slakað er á (XCS–2647) Hvenær -mrelax fínstillingin var virkjuð og það voru kóða eða gagnahlutar sem pössuðu ekki inn í tiltækt minni, tengilinn hrundi. Nú, við slíkar aðstæður, eru villuskilaboð gefin út í staðinn.
Nei nei–fallandi–aftur (XCS–2646) The –nofallback valkostur var ekki rétt útfærður, né skjalfestur. Þetta er nú hægt að velja til að tryggja að þýðandinn falli ekki aftur í lægri hagræðingarstillingu ef þýðandinn er án leyfis og mun þess í stað gefa út villu.
Óviðeigandi hraðastillingar (XCS–2637) Verið var að virkja fínstillingar á málsmeðferðarútdrætti þegar 3. stigs fínstillingar voru valin (-03). Þessar hagræðingar draga úr kóðastærð á kostnað kóðahraða, svo ætti ekki að hafa verið framkvæmd.
Slæmur EEPROM aðgangur (XCS–2629) eeprom_read_block rútínan virkaði ekki rétt á Xmega tækjum þegar valmöguleikinn -mconst-data-in-progmem var virkjaður (sem er sjálfgefið ástand), sem leiddi til þess að EEPROM minni var ekki lesið rétt.
Ógild minnisúthlutun (X03-2593, XC8-2651) Hvenær valkosturinn -Ttext eða -Tdata tengill (tdampLeið sem farið er í gegnum með því að nota -wl reklavalkost) er tilgreint, samsvarandi uppruna texta/gagnasvæðis var uppfærður; þó var endavistfangið ekki breytt í samræmi við það, sem gæti hafa leitt til þess að svæðið fór yfir minnissvið marktækisins.
Hrun með ofmerktri aðgerð (XC8-2580) Þjálfarinn hrundi ef fall var lýst yfir með því að nota fleiri en eina af truflunum, merki eða nmi eigindunum, td _eiginleika_ ((merki, trufla)).
Ógildur ATtiny truflunarkóði (XC8-2465) Þegar búið var að byggja fyrir ATtiny tæki og fínstillingarnar voru óvirkar (-00), gætu truflanir hafa komið af stað operand utan sviðs samsetningarskilaboða.
Valkostir eru ekki færðir í gegnum (XC8-2452) Þegar þú notar -wl valmöguleika með mörgum, kommuaðskildum tengimöguleikum, var ekki verið að senda alla tengimöguleika til tengiliðsins.
Villa við óbeint lestur forritaminni (X03-2450) Í sumum tilfellum framleiddi þýðandinn innri villa (óþekkjanleg insn) við lestur tveggja bæta gildis úr bendili í forritaminni
5.4. Útgáfa 2.32
Annar aðgangur að bókasafni mistekst (X03-2381) Að kalla fram Windows útgáfuna af xc8-ar.exe bókasafnsskjalasafninu í annað sinn til að fá aðgang að núverandi bókasafnsskjalasafni gæti hafa mistekist með villuskilaboðum sem ekki var hægt að endurnefna.
5.5. Útgáfa 2.31
Óútskýrt þýðandabilanir (XC8-2367) Þegar keyrt er áfram Windows palla sem voru með tímabundna skrá kerfisins stillta á slóð sem innihélt punktinn '.' staf, gæti þýðandinn hafa mistekist að keyra.
5.6. Útgáfa 2.30
Alþjóðleg merki röng eftir útlistun (XC8-2299) Handskrifaður samsetningarkóði sem staðsetur alþjóðlegan merki í samsetningarröðum sem eru teknar út með aðferðafræðilegri útdrætti gætu ekki hafa verið færðar á réttan hátt.
Afslappandi hrun (XC8-2287) Með því að nota -mslaka á valmöguleiki gæti hafa valdið því að tengillinn hrundi þegar tail jump slökun hagræðingar reynt að fjarlægja ret kennslu sem voru ekki í lok a kafla.
Hrun þegar merki eru fínstillt sem gildi (XC8-2282) Kóði með „Labels as values“ GNU C tungumálaviðbót gæti hafa valdið því að hagræðingaraðferðir á útdrætti hrundu, með útlistuðum VMA-sviði sem spannar uppfærsluvillu.
Not so const (XC8-2271) Frumgerðirnar fyrir strstr () og aðrar aðgerðir frá ekki lengur tilgreina óstaðlaða const qualifier á skiluðum strengjabendum þegar -mconst-data- inprogmem eiginleiki er óvirkur. Athugaðu að með avrxmega3 og avrtiny tækjum er þessi eiginleiki virkur varanlega.
Týndir frumstillingar (XC8-2269) Þegar fleiri en ein breyta í þýðingu eining var sett í hluta (með því að nota kafla or eiginleiki ( (kafli) )), og fyrsta slíka breytan var núll frumstillt eða hafði ekki frumstilla, týndu frumstillir fyrir aðrar breytur í sömu þýðingareiningu sem voru settar í sama hluta.
5.1. Útgáfa 2.2 9 (Functional Safety Release) Engin.
5.2. Útgáfa 2.20
Villa með löngum skipunum (XC8-1983) Þegar þú notar AVR-markmið gæti þýðandinn hætt með villu sem fannst ekki, ef skipanalínan var mjög stór og innihélt sértákn eins og gæsalappir, skástrik o.s.frv.
Óúthlutaður rodatahluti (XC8-1920) AVR tengilinn tókst ekki að úthluta minni fyrir sérsniðna rodatahluta þegar hann var byggður fyrir avrxmega3 og avrtiny arkitektúr, sem gæti valdið villum í minni skörun
5.3. Útgáfa 2.19 (virkt öryggisútgáfa)
Engin.
5.4. Útgáfa 2.10
Bilun í flutningi (XC8-1891) Besti úthlutunartækið var að skilja eftir „göt“ í minni á milli hluta eftir slökun á tengingu. Fyrir utan að sundra minni, jók þetta möguleikann á bilun í flutningi tengiliða sem tengjast tölvustökkum eða símtölum sem verða utan sviðs.
Leiðbeiningar ekki umbreytt með slökun (XC8-1889) Linker slökun átti sér ekki stað fyrir leiðbeiningar um stökk eða köll þar sem hægt er að ná markmiðum ef slakað er á.
Vantar virkni (XC8E-3 ) Nokkrar skilgreiningar frá , eins og clock_div_t og clock_presc ale_s et () , voru ekki skilgreind fyrir tæki, þar á meðal ATmega324PB, ATmega328PB, ATtiny441 og ATtiny841.
Fjölvi vantar Forvinnslufjöllin _XC 8_MODE_, XC 8 VERS ION, XC og xc8 voru ekki sjálfkrafa skilgreind af þýðandanum. Þessar eru nú fáanlegar.
5.5. Útgáfa 2.05
Innri þýðandavilla (XC8-1822) Þegar byggt er undir Windows gæti innri þýðandavilla hafa myndast við fínstillingu kóða.
RAM-flæði fannst ekki (XC8-1800, XC8-1796) Forrit sem fóru yfir það sem er tiltækt vinnsluminni fannst ekki af þýðandanum í sumum tilfellum, sem leiddi til bilunar í keyrslukóða.
Sleppt flassminni (XC8-1792) Fyrir avrxmega3 og avrtiny tæki gætu hlutar flassminnis hafa verið skildir eftir óforritaðir af MPLAB X IDE.
Misbrestur á að keyra aðal (XC8-1788) Í sumum tilfellum þar sem forritið hafði engar alþjóðlegar breytur skilgreindar, hætti ræsingarkóði keyrslutímans ekki og aðalfallinu () náðist aldrei.
Rangar minnisupplýsingar (XC8-1787) Fyrir avrxmega3 og avrtiny tæki, var forritið í avr-stærð að tilkynna að vitlaus gögn neyttu vinnsluminni í stað forritaminni.
Rangt lesið forritsminni (XC8-1783) Verkefni sem eru tekin saman fyrir tæki með forritaminni sem var varpað inn í gagnavistarrýmið og sem skilgreina hluti með því að nota PROGMEM fjölvi/eigin gætu hafa lesið þessa hluti frá röngum vistfangi.
Innri villa með eiginleikum (XC8-1773) Innri villa kom upp ef þú skilgreindir bendihluti með _at 0 eða attribute() táknunum á milli nafns bendils og tegundar sem vísað er frá, td.ample, bleikja * _at (0x800150) cp; Viðvörun er nú gefin út ef slíkur kóði rekst á.
Misbrestur á að keyra aðal (XC8-1780, XC8-1767, XC8-1754) Notkun EEPROM breytur eða skilgreining öryggi með því að nota stillingar pragma gæti hafa valdið rangri frumstillingu gagna og/eða læst keyrslu forrits í ræsingarkóða keyrslutíma, áður en aðal 0 er náð.
Öryggisvilla með pínulitlum tækjum (XC8-1778, XC8-1742) Attiny4/5/9/10120140 tækin voru með ranga öryggislengd tilgreind í hausnum files sem leiða til tengivillna þegar reynt er að smíða kóða sem skilgreindi öryggi.
Segmentunarvilla (XC8-1777) Bilun í hléum hefur verið leiðrétt.
Hrun samsetningar (XC8-1761) Avr -as assembler gæti hafa hrunið þegar þýðandinn var keyrður undir Ubuntu 18.
Hlutir ekki hreinsaðir (XC8-1752) Ekki er víst að hlutir sem ekki hafi verið frumstilltir í kyrrstöðu geymslutíma hafi verið hreinsaðir með ræsingarkóða keyrslutímans.
Andstæð forskrift tækis hunsuð (XC8-1749) The þýðandinn var ekki að búa til villu þegar margir valkostir tækjaforskrifta voru notaðir og gaf til kynna mismunandi tæki.
Minnisspilling eftir hrúgu (XC8-1748) The _heap_start táknið var rangt stillt, sem leiddi til þess að venjulegar breytur skemmdust af hrúgunni.
Villa við að flytja tengil (XC8-1739) Tengillfærsluvilla gæti hafa verið send út þegar kóði innihélt rjmn eða rcall með markmiði nákvæmlega 4k bætum í burtu.
5.6. Útgáfa 2.00 Engin.
Þekkt mál
Eftirfarandi eru takmarkanir á virkni þýðandans. Þetta geta verið almennar kóðunartakmarkanir eða frávik frá upplýsingum sem eru í notendahandbókinni. Merkimiðarnir í svigunum í fjörunni eru auðkenni þess máls í rakningargagnagrunninum. Þetta gæti verið gagnlegt ef þú þarft að hafa samband við þjónustudeild. Þessir hlutir sem eru ekki með merki eru takmarkanir sem lýsa aðgerðum og sem líklegt er að haldist í gildi til frambúðar.
6.1. MPLAB X IDE Samþætting
MPLAB IDE samþætting Ef nota á þýðanda frá MPLAB IDE, þá verður þú að setja upp MPLAB IDE áður en þú setur upp þýðanda.
6.2. Kóða kynslóð
Rangt frumstilling (XC8-2679) Það er misræmi á milli þess hvar upphafsgildin fyrir suma hnattræna/stöðubæta-stærð hluti eru settir í gagnaminni og hvar hægt verður að nálgast breyturnar á keyrslutíma.
strtod setur endptr rangt (XC8-2652) Í þeim tilfellum þar sem efnisstrengur fyrir umbreytingu með strtod () inniheldur það sem virðist vera fljótandi tölustafi á veldisvísissniði og það er óvæntur stafur á eftir e-staf, þá mun endptr vistfangið, ef það er gefið upp, benda á stafinn á eftir e-inu en ekki e-ið sjálft. Til dæmisample: strtod ("100exy", endptr);
mun leiða til þess að endptr bendir á x-stafinn.
Slæm óbein aðgerðasímtöl (X03-2628) Í sumum tilfellum gætu fallköll sem gerðar eru í gegnum aðgerðabendil sem er geymdur sem hluti af uppbyggingu mistekist.
strtof skilar núlli fyrir sextándaflöt (XC8-2626) Bókasafnsföllin strtof () o.fl. og scanf () o.fl. munu alltaf breyta sextándafalla flottölu sem ekki tilgreinir veldisvísi í núll. Til dæmisample: strtof ("Oxl", &endptr); mun skila gildinu 0, ekki 1.
Ónákvæm staflaráðgjafaskilaboð (XC8-2542, XC8-2541) Í sumum tilfellum er staflaráðgjafi viðvörun um endurkomu eða óákveðinn stafla sem notaður er (hugsanlega með notkun alloca()) ekki send út.
Bilun með tvíteknum truflunarkóða (XC8-2421) Þar sem fleiri en ein truflunaraðgerð er með sama meginmálið gæti þýðandinn látið úttakið fyrir eina truflunaraðgerðina kalla hina. Þetta mun leiða til þess að allar símtalsskrárskrár eru vistaðar að óþörfu og truflanirnar verða virkjaðar jafnvel áður en eftirmáli núverandi truflunarstjóra hefur keyrt, sem gæti leitt til kóðabilunar.
Konst hlutir sem eru ekki í forritaminni (XC8-2408) Fyrir avrxmega3 og avrtiny verkefni eru sameinaðir const hlutir settir í gagnaminni, jafnvel þó að viðvörun bendi til þess að þeir hafi verið settir í forritaminni. Þetta mun ekki hafa áhrif á tæki sem hafa ekki forritaminni kortlagt inn í gagnaminnið, né mun það hafa áhrif á hlut sem er frumstilltur.
Rangt úttak með ógildri DFP slóð (XCS-2376) Ef þýðandinn er kallaður fram með ógildri DFP slóð og „spec“ file er til fyrir valið tæki, þýðandinn er ekki að tilkynna um fjölskyldupakkann sem vantar og velur í staðinn „spec“ file, sem gæti þá leitt til ógilds úttaks. 'Specið' files gætu ekki verið uppfærð með dreifðu DFP og voru eingöngu ætluð til notkunar með innri þýðandaprófun.
Minni skörun ógreind (XC8-1966) Þjálfarinn greinir ekki minnisskörun hluta sem eru gerðir algjörir á heimilisfangi (í gegnum _at 0 ) og annarra hluta sem nota _sértrúarsöfnuðurjón () forskrift og sem eru tengd við sama heimilisfang.
Bilun í bókasafnsaðgerðum og _memx (XC8-1763) Kallaðar libgcc flotaðgerðir með viðfangsefni í _memx vistfangarýminu gætu mistekist. Athugaðu að bókasafnsvenjur eru kallaðar frá sumum C rekstraraðila, svo tdample, eftirfarandi kóði hefur áhrif: return regFloatVar > memxFloatVar;
Takmörkuð libgcc útfærsla (AVRTC-731) Fyrir ATTiny4/5/9/10/20/40 vörur, staðlað C / Math bókasafnsútfærsla í libgcc er mjög takmörkuð eða ekki til staðar.
Takmarkanir forritaminni (AVRTC-732) Forritaminnismyndir umfram 128 kb eru studdar af verkfærakeðjunni; Hins vegar eru þekkt tilvik um að tengill hafi hætt án slökunar og án gagnlegra villuboða frekar en að búa til nauðsynlega fallstubba þegar -mrelax valkosturinn er notaður.
Takmarkanir á nafnrými (AVRTC-733) Nafnuð vistfangarými eru studd af verkfærakeðjunni, með fyrirvara um þær takmarkanir sem getið er um í kaflanum um sérstakar gerðir.
Tímabelti The bókasafnsaðgerðir gera ráð fyrir GMT og styðja ekki staðbundin tímabelti, þannig mun loca It ime 0 skila sama tíma og gmtime ( ) , td.ample.
Skjöl / auðlindir
![]() |
MICROCHIP MPLAB XC8 C þýðanda útgáfa 2.39 útgáfuskýringar fyrir AVR MCU [pdfNotendahandbók MPLAB XC8 C þýðandaútgáfa 2.39 útgáfuskýrslur fyrir AVR MCU, MPLAB XC8 C, þýðandaútgáfu 2.39 útgáfuskýrslur fyrir AVR MCU, útgáfuskýringar fyrir AVR MCU |
![]() |
MICROCHIP MPLAB XC8 C þýðanda útgáfa 2.39 útgáfuskýringar fyrir AVR MCU [pdfNotendahandbók MPLAB XC8 C þýðanda útgáfu 2.39 útgáfuskýrslur fyrir AVR MCU, MPLAB XC8 C, þýðanda útgáfu 2.39 útgáfuskýrslur fyrir AVR MCU, athugasemdir fyrir AVR MCU |
![]() |
MICROCHIP MPLAB XC8 C þýðanda [pdfNotendahandbók MPLAB XC8 C þýðandi, MPLAB XC8 C, þýðandi |