MICROCHIP lógóMPLAB® XC8 C þýðanda útgáfa 2.41 útgáfuskýrslur fyrir AVR® MCU
Eigandahandbók

MPLAB XC8 C þýðandaþróunarhugbúnaður

Þ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Ð. 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 þýðanda inniheldur nokkra nýja eiginleika og villuleiðréttingar.
1.2. Byggingardagsetning
Opinber byggingardagur þessarar þýðandaútgáfu er 8. febrúar 2023.
1.3. Fyrri útgáfa
Fyrri MPLAB XC8 C þýðandaútgáfan var 2.40 smíðuð 3. júlí 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
MPLAB XC8 C þýðandinn fyrir AVR MCU tækin 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. MPLAB XC Network License Server er fáanlegur fyrir margs konar 64-bita stýrikerfi, þar á meðal Microsoft Windows 10 og nýrri; Ubuntu 18.04 og nýrri; eða macOS 10.15 og nýrri. Miðlarinn gæti einnig keyrt á ýmsum öðrum stýrikerfum, þar á meðal Windows Server, Linux dreifingum, eins og Oracle® Enterprise Linux® og Red Hate Enterprise Linux auk eldri útgáfur af studdum stýrikerfum. Hins vegar er MPLAB XC Network License Server ekki prófaður á þessum stýrikerfum. MPLAB XC Network License Server er hægt að keyra á sýndarvélum studda stýrikerfisins með sýndarvélaleyfi fyrir netleyfa (SW006021-VM). Allar 32-bita útgáfur af MPLAB XC netþjóninum eru hættir frá og með útgáfu 3.00.
Tæki studd
Þessi þýðandi styður öll tiltæk 8-bita AVR MCU tæki við útgáfu. Sjá (í möppu þýðanda) fyrir lista yfir öll studd tæki. Þessar skrár eru einnig skráðar
avr_chipinfo.html skjalastillingarbitastillingar fyrir hvert tæki.

1.7. Ú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 Compiler 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.8. 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.8.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ímabundna möppunnar á 'Full Control'.
Til að ákvarða staðsetningu temp möppunnar skaltu slá inn %temp% í Run skipunina (Windows lógólykill + R).
Þetta mun opna file explorer valmynd sem sýnir þá möppu og gerir þér kleift að ákvarða slóð þeirrar möppu.
1.9. 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ð, inniheldur MPLAB® XC8 C þýðandanotendahandbók fyrir AVR® MCU upplýsingar um þá þýðandavalkosti og eiginleika sem eiga við um þennan arkitektúr.

MICROCHIP MPLAB XC8 C þýðandaþróunarhugbúnaður -

1.10. Stuðningur viðskiptavina
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 net- og uppfærðar útgáfur af MPLAB XC8 skjölum, vinsamlegast farðu á tækniskjöl Microchip á netinu websíða. Ný eða uppfærð AVR skjöl í þessari útgáfu:

  • MPLAB® XC8 C þýðanda notendahandbók fyrir AVR® MCU (endurskoðun G)
  • AVR® GNU Toolchain til MPLAB® XC8 Migration Guide (endurskoðun A)
  • Hexmate notendahandbók (útgáfa B)

AVR® GNU Toolchain til MPLAB® XC8 Migration Guide lýsir breytingum á frumkóða og byggingarvalkostum sem gætu verið nauðsynlegar ef þú ákveður að flytja C-undirstaða verkefni frá AVR 8-bita GNU Toolchain yfir í Microchip MPLAB XC8 C þýðanda. 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 þessara upplýsinga voru áður í MPLAB® XC8 C þýðandahandbók fyrir AVR® MCU. Tækjasértækar bókasafnsupplýsingar eru enn í þessari þýðandahandbók.
Ef þú ert að byrja með 8-bita tæki og MPLAB XC8 C þýðanda, þá hefur MPLAB® XC8 notendahandbók fyrir innbyggða verkfræðinga – AVR® MCUs (DS50003108) upplýsingar um uppsetningu verkefna í MPLAB X IDE og ritun kóða fyrir þinn fyrsta MPLAB XC8 C verkefnið. Þessum handbók er nú dreift með þýðandanum.
Hexmate notendahandbókin er ætluð þeim sem keyra Hexmate sem sjálfstætt forrit.

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 til að styðja eiginleikana sem fylgja.
3.1. Útgáfa 2.41
Bootrow stuðningur (XC8-3053) Þjálfarinn mun setja innihald hvers kyns hluta með forskeytinu á.bootrow heimilisfang 0x860000 í HEX skrána. Þessir hlutar eru notaðir fyrir BOOTROW minni, sem er hannað til að geyma lykla og aðrar öruggar upplýsingar sem aðeins ættu að vera aðgengilegar ræsiforritara.

Eyðing óþarfa skila (XC8-3048) Þýðandinn mun nú útrýma óþarfa leiðbeiningum í ret föllum með halahoppi þegar sérsniðin tengiforskrift er notuð. Þetta er svipuð fínstilling og áður var framkvæmd, en hún er nú framkvæmd á öllum munaðarlausum hlutum, jafnvel þó að sérsniðið tengiforskrift sé notað og besta úthlutunarkerfið sé ekki í spilun. Tímagerð breyting (XC8-2982, 2932) C99 staðlaða bókasafnsgerðinni hefur verið breytt úr time_t í tegund, sem gefur kóðastærð umbætur í sumum tímatengdum löngum aðgerðum, svo sem. óundirritaður langur mktime()
Nýtt nop (XC8-2946, 2945) Fjölvi hefur verið bætt við. Þessi fjölvi setur inn nei-NOP() nop aðgerðaleiðbeiningar inn í úttakið.
Uppfærsla í XCLM (XC8-2944) Leyfisstjórinn sem notaður er með þýðandanum hefur verið uppfærður og er nú móttækilegri þegar farið er yfir leyfisupplýsingar þýðandans.
Trampólínuð símtöl (XC8-2760) Þýðandinn getur nú framkvæmt skipti á leiðbeiningum um langa símtöl með styttri hlutfallssímtölum þegar hlutfallslegt form leiðbeininganna væri venjulega utan áfangastaðar. Í þessu ástandi mun þýðandinn reyna að skipta út fyrir leiðbeiningar um að kalla rcall leiðbeiningar sem munu 'trampoline' framkvæmd á tilskilið heimilisfang, tdample: jmp
rkalla tramp_foo ;var kalla foo

rkalla tramp_fó

tramp_fó:
jmp foo

Þessari hagræðingu, ásamt svipaðri fínstillingu forritsflæðis, er stjórnað af -mrelax valkostinum.

3.2. Útgáfa 2.40
Stuðningur við nýja tæki er nú fáanlegur fyrir eftirfarandi AVR hluta: AT90PWM3, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR64EA28, AVR64EA32, AVR64EA48, AVRXNUMX og AVRXNUMX.
Bætt málsmeðferðarútdráttur Hagræðingartólið fyrir málsmeðferðarútdrátt (PA) hefur verið endurbætt þannig að hægt er að nota kóða sem inniheldur aðgerðakallsleiðbeiningar (/ ). Þetta mun aðeins eiga sér stað kalla rcall ef staflinn er ekki notaður til að senda rök til né fá aftur gildi úr fallinu. Staflinn er notaður þegar kallað er á fall með breytilegum röksemdalista eða þegar kallað er á fall sem tekur fleiri rök en það eru skrár sem eru tilgreindar í þessu skyni. Hægt er að slökkva á þessum eiginleika með því að nota valmöguleikann eða slökkva á málsmeðferðarútdrætti algjörlega fyrir hlutaskrá eða aðgerð með því að nota- og, í sömu röð, eða með því að nota eigindina (tilgreinina) sértækt með föllum.
mno-pa-outline-símtöl -mno-pa-on-file -mno-pa-on-function nopa Code coverage macro Þjálfarinn skilgreinir nú fjölvi ef gildur valkostur er __nopa __CODECOV -mcodecov tilgreindur.
Minni frátekningarvalkostur Ökumaðurinn mun nú samþykkja xc8-cc -mreserve=space@start:end valmöguleikann þegar hann byggir fyrir AVR skotmörk. Þessi valkostur áskilur sér tilgreint minnissvið í annað hvort gagna- eða forritaminnisrýminu, sem kemur í veg fyrir að tengillinn fylli kóða eða hluti á þessu svæði. Snjallari snjall IO Nokkrar endurbætur hafa verið gerðar á Smart IO aðgerðunum, þar á meðal almennar breytingar á printf kjarnakóðanum, meðhöndla %n umbreytingarforritið sem sjálfstætt afbrigði, tengja inn vararg pop rútínur á eftirspurn, nota styttri gagnagerðir þar sem hægt er til að meðhöndla IO falla rök, og þáttur sameiginlegur kóða í sviði breidd og nákvæmni meðhöndlun. Þetta getur leitt til umtalsverðs kóða- og gagnasparnaðar, auk þess að auka framkvæmdarhraða IO.

3.3. Ú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.4. Útgáfa 2.36
Engin.

3.5. Ú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 Nýi valmöguleikinn -mgas-isr-prologues stjórnar samhengisskiptakóðanum sem myndaður er fyrir þjónusturútur fyrir litlar truflanir. Þ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 const-hæ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ð í gagnaminni rými, þar sem hægt verður að nálgast það á skilvirkari hátt.
Microchip Unified Standard Libraries Allir MPLAB XC þýðendur munu deila Microchip Unified Standard Library, sem er nú fáanlegt með þessari útgáfu af MPLAB XC8. Notendahandbók MPLA# XC8 C þýðanda fyrir AVO MCU inniheldur ekki lengur skjölin fyrir þessar stöðluðu 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á Lila virkni.)
Smart I0 Sem hluti af nýju sameinuðu bókasöfnunum eru I0 aðgerðir í printf og scanf fjölskyldunum nú sérsniðnar í 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 ICI aðstoð valkostur Þegar símtöl eru greind í snjall I0 aðgerðir (eins og prenta f () 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 – msmart-io-format=fmt valkostur hefur verið bætt við þannig að notandinn geti í staðinn upplýst þýðandann um umbreytingarforskriftina sem notaðir 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á valkost fyrir smart-io-snið 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ögnum, mun úthlutunaraðilinn sem hentar best hafa enn fulla stjórn á staðsetningu þeirra og valkosturinn hefur engin áhrif. Notaðu valkostinn -ton, -Tsection=addr, eins og lýst er í notendahandbókinni.
3.6. Ú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-usage skipanalínuvalkostinn. 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 nýrra tækja er fáanlegur fyrir eftirfarandi AVR hluta: ATTINY427, ATTINY424, ATTINY426, ATTINY827, ATTINY824, ATTINY826, AVR32DB32, AVR64DB48, AVR64DB64, AVR64DB28, AVR32DB28, AVR64DB32, AVR32DB48, AVR16DB28, AVR16DB32, AVR16DB48, AVRXNUMXDBXNUMX, AVRXNUMXDBXNUMX Stuðningur við afturkallað tæki Stuðningur er ekki lengur í boði fyrir eftirfarandi AVR hluta: AVRXNUMXDAXNUMX, AVRXNUMXDAXNUMX og, AVRXNUMXDAXNUMX.
3.7. Útgáfa 2.31
Engin.
3.8. Ú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 af afritunargögnum og gera hreinsa bss tákn í 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ú tiltækir til að stjórna sumum þessara hagræðinga, sérstaklega -f hluta-akkeri, sem gerir kleift að framkvæma aðgang að kyrrstæðum hlutum miðað við eitt tákn; -mpa-iterations=n, sem gerir kleift að breyta fjölda endurtekningar í verklagsreglum úr sjálfgefnu 2; og -mpa-callcost-shortcall, 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.
Stuðningur við nýjan tækjabúnað er fáanlegur fyrir eftirfarandi AVR hluta: AVR16DA28, AVR16DA32, AVR16DA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR128 AVR28, AVR128, AVR32, AVR128 og VR48DB128. Stuðningur við inndrætt tæki er ekki lengur í boði fyrir eftirfarandi AVR hluta: ATA64, ATA5272, ATA5790N, ATA5790, ATA5791, ATA5795, ATA6285, ATA6286C, ATA6612C, ATA6613Q, ATA6614C, ATA6616C, ATA6617C, ATA664251C, ATAXNUMXC, ATAXNUMXC og XNUMXC.
3.9. Útgáfa 2.29 (virkt öryggisútgáfa)
Haus file fyrir innbyggða þýðanda Til að tryggja að þýðandinn geti verið í samræmi við tungumálaforskriftir eins og MISRA, the 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_avr_nop ( ) og innbyggða avr delay_cycles () . Sumar innbyggðar eru hugsanlega ekki MISRA samhæfðar; þessum er hægt að sleppa með því að bæta defineXCSTRICT_MISRA við þýðanda skipanalínuna. Innbyggðu tækin og yfirlýsingar þeirra hafa verið uppfærðar til að nota gerðir með fastri breidd.
3.10. Útgáfa 2.20
Stuðningur við nýja tæki er í boði fyrir eftirfarandi AVR hluta: ATTINY1624, ATTINY1626 og ATTINY1627.
Betri úthlutun sem hentar best Besta úthlutunin (BFA) í þýðandanum hefur verið endurbætt þannig að köflum er úthlutað í þeirri röð sem gerir betri hagræðingu. BFA styður nú nafngreind heimilisfangarými og sér betur um frumstillingu gagna.
Bætt aðferðafræðileg útdráttur Hagræðingar aðferðaúrdráttar 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.11. Útgáfa 2.19 (virkt öryggisútgáfa)
Engin.
3.12. Útgáfa 2.10
Code Coverage Þessi útgáfa inniheldur kóðaþekjueiginleika sem auðveldar greiningu á því hversu mikið 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 kallaður avr_chipinfo . html er staðsett í docs möppunni í þýðandadreifingunni. Þ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/gildisverki 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 með sérstöku forriti, sem er sjálfkrafa kallað fram af þýðandanum þegar val á stigi 2, 3 eða s hagræðingu. Þ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 nota -mno-pa-on-file=filenafn, eða óvirkt fyrir fall með því að nota -mno-pa-on-function=fall. Inni í frumkóðanum þínum er hægt að slökkva á málsmeðferðarútdrætti fyrir fall með því að nota eigind ( (nopa) ) með skilgreiningu fallsins, eða með því að nota nopa, sem stækkar í eigind ( (nopa, noinline) ) og kemur þannig í veg fyrir að fallinlína eigi sér stað og það er útdráttur á innbyggðum kóða.
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. Stuðningur við nýja tæki er í boði fyrir eftirfarandi hluta: AVR28DAl28, AVR64DAl28, AVR32DA 128 og AVR48DA 128.
3.13. Útgáfa 2.05
Fleiri bitar 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 Þjálfarinn 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.
Staðlað ókeypis leyfislausar (ókeypis) útgáfur af þessum þýðanda leyfa nú hagræðingu upp að og með stigi 2. Þetta mun leyfa svipaða, þó ekki eins, úttak og það sem áður var mögulegt með stöðluðu 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.
Stuðningur við nýja tæki er í boði fyrir eftirfarandi hluta: ATMEGA1608, ATMEGA1609, ATMEGA808 og ATMEGA809.

3.14. Útgáfa 2.00
Ökumaður á efstu stigi Nýr ökumaður, kallaður xc8-cc, situr nú fyrir ofan fyrri avr-gcc ökumann og xc8 ökumann og hann getur kallað á viðeigandi þýðanda miðað við val á marktæki. Þ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ókasafnsbílstjóri Nýr bókasafnsbílstjóri er staðsettur fyrir ofan fyrri PIC bókasafnsbókavörð og AVR avr-ar bókavörð. Þessi bílstjóri samþykkir valkosti í GCC-skjalastjórastíl, sem eru annaðhvort þýddir fyrir eða sendar í gegnum bókasafnsvörðinn sem verið er að framkvæma. Nýi bílstjórinn gerir kleift að nota svipað 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.41
Ónákvæmar fma aðgerðir fjarlægðar (XC8-2913) C99 staðlaða bókasafnið fma 0 -fjölskylduaðgerðir ( ) reiknaði ekki margföldunarsamlagningu með óendanlega nákvæmni í eina námundun, heldur söfnuðu námundunarvillum við hverja aðgerð. Þessar aðgerðir hafa verið fjarlægðar úr meðfylgjandi bókasafni.
4.2. Útgáfa 2.40
Engin.
4.3. Útgáfa 2.39 (virkt öryggisútgáfa)
Engin.
4.4. Útgáfa 2.36 Engin.
4.5. Útgáfa 2.35
Meðhöndlun strengja-í-basa (XC8-2420) Til að tryggja samræmi við aðra XC-þýðendur, munu XC8-streng-til-föllin, eins og strtol () osfrv., 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 aðgerðanna þ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ði I0 stuðningur við float-format forskriftir. Hinn snjalli I0 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 ) munu virka rétt með slíkum gögnum þegar const-data-in-program-minni eiginleikinn er virkur.

4.6. Útgáfa 2.32
Engin.
4.7. Útgáfa 2.31
Engin.
4.8. Ú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 skipulagi 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 litbrigði). Þ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 -mnoconst-data-in-progmem valkostinn.
4.6. Útgáfa 2.00
Stillingar öryggi Nú er hægt að forrita búnaðinn stillingar öryggi með því að nota stillingar pragma sem fylgt er eftir með pörum fyrir stillingar og gildi til að tilgreina stöðu öryggisins, td.
#pragma config WDTON = SET
#pragma config BODLEVEL = BODLEVEL_4V3
Algjörir hlutir og aðgerðir Hluti og aðgerðir er nú hægt að setja á tiltekið heimilisfang í minni með því að nota CCI (address) forskriftina, til dæmisample:
#innihalda
int foobar_at(0x800100);
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 gefin til kynna með því að nota offset upp á 0x800000. Virkjaðu CCI til að nota þennan eiginleika.
Ný setningafræði trufla aðgerða Þýðandinn samþykkir nú CCI _interrupt (num) forskriftina til að gefa til kynna að C aðgerðir séu truflanir. Tilgreinandinn tekur truflunarnúmer, til dæmisample:
#innihalda
ógilt __rof(SPI_STC_vect_num) spi_Isr(ógilt) { … }

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 útgáfunnar í 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 (DFP) 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.41
Dongle útgáfur á Ventura (XC8-3088) Dongles notað til að veita leyfi fyrir þýðandanum gæti hafa verið ekki lesið rétt á macOS Ventura vélum, sem leiddi til bilana í leyfisveitingum. Breytingar á XCLM leyfisstjóra leiðrétta þetta mál.
Röng vísbending um minnisúthlutun (XC8-2925) Tilraun til að úthluta SIZE_MAX bætum (eða gildi nálægt þessu) af minni með því að nota staðlaðar minnisstjórnunaraðgerðir bókasafns (malloc () o.fl.) tókst rangt. Það tók ekki tillit til þess að þörf væri á auka bæti til viðbótar við blokkina sem óskað var eftir við notkun á einföldu útfærslu minnisúthlutunar. NULL bendill verður nú skilað og errno stilltur á ENOMEM við slíkar aðstæður.
Ónákvæmar fma aðgerðir fjarlægðar (XC8-2913) C99 staðlaða bókasafnið fma ( ) -fjölskylduaðgerðir ( ) reiknaði ekki margföldunarsamlagningu með óendanlega nákvæmni í eina námundun, heldur söfnuðu námundunarvillum við hverja aðgerð. Þessar aðgerðir hafa verið fjarlægðar úr meðfylgjandi bókasafni.
Slæm meðhöndlun strengjabreytinga (XC8-2921, XC8-2652) Þegar „efnisröð“ fyrir umbreytingu með strtod Cr innihélt það sem virtist vera fljótandi tölustafi á veldisvísissniði og það var óvæntur stafur á eftir e/E stafnum, þar sem endptr hafði verið gefið upp, var honum úthlutað heimilisfangi sem lét það benda á stafinn á eftir e/E, en það hefði átt að benda á e/E stafinn sjálfan, þar sem því hafði ekki verið breytt. Til dæmisample, strtod ("100exx", &ep) ætti að skila 100.00 og stilla ep til að benda á "exx" hluta strengsins, en fallið var að skila réttu gildi en stillti ep til að benda á "xx" hluta strengsins .

5.2. Útgáfa 2.40
Of afslappaður (XCS-2876) Þegar valmöguleikinn -mrelax var notaður var þýðandinn ekki að úthluta sumum hlutum saman, sem leiddi til minna ákjósanlegra kóðastærða. Þetta gæti hafa átt sér stað með kóða sem notaði nýju MUSL bókasöfnin eða með veikum táknum.
Kortlagningareiginleiki ekki óvirkur eins og fram kemur í viðvörun (XC8-2875) Const-data-in-config-mappedprogmem eiginleikinn er háður því að const-data-in-progmem eiginleikinn sé virkur. Ef const-data-inconfig-mapped-progmem eiginleikinn var sérstaklega virkjaður með því að nota valmöguleikann og const-data-inprogmem eiginleikinn var óvirkur, mistókst tengiskrefið, þrátt fyrir viðvörunarskilaboð um að const-data-in-con mynd- mapped-progmem eiginleiki hafði verið sjálfkrafa óvirkur, sem var ekki alveg rétt. Const-data-in-config-mapped-progmem eiginleikinn er nú að fullu óvirkur í þessum aðstæðum.
DFP breytingar til að fá réttan aðgang að NVMCTRL (XC8-2848) Kóðinn fyrir keyrslutíma sem AVR64EA tæki notuðu tók ekki tillit til þess að NVMCTRL skráin var undir Configuration Change Protection (CCP) og gat ekki stillt I0 SFR á síðuna sem const-data-in-configmapped-progmem notaði þýðanda eiginleiki. Breytingar sem gerðar eru á AVR-Ex_DFP útgáfu 2.2.55 munu gera ræsingarkóðanum kleift að skrifa rétt í þessa skrá.
DFP breytingar til að forðast flasskortlagning (XC8-2847) Lausn á vandamáli með eiginleika flasskortabúnaðar sem greint er frá í AVR128DA28/32/48/64 Silicon Errata (D580000882) hefur verið innleidd. Const-data-in-config-mapped-progmem þýðandaeiginleikinn verður ekki notaður sjálfgefið fyrir tæki sem verða fyrir áhrifum og þessi breyting mun birtast í AVR-Dx_DFP útgáfu 2.2.160.
Byggingarvilla með sinhf eða coshf (XC8-2834) Tilraunir til að nota sinhf () eða coshf () bókasafnsaðgerðirnar leiddu til tengivillu sem lýsir óskilgreindri tilvísun. Fallið sem vantar sem vísað er til hefur nú verið innifalið í þýðandadreifingunni.
Byggja villur með nopa (XC,8-2833) Notkun nopa eigindarinnar með falli sem hefur fengið assembler nafn sitt tilgreint með asm ( ) kveikti villuboð frá assembler. Þessi samsetning er ekki möguleg.
Variadic fall bilun með bendi rökum (XC8-2755, XC8-2731) Aðgerðir með breytilegum fjölda frumbreyta búast við að 24-bita (memx gerð) ábendingum berist í breytubreytulistann þegar aðgerðin const-data-in-progmem er virkjuð. Rök sem voru vísbendingar um gagnaminni voru send sem 16 bita hluti, sem olli kóðabilun þegar þau voru að lokum lesin. Þegar constdata-in-progmem eiginleikinn er virkjaður, er öllum 16-bita bendibreytum nú breytt í 24-bita bendi.
strtoxxx bókasafnsaðgerðir mistakast (XC8-2620) Þegar eiginleiki const-data-in-progmem var virkjaður var endptr færibreytan í strtoxxx bókasafnsaðgerðum ekki uppfærð rétt fyrir frumstrengsrök sem ekki eru í minni forritsins.
Viðvaranir vegna ógildra kasta (XC8-2612) Þýðandinn mun nú gefa út villu ef const-in-progmem eiginleiki er virkur og heimilisfang strengs bókstafs er beinlínis varpað í gagnavistarrými (sleppir const undankeppninni), td.ample, (uint 8_t *) "Halló heimur!". Viðvörun er gefin út ef heimilisfangið gæti verið ógilt þegar const gagnabendill er beinlínis varpað á gagnavistarrými.
Staðsetning óinitialdra const-hluta (XC8-2408) Óinitialized const og const rokgjarnir hlutir voru ekki settir í forritaminni á tækjum sem varpa öllu eða hluta af forritaminni inn í gagnavistarrýmið. Fyrir þessi tæki eru slíkir hlutir nú settir í forritaminni, sem gerir virkni þeirra í samræmi við önnur tæki.

5.3. Útgáfa 2.39 (virkt öryggisútgáfa)
Engin.
5.4. Útgáfa 2.36
Villa við seinkun (XC8-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: innbyggður avr delay_cycles býst við samsetningartíma heiltölufasta.
5.5. Útgáfa 2.35
Samfelld úthlutun með því að nota _at (XC8-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 arr1[] __attribute__((section(“.mysec”))) __at (0x500) = {0xAB, 0xCD};
const char arr2[] __attribute__((section(“.mysec”))) = {0xEF, 0xFE};
hefði átt að setja arr2 strax á eftir arr1.
Tilgreina upphafsföng hluta (XC8-2650) The -W1, –section-start valkostur mistókst hljóðlega að setja hluta á tilnefnt upphafs heimilisfang. Þetta mál hefur verið lagað fyrir sérsniðna hluta; það mun þó ekki virka fyrir neina staðlaða hluta, svo sem . texta eða. bss, sem verður að setja með -W1, -T valmöguleika.
Tengill hrynur þegar slakað er á (XC8-2647) Þegar -mrelax fínstillingin var virkjuð og það voru kóða eða gagnahlutar sem pössuðu ekki inn í tiltækt minni, hrundi tengillinn. Nú, við slíkar aðstæður, eru villuskilaboð gefin út í staðinn.

Engin afturför (XC8-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 (X03-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æmt EEPROM aðgangur (XC8-2629) The eeprom_read_block venja virkaði ekki rétt á Xmega tækjum þegar -mconst-data-in-progmem valmöguleikinn var virkur (sem er sjálfgefið ástand), sem leiddi til þess að EEPROM minni var ekki lesið rétt.
Ógild minnisúthlutun (XC8-2593, XC8-2651) Þegar -Ttext eða -Tdata tengimöguleiki (tdampLeið sem fór í gegnum með því að nota -vl 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 eigind ((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 fara ekki í gegnum (XC8-2452) Þegar valmöguleikinn er notaður með mörgum, kommuaðskildum tengimöguleikum, voru ekki allir tengimöguleikar færðir til tengiliðsins.
Villa við óbeint lestur forritaminni (X03-2450) Í sumum tilfellum framleiddi þýðandinn innri villu (óþekkjanlegt insn) þegar hann las tveggja bæta gildi úr bendili í forritaminni
5.6. Útgáfa 2.32
Annar aðgangur af bókasafn bilar (XC8-2381) Að kalla fram Windows útgáfuna af xc8-ar. .exe bókasafnsskjalasafni í annað sinn til að fá aðgang að núverandi safnskrá gæti hafa mistekist með villuskilaboðum sem ekki var hægt að endurnefna.
5.7. Útgáfa 2.31
Óútskýrður þýðandi bilanir (XC8-2367) Þegar keyrt var á Windows kerfum sem voru með tímabundna skrá kerfisins stillt á slóð sem innihélt punktinn '.' staf, gæti þýðandinn hafa mistekist að keyra.
5.8. Útgáfa 2.30
Alþjóðleg merki röng eftir útlistun (XC8-2299) Handskrifaður samsetningarkóði sem setur alþjóðlega merkimiða í samsetningarraðir sem eru teknar út með verklagsfræðilegri útdrætti gæti ekki hafa verið rétt endurstaðsett.
Afslappandi hrun (XC8-2287) Notkun -mrelax valmöguleikans gæti hafa valdið því að tengillinn hrundi þegar slökunarhagræðingar á halahoppi reyndu að fjarlægja ret leiðbeiningar sem voru ekki í lok hluta.
Hrun þegar merki eru fínstillt sem gildi (XC8-2282) Kóði sem notar „Merki sem gildi“ GNU C tungumálaviðbót gæti hafa valdið því að hagræðingaraðferðir á útdrætti hrundu, með útlistuðu VMA svið spannar uppfærsluvillu.
Not so const (XC8-2271) Frumgerðirnar fyrir st rstr ( ) og aðrar aðgerðir frá ekki lengur tilgreina óstöðluð const qualifier á skiluðum strengjabendum þegar -mconst-data-inprogmem eiginleikinn er óvirkur. Athugaðu að með avrxmega3 og avrtiny tækjum er þessi eiginleiki virkur varanlega.
Týndir frumstillir (XC8-2269) Þegar fleiri en ein breyta í þýðingareiningu var sett í hluta (með því að nota _section eða _attribute_ ( (section) )), og fyrsta slíka breytan var núll frumstillt eða hafði ekki frumstilli, frumstilli fyrir aðrar breytur í sömu þýðingareiningu sem voru settar í sama kafla týndust.
5.1. Útgáfa 2.29 (virkt öryggisútgáfa)
Engin.
5.2. Útgáfa 2.20
Villa með löngum skipunum (XC8-1983) Þegar þú notar AVR miða gæti þýðandinn hafa hætt með a file ekki fannst villa, 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 mistókst að úthluta minni fyrir sérsniðna rodata hluta þegar hann var byggður fyrir avrxmega3 og avrtiny arkitektúr, sem gæti hugsanlega valdið minni skörunarvillum
5.3. Útgáfa 2.19 (Virknisöryggisútgáfa)
Engin.
5.4. Útgáfa 2.10
Misbrestur á flutningi (XC8-1891) Besta úthlutunartækið var að skilja eftir „göt“ í minni á milli hluta eftir slökun á hlekki. 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-388) Nokkrar skilgreiningar frá , eins og clock_div_t og clock_prescale set () , voru ekki skilgreind fyrir tæki, þar á meðal ATmega324PB, ATmega328PB, ATtiny441 og ATtiny841.
Vantar fjölvi Forvinnslufróin _XC8_MODE_, _XC8_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.
Mistök við 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 avr-stærð forritið að tilkynna að skrifvarinn gögn neyttu vinnsluminni í stað forritaminni.
Rangt lestur forritaminni (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 () eða attribute() tákn á milli nafns bendils og frávísaðrar tegundar, 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 komið er í aðal ( ) .
Öryggisvilla með pínulitlum tækjum (XC8-1778, XC8-1742) Attiny4/5/9/ 10/20/40 tækin voru með ranga öryggislengd sem tilgreind var í hausnum files sem leiða til tengivillna þegar reynt er að smíða kóða sem skilgreindi öryggi.
Skipting bilun (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) Þjálfarinn 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) Tengillflutningsvilla gæti hafa verið send út þegar kóði innihélt rjmp eða rcall með marki 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 í notendahandbókinni. Merkimiðarnir í svigunum í titlinum 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óð
Segfault with section-anchors valmöguleika (XC8-3045) Forrit sem skilgreindi föll með breytilegum rifrildislista og sem notar valmöguleikann -fsection-anchors gæti hafa kallað fram innri þýðandavillu: Segmentation villa.
Villuleitarupplýsingar ekki samstilltar (XC8-2948) Þegar slökunarhagræðingar tengja minnka leiðbeiningar (tdample call to rcall leiðbeiningar), gæti upprunalína til að vista kortlagningu ekki verið samstillt þegar fleiri en ein samdráttaraðgerð á sér stað í hluta.
Í hér að neðan fyrrverandiample, það eru tvö símtöl til foo sem endar slaka á ættingja símtöl.
Bilun í PA minni úthlutun (XC8-2881) Þegar hagræðingaraðferðir eru notaðar, gæti tengillinn tilkynnt um minnisúthlutunarvillur þegar kóðastærð er nálægt því magni af tiltæku forritaminni í tækinu, jafnvel þó að forritið ætti að geta passað tiltækt pláss.
Ekki svo snjall Smart-I0 (XC8-2872) Smart-io eiginleiki þýðandans mun búa til gildan en óákjósanlegan kóða fyrir snprint f aðgerðina ef const-data-in-progmem eiginleikinn hefur verið óvirkur eða ef tækið hefur allt flassið sitt kortlagt í gagnaminni.
Jafnvel minna snjall Smart-I0 (XC8-2869) Smart-io eiginleiki þýðandans mun búa til gildan en óákjósanlegan kóða þegar -flto og -fno-builtin valkostirnir eru báðir notaðir.
Óákjósanlegur skrifvarinn gagnastaðsetning (XC8-2849) Tengillinn er sem stendur ekki meðvitaður um APPCODE og APPDATA minnishlutana, né [No-Read-While-Write skiptingarnar í minniskortinu. Þar af leiðandi eru litlar líkur á því að tengillinn gæti úthlutað skrifvarið gögnum á óviðeigandi minnissvæði. Líkurnar á að gögn séu á rangri stað aukast ef const-data-in-progmem eiginleikinn er virkur, sérstaklega ef const-data-in-config-mapped-progmem eiginleikinn er einnig virkur. Hægt er að slökkva á þessum eiginleikum ef þörf krefur.
Hlutur file vinnslupöntun (XC8-2863) Röð sem hlutir files verður unnin af tengilinn gæti verið mismunandi byggt á notkun verklagsbundinna útdráttarhagræðingar (-mpa valkostur). Þetta myndi aðeins hafa áhrif á kóða sem skilgreinir veikar aðgerðir yfir margar einingar.
Tengilvilla með algeru (XC8-2777) Þegar hlutur hefur verið gerður alger á heimilisfangi í upphafi vinnsluminni og óforstilltir hlutir hafa einnig verið skilgreindir, gæti tengivilla komið af stað.
Stutt vöknunarauðkenni (XC8-2775) Fyrir ATA5700/2 tæki eru PHIDO/1 skrárnar aðeins skilgreindar sem 16 bita á breidd, frekar en 32 bita á breidd.
Tengill hrun þegar hringt er tákn (XC8-2758) Tengillinn gæti hrunið ef -mrelax driver valkosturinn er notaður þegar frumkóði kallar á tákn sem hefur verið skilgreint með -cc., –de f sym linker valmöguleikanum.
Röng frumstilling (XC8-2679) Þar er misræmi á milli þess hvar upphafsgildi fyrir suma hnattræna/stöðubæta hluti eru settir í gagnaminni og þar sem hægt verður að nálgast breyturnar á keyrslutíma.
Slæm óbein aðgerðasímtöl (XC8-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 et al og scanf ( ) et al, munu alltaf umbreyta sextándafjölda flottölu sem tilgreinir ekki veldisvísi í núll. Til dæmisample:
strtof ("Oxl", &endptr);
mun skila gildinu 0, ekki I.
Ó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.
Rangt úttak með ógildri DFP slóð (XC8-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 (með _at ( )) og öðrum hlutum sem nota hluta ( ) forskrift og sem eru tengdir við sama heimilisfang.
Bilun í bókasafnsaðgerðum og _memx (XC8-1763) Kallaðar libgcc flotaðgerðir með rifu í memx vistfangarýminu gætu mistekist. Athugaðu að bókasafnsvenjur eru kallaðar frá sumum C rekstraraðila, svo tdample, eftirfarandi kóða hefur áhrif:
skila regFloatVar > memxFloatVar;
Takmörkuð libgcc útfærsla (AVRTC-731) Fyrir ATTiny4/5/9/10/20/40 vörurnar er staðlað C / Math bókasafnsútfærsla í libgcc 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ð bindi sé hætt án slökunar og án gagnlegra villuboða frekar en að búa til nauðsynlega fallstubba þegar -mre lax 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 að staðartími ( ) mun skila sama tíma og gmtime ( ) , td.ample.

file:///Applications/microchip/xc8/v2.41/docs/Readme_XC8_for_AVR.htm

Skjöl / auðlindir

MICROCHIP MPLAB XC8 C þýðandaþróunarhugbúnaður [pdf] Handbók eiganda
MPLAB XC8 C, MPLAB XC8 C þýðandaþróunarhugbúnaður, þýðandaþróunarhugbúnaður, þróunarhugbúnaður, hugbúnaður

Heimildir

Skildu eftir athugasemd

Netfangið þitt verður ekki birt. Nauðsynlegir reitir eru merktir *