MICROCHIP XC8 C þýðanda útgáfa 2.45 útgáfuskýringar fyrir AVR MCU
Upplýsingar um vöru
MPLAB XC8 C þýðandinn er hugbúnaðarverkfæri sem notað er til að miða á Microchip AVR tæki. Það er hannað til að setja saman C kóða og búa til keyrslu files fyrir þessi tæki. Þjálfaraútgáfan sem vísað er til í þessari notendahandbók er 2.45, með opinberan byggingardag 18. ágúst 2023. Fyrri útgáfan var 2.41, smíðuð 8. febrúar 2023. Þýðandinn kemur með hagnýtri öryggishandbók, sem veitir frekari upplýsingar og leiðbeiningar þegar MPLAB XC þýðendur eru notaðir með hagnýtum öryggisforritum. Þessi handbók er innifalin í skjalapakkanum þegar þú kaupir hagnýtt öryggisleyfi. MPLAB XC8 C þýðandinn styður öll tiltæk 8-bita AVR MCU tæki við útgáfu. Þú getur vísað til avr_chipinfo.html file í skjalaskrá þýðandans fyrir lista yfir öll studd tæki og stillingarbitastillingar þeirra. Það eru mismunandi útgáfur af MPLAB XC8 þýðandanum í boði. Leyfisútgáfan (PRO) útgáfan veitir meiri hagræðingu miðað við ókeypis útgáfuna. Til að virkja þýðandann sem leyfilega vöru þarftu að kaupa virkjunarlykil. Hins vegar er óleyfislausa útgáfan hægt að nota endalaust án leyfis. Fyrir hagnýt öryggisforrit er MPLAB XC8 Functional Safety þýðandinn fáanlegur. Það krefst hagnýtra öryggisleyfis sem keypt er af Microchip fyrir virkjun. Þegar það hefur verið virkjað er hægt að nýta öll hagræðingarstig og þýðandaeiginleika. MPLAB XC Functional Safety Compiler styður einnig netþjónaleyfið. Ítarlegar upplýsingar um uppsetningu, virkjun, leyfisgerðir og flutningsvandamál er að finna í Uppsetning og leyfisveiting MPLAB XC C þýðenda (DS50002059) skjalsins.
Notkunarleiðbeiningar fyrir vöru
- Áður en þú keyrir MPLAB XC8 C þýðandahugbúnaðinn skaltu lesa notendahandbókina til að fá mikilvægar upplýsingar og leiðbeiningar sem eru sértækar fyrir miðun á Microchip AVR tæki.
- Ef þú ert að nota þýðanda fyrir 8-bita PIC tæki skaltu skoða MPLAB XC8 C þýðanda útgáfuskýrslur fyrir PIC skjal.
- Gakktu úr skugga um að stýrikerfið þitt uppfylli kerfiskröfur til að keyra þýðandann. Tvöföld fyrir macOS hafa verið kóða-undirrituð og þinglýst. MPLAB XC Network License Server er fáanlegur fyrir Microsoft Windows 10 og nýrri, Ubuntu 18.04 og nýrri, og macOS 10.15 og nýrri. Athugaðu að MPLAB XC Network License Server er 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.
- Til að virkja MPLAB XC8 C þýðanda sem leyfilega (PRO) vöru skaltu kaupa virkjunarlykil. Þetta mun veita meiri hagræðingu miðað við ókeypis útgáfuna. Hins vegar er hægt að nota óleyfilega þýðandann endalaust án leyfis.
- Ef þú ert að nota MPLAB XC8 Functional Safety Compiler fyrir hagnýt öryggisforrit verður að virkja hann 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. Netþjónaleyfið er stutt af þessari útgáfu af MPLAB XC Functional Safety Compiler.
- Fyrir nákvæmar leiðbeiningar um uppsetningu, virkjun og leyfisveitingu MPLAB XC8 C þýðanda, vísa til Uppsetning og leyfisveitingu MPLAB XC C þýðanda (DS50002059) skjalsins.
- Ef þú ert að keyra þýðandann samkvæmt matsleyfinu færðu 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.
Yfirview
Inngangur
Þessi útgáfa af Microchip MPLAB® XC8 C þýðanda inniheldur nokkra nýja eiginleika, villuleiðréttingar og stuðning fyrir ný tæki.
Byggingardagsetning
Opinber byggingardagur þessarar þýðandaútgáfu er 18. ágúst 2023.
Fyrri útgáfa
Fyrri MPLAB XC8 C þýðandaútgáfan var 2.41, smíðuð 8. febrúar 2023.
Handbók um virkni öryggis
Hagnýt öryggishandbók fyrir MPLAB XC þýðendur er fáanleg í skjalapakkanum þegar þú kaupir hagnýtt öryggisleyfi.
Í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 í file nafnið staðsett undirskrá uppsetningarskrárinnar þinnar. Almenna umfjöllun um meginreglur sem liggja til grundvallar GPL má finna hér. Stuðningskóði veittur fyrir hausinn files, tengiforskriftir og keyrslusöfn eru sérkóði og falla 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.
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, macOS® 13.2 (Ventura), og Fedora 34. 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 Hat® Enterprise Linux sem og eldri útgáfum 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á avr_chipinfo.html (í skjalaskrá þýðandans) fyrir lista yfir öll studd tæki. Þessar skrár skrá einnig stillingarbitastillingar fyrir hvert tæki.
Ú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.
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 uppsetningarforritið .run (Linux) eða .app (macOS), td XC8-1.00.11403-windows.exe og fylgdu leiðbeiningunum á skjánum. 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.
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.
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.
Þjónustudeild
Þú getur spurt spurninga til annarra notenda þessarar vöru á XC8 Forum. 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:
Engin
- 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, MPLAB® XC8 notanda
- Leiðbeiningar fyrir innbyggða verkfræðinga – AVR® MCUs (DS50003108) hefur upplýsingar um uppsetningu verkefna í MPLAB X IDE og skrifa kóða fyrir fyrsta MPLAB XC8 C verkefnið þitt. Þ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.
Útgáfa 2.45
Alhliða leyfisstjóri (XC8-3175, XCLM-224) macOS útgáfan af leyfisstjóranum sem notuð er með þýðandanum er nú alhliða og býður upp á innbyggðan stuðning fyrir bæði Intel- og M1-undirstaða vélar. Linux útgáfan af leyfisstjóranum krefst nú að minnsta kosti útgáfu 2.25 af glibc. Mac alhliða tvöfaldur (XC8-3168, XC8-2951) Tvöfaldur þýðandaskrár fyrir macOS eru nú alhliða og bjóða upp á innbyggðan stuðning fyrir bæði Intel- og M1-undirstaða vélar. Minnkaðar stærðir svifmarkasafns (XC8-3112, XC8-3071) Endurbætur hafa verið gerðar á aðgerðum svifmarkasafns, þar á meðal sinf() pow(), sqrt(), expf(), log1fp() og nextafterf() , sem sjá minni kóðastærð fyrir þessar venjur. Stuðningur við nýja tæki er nú fáanlegur fyrir eftirfarandi AVR hluta: AVR16EA28, AVR16EA32, AVR16EA48, AVR32EA28, AVR32EA32, AVR32EA48, AVR16EB14, AVR16EB20, AVR16EB28 og AVR16EB32.
Útgáfa 2.41
- Bootrow stuðningur (XC8-3053) Þýðandinn mun setja innihald hvers kyns hluta með .bootrow forskeyti á heimilisfangið 0x860000 í HEX skránni. Þ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 retunarleiðbeiningum í 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, time_t, hefur verið breytt úr langri langri tegund í ómerkta langa tegund, sem gefur kóðastærðarbætur í sumum tímatengdum aðgerðum, eins og mktime().
- Nýtt nop (XC8-2946, 2945) Fjölvi NOP() hefur verið bætt við . Þessi fjölvi setur nop no-operation leið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. Í þessum aðstæðum mun þýðandinn reyna að skipta út fyrir rcall leiðbeiningar í jmp kalla leiðbeiningar sem mun 'trampoline' framkvæmd á tilskilið heimilisfang, tdample:
Ú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ð útlista kóða sem inniheldur aðgerðakallsleiðbeiningar (símtal/rcall). Þetta mun aðeins eiga sér stað 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 - mno-pa-outline-calls valmöguleikann, eða hægt er að slökkva á málsmeðferðarútdrætti algjörlega fyrir hlutskrá eða aðgerð með því að nota -mno-pa-on-file -mno-pa-on-fall, í sömu röð, eða með því að nota nopa eiginleikann (__nopa specifier) sértækt með föllum.
- Kóðaþekjufjölvi Þjálfarinn skilgreinir nú fjölva __CODECOV ef gildur -mcodecov valkostur er tilgreindur.
- Minni frátekið valkostur xc8-cc ökumaðurinn mun nú samþykkja -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 lagfæringar á printf kjarnakóðann, meðhöndla %n umbreytingartilgreinina sem sjálfstætt afbrigði, tengja í vararg pop rútínur eftir beiðni, 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.
Ú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ð.
Útgáfa 2.36
Engin.
Ú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 -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ð inn í gagnaminnið , þ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 MPLAB® XC8 C þýðanda fyrir AVR® 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á virkni bókasafns.)
- Smart IO Sem hluti af nýju sameinuðu bókasöfnunum eru IO 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 IO aðstoð valkostur Þegar símtöl eru greind í snjall IO aðgerðir (eins og printf() eða scanf() getur þýðandinn ekki alltaf ákvarðað út frá sniðstrengnum eða dregið þá ályktun af röksemdum hvaða umreikningsskilgreinar sem símtalið krefst. Áður gerði þýðandinn alltaf engar forsendur og tryggja að fullvirkar IO aðgerðir hafi verið tengdar inn í endanlegu forritsmyndina. Nýr valmöguleiki -msmart-io-format=fmt hefur verið bætt við þannig að notandinn geti í staðinn upplýst þýðandann um umbreytingarforskriftina sem snjall IO notar aðgerðir þar sem notkun þeirra er óljós, sem kemur í veg fyrir að of langar IO rútínur séu tengdar. (Sjá smart-io-snið valkost fyrir frekari upplýsingar.)
- Að setja sérsniðna hluta Áður setti -Wl,–section-start valmöguleikinn aðeins tilgreinda hlutann á 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 samt að fyrir staðlaða hluta, svo sem .text, .bss eða .data , mun úthlutunaraðilinn sem hentar best hafa fulla stjórn á staðsetningu þeirra og valkosturinn hefur engin áhrif. Notaðu valkostinn -Wl,-Tsection=addr, eins og lýst er í notendahandbókinni.
Ú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. Ítarlega staflaskýrslu er að finna í kortaskránni, sem hægt er að biðja um á venjulegan hátt.
- 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, AVRXNUMXDBXNUMX, AVRXNUMXDBXNUMX, AVRXNUMXDBXNUMX, AVRXNUMXDBXNUMX, AVRXNUMXDBXNUMX
- Stuðningur við afturkallað tæki Stuðningur er ekki lengur í boði fyrir eftirfarandi AVR hluta: AVR16DA28, AVR16DA32 og, AVR16DA48.
Útgáfa 2.31
Engin.
Ú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_clear_bss táknanna í samsetningarskrám, sem mun aftur koma í veg fyrir að þessar venjur séu teknar með í tengilinn.
- 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 -fsection- 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: ATA5272, ATA5790, ATA5790N, ATA5791, ATA5795, ATA6285, ATA6286, ATA6612C, ATA6613C, ATA6614Q, ATA6616C, ATA6617C, ATA664251C, ATAXNUMXC, ATAXNUMXC, ATAXNUMXC og XNUMXC.
Útgáfa 2.29 (virkt öryggisútgáfa)
- Hausskrá fyrir innbyggða þýðanda Til að tryggja að þýðandinn geti verið í samræmi við tungumálaforskriftir eins og MISRA, , hefur verið uppfært. Þessi haus inniheldur frumgerðir fyrir allar innbyggðar aðgerðir, eins og __builtin_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 skilgreiningunni __XC_STRICT_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.
Ú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.
Útgáfa 2.19 (virkt öryggisútgáfa)
Engin.
Ú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 pragmatinu við í upphafi skráarinnar til að útiloka alla skrána frá umfjöllunargreiningunni. Að öðrum kosti er hægt að nota __eigindið__((nocodecov)) til að útiloka tiltekið fall frá þekjugreiningum. - Tækjalýsingaskrár Ný tækisskrá sem heitir avr_chipinfo.html er staðsett í skjalaskrá þýðandreifingarinnar. Þessi skrá sýnir ö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æðingum fyrir verklagsútdrætti, sem kemur í stað algengra blokka af samsetningarkóða með köllum í útdregin 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 hlutaskrá með því að 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 __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ð 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 skrána (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: AVR28DA128, AVR64DA128, AVR32DA128 og AVR48DA128.
Ú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ð samhæfð hnattræn gögn eru geymd í forritaflassminni 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.
Ú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ð valkostasett með svipaða merkingarfræði til að búa til eða meðhöndla hvaða PIC eða AVR bókasafnsskrá sem er 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.
Útgáfa 2.45
Engin.
Útgáfa 2.41
Ónákvæmar fma aðgerðir fjarlægðar (XC8-2913) C99 staðlaða bókasafnið ( ) reiknaði ekki margföldunarsamlagningu með óendanlega nákvæmni í einni 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.
Útgáfa 2.40
Engin.
Útgáfa 2.39 (virkt öryggisútgáfa)
Engin.
Útgáfa 2.36
Engin.
Ú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() o.s.frv., ekki lengur reyna að breyta inntaksstreng ef grunnurinn sem tilgreindur er er stærri en 36 og mun þess í stað setja . C staðallinn tilgreinir ekki hegðun aðgerðanna þegar farið er yfir þetta grunngildi.
- Óviðeigandi hraðahagræðingar Verið var að virkja verklagsúrdráttarhagræðingar þegar valin var fínstilling á 3. stigi (-O3). Þ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á Sameinað staðalbókasafni 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 í lprintf_flt bókasafninu (-lprintf_flt valkostur) til að kveikja á sniðnum IO stuðningi fyrir float-snið tilgreina. Snjallir IO eiginleikar Microchip Unified Standard Library gera þennan valkost óþarfan. Að auki 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.
Útgáfa 2.32
Engin.
Útgáfa 2.31
Engin.
Útgáfa 2.30
Engin.
Útgáfa 2.29 (virkt öryggisútgáfa)
Engin.
Útgáfa 2.2
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.
Útgáfa 2.19 (virkt öryggisútgáfa)
Engin.
Útgáfa 2.10
Engin
Útgáfa 2.05
Const-hlutir í forritaminni Athugaðu að sjálfgefið, const-hæfðir hlutir verða settir og opnaðir í forritaminni (eins og lýst er hér). Þ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 -mno-const-data-in-progmem valkostinn.
Útgáfa 2.00
- Stillingar öryggi Nú er hægt að forrita stillingar öryggi tækisins með því að nota stillingar pragma fylgt eftir með stillingargildapörum til að tilgreina öryggi ástand, td #pragma config WDTON = SET #pragma config BODLEVEL = BODLEVEL_4V3
- Algerir 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(address) tilgreinirinn, td.ample:
- #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.
- #innihalda
- Ný setningafræði trufla aðgerða Þýðandinn samþykkir nú CCI __interrupt(num) tilgreinina til að gefa til kynna að C föll séu truflanir. Tilgreinandinn tekur truflunarnúmer, tdample: #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 í myndaða kóðanum 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 þau atriði 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.
Útgáfa 2.45
- Bilun í reikileyfi (XCLM-235) Reikileyfi virkuðu ekki rétt á Linux kerfum sem notuðu glibc útgáfur síðar en 2.28.
- Innri villa með fylki mannvirkja (XC8-3069) Þegar fjölvíddar fylkismeðlimir mannvirkis voru unnar, var vistfangarýmisskilyrði ekki rétt útbreitt til fylkisins. Þetta leiddi til ósamræmis í upplýsingum um tímafangsrýmið og innri þýðandavillu. Þetta ástand hefur verið leiðrétt.
- Slæm skrif á óræsta strauma (ML-353, XC8-3100) Ef staðlaða úttaks-/villustraumarnir voru ekki beinlínis settir upp með því að nota FDEV_SETUP_STREAM eða _init_stdout/_init_stderr , leiddi tilraun til að skrifa til þeirra til óskilgreindrar hegðunar. Þetta hafði einnig áhrif á skrif frá stdlib aðgerðum, eins og perror(). Öll skrif á þessa strauma áður en þeir hafa verið frumstilltir verða nú hunsaðir.
- Óstuddur breytibúnaður (XC8-2505) Avr-libc bókasafnið studdi ekki * breytimanninn í printf-stíl umbreytingarforskriftum, td.ample „%.*f“. Þetta er nú stutt með tilkomu Microchip Unified Standard Library.
- Margar óræstar viðvaranir (XC8-2409) Þjálfarinn var að gefa út mörg eins viðvörunarskilaboð þegar hann rakst á const fylki sem var ekki frumstillt. Skilaboðin hefðu bara átt að vera gefin út einu sinni, sem er nú raunin þegar þessi staða kemur upp.
Útgáfa 2.41
- Dongle vandamál á Ventura (XC8-3088) Dongles sem notaðir eru til að veita leyfi fyrir þýðandanum gætu ekki verið lesnir rétt á macOS Ventura vélum, sem leiddi til bilunar í leyfisveitingum. Breytingar á XCLM leyfisstjóra leiðrétta þetta mál.
- Röng vísbending um minnisúthlutun (XC8-2925) Reynt 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.) sem beðið er um þegar einfalt, kraftmikið minnisúthlutun er notað. 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 í einni 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() innihélt það sem virtist vera fljótandi tölustafur á veldisvísissniði og það var óvæntur stafur á eftir e/E staf, þar sem endptr hafði verið gefið upp, var það úthlutað heimilisfangi sem hafði það að benda á stafinn á eftir , 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 aðgerðin var að skila réttu gildi en setja hluta “xx” strengsins.
Útgáfa 2.40
- Of afslappaður (XC8-2876) Þegar valkosturinn -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) Eiginleikinn const-data-in-config-mapped- progmem er háður því að const-data-in-progmem eiginleikinn sé virkur. Ef const-data-in-config-mapped-progmem eiginleikinn var sérstaklega virkjaður með því að nota valmöguleikann og const-data-in-progmem eiginleikinn var óvirkur, mistókst tengiskrefið, þrátt fyrir viðvörunarskilaboð um að const-data-in -config-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 með í reikninginn að NVMCTRL skráin væri undir Conguration Change Protection (CCP) og gat ekki stillt IO SFR á síðuna sem notuð var með const-data-in-config-mapped-progmem þýðandaeiginleikanum. 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ð koma í veg fyrir flasskortlagningu (XC8-2847) Lausn til að leysa vandamál með eiginleika flasskortabúnaðar sem greint er frá í AVR128DA28/32/48/64 Silicon Errata (DS80000882) 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 (XC8-2833) Notkun nopa eigindarinnar með falli sem hefur fengið samsetningarnafn sitt tilgreint með því að nota __asm__() kveikti villuboð frá assembler. Þessi samsetning er ekki möguleg.
- Variadic fall bilun með bendibreytum (XC8-2755, XC8-2731) Aðgerðir með breytilegum fjölda frumbreyta búast við að 24-bita (__memx gerð) ábendingum berist í breytubreytulistann þegar const-data-in-progmem eiginleikinn er virkt. 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 const-data-in-progmem eiginleikinn er virkur, er öllum 16-bita bendibreytum nú breytt í 24-bita bendi.
- strtoxxx bókasafnsaðgerðir mistakast (XC8-2620) Þegar const-data-in-progmem eiginleiki 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 fyrir ógildar útsendingar (XC8-2612) Þjálfarinn mun nú gefa út villu ef eiginleiki const-in-progmem er virkjaður og heimilisfang strengs bókstafs er beinlínis varpað í gagnavistarrými (sleppir const qualfiier), td.ample, (uint8_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 óinitialized const objects (XC8-2408) Óinitialized og const rokgjarnra hluti const
var ekki verið að setja í 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.
Útgáfa 2.39 (virkt öryggisútgáfa)
Engin.
Ú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 kveiktu á villunni: __builtin_avr_delay_cycles býst við samsetningartíma heiltölu fastur.
Útgáfa 2.35
- Samfelld úthlutun með því að nota __at (XC8-2653) Samfelld úthlutun á mörgum hlutum í 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 - Að tilgreina upphafsföng hluta (XC8-2650) Valkosturinn -Wl,–section-start mistókst að staðsetja hluta á tilnefnt upphafsfang. Þetta mál hefur verið lagað fyrir sérsniðna hluta; það mun þó ekki virka fyrir neina staðlaða hluta, eins og .text eða .bss, sem verður að setja með -Wl,-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.
- No-falling-back (XC8-2646) –nofallback valkosturinn 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ðahagræðingar (XC8-2637) Verið var að virkja fínstillingu verklagsúrdráttar þegar 3. stigs fínstillingar voru valin (-O3). Þ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 (XC8-2629) eeprom_read_block rútínan virkaði ekki rétt á Xmega tækjum þegar – mconst-data-in-progmem valkosturinn 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 valmöguleikinn -Ttext eða -Tdata tengill (td.ampLeið 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ð ofmerktu falli (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__, __rof__)).
- Ógildur ATtiny truflunarkóði (XC8-2465) Þegar smíðað var fyrir ATtiny tæki og fínstillingarnar voru óvirkar (-O0), gætu truflunaraðgerðir hafa kveikt operand utan sviðs
- Valmöguleikar eru ekki færðir í gegnum (XC8-2452) Þegar -Wl valmöguleikinn er notaður með mörgum, kommu-aðskildum tengimöguleikum, var ekki verið að senda alla tengimöguleikana til tengiliðsins.
- Villa við óbeint lestur forritaminni (XC8-2450) Í sumum tilfellum framleiddi þýðandinn innri villu (óþekkjanlegt insn ) við lestur tveggja bæta gildis úr bendili í forritaminni
Útgáfa 2.32
Annar aðgangur að bókasafni mistókst (XC8-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.
Útgáfa 2.31
Óútskýrðar þýðandabilanir (XC8-2367) Þegar keyrt er á Windows kerfum sem voru með tímabundna skrá kerfisins stillt á slóð sem innihélt punktinn '.' staf, gæti þýðandinn hafa mistekist að keyra.
Útgáfa 2.30
- Alþjóðleg merki á röngum stað eftir útlínur (XC8-2299) Handskrifaður samsetningarkóði sem setur alþjóðlega merkimiða í samsetningarraðir sem eru teknar út af málsmeðferðarú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 „Labels as values“ GNU C tungumálaviðbót gæti hafa valdið því að fínstillingaraðferðir á útdráttaraðferðum hrundu, með uppfærsluvillu sem spannar bilið.
- Not so const (XC8-2271) Frumgerðir fyrir strstr() og aðrar aðgerðir frá ekki lengur tilgreina óstaðlaða hæfileika fyrir skilaða strengjabendingu þegar const -mconst-data-in- progmem 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, frumstillir fyrir aðrar breytur í sömu þýðingareiningu sem voru settar í sama hluta týndu.
Útgáfa 2.29 (virkt öryggisútgáfa)
Engin.
Útgáfa 2.20
- Villa með löngum skipunum (XC8-1983) Þegar þú notar AVR-markmið gæti þýðandinn hætt með villu sem ekki fannst 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
Útgáfa 2.19 (virkt öryggisútgáfa)
Engin.
Útgáfa 2.10
- Bilun í flutningi (XC8-1891) Besti ú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.
- Fjölvi vantar Forvinnslumagnin _XC8_MODE_, __XC8_VERSION, __XC og __XC8 eru sjálfkrafa skilgreind af þýðandanum. Þessar eru nú fáanlegar.
Ú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 í keyrslutímakóða.
- Sleppt flassiminni (XC8-1792) Fyrir avrxmega3 og avrtiny tæki gætu hlutar flassiminnsins hafa verið skildir eftir óforritaðir af MPLAB X IDE.
- Misbrestur á að keyra main (XC8-1788) Í sumum aðstæðum þar sem forritið hafði engar alþjóðlegar breytur skilgreindar, hætti keyrslutími ræsingarkóði ekki og main() fallinu 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 varpað inn í gagnavistarrýmið og sem skilgreina hluti sem 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áknunum á milli nafns bendills 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 skilgreiningar á öryggi með því að nota stillingar pragma gæti hafa valdið rangri frumstillingu gagna og/eða læst keyrslu forrits í keyrslutíma ræsingarkóða, áður en aðal( ).
- Öryggisvilla með örsmáum tækjum (XC8-1778, XC8-1742) Attiny4/5/9/10/20/40 tækin voru með ranga öryggislengd tilgreinda í hausskrám sem leiða til tengivillna þegar reynt var að búa til kóða sem skilgreindi öryggi .
- Segmentation bilun (XC8-1777) Bilun í hléum hefur verið leiðrétt.
- Assembler crash (XC8-1761) Avr-as assembler gæti hafa hrunið þegar þýðandinn var keyrður undir Ubuntu 18.
- Hlutir ekki hreinsaðir (XC8-1752) Hlutir sem ekki hafa verið frumstilltir í kyrrstöðu geymslutíma gætu ekki hafa verið hreinsaðir með ræsingarkóða keyrslutímans.
- Misvísandi tækjaforskrift 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) __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) Villa við að flytja tengil gæti hafa verið send út þegar kóði innihélt rjmp eða rcall með marki í nákvæmlega 4k bætum fjarlægð.
Ú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 útgáfunnar í 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.
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.
- Fylkisvilluupplýsingar (XC8-3157) Villuleitarupplýsingarnar sem þýðandinn gefur til kynna ekki nákvæmlega hlutgerðina fyrir fylki í __memx vistfangarýminu. Þetta kemur í veg fyrir athugun á hlutnum í IDE.
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 eru ekki samstilltar (XC8-2948) Þegar hagræðingar til slökunar á hlekkjum minnka leiðbeiningar (td.ample 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. Í neðangreindu frvample, það eru tvö símtöl til foo sem endar slaka á ættingja símtöl.
- Bilun í PA-minniúthlutun (XC8-2881) Þegar notaðir eru fínstillingar fyrir verklagsúrdrátt gæti tengillinn tilkynnt um minnisúthlutunarvillur þegar kóðastærð er nálægt því magni sem er tiltækt forritaminni í tækinu, jafnvel þó að forritið ætti að geta passað það sem er tiltækt pláss.
- Ekki svo snjall Smart-IO (XC8-2872) Smart-io eiginleiki þýðandans mun búa til gildan en óákjósanlegan kóða fyrir snprintf aðgerðina ef slökkt hefur verið á const-data-in-progmem eiginleikanum eða ef tækið hefur allt sitt flass kortlagt í gagnaminni.
- Jafnvel minna snjall Smart-IO (XC8-2869) Smart-io eiginleiki þýðandans mun búa til gildan en óákjósanlegur kóða þegar -flto og -fno-innbyggðir 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 á röngum stað eykst 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.
- Úrvinnsluröð hlutaskráa (XC8-2863) Röð þar sem hlutaskrár verða unnar af tengiliðnum gæti verið mismunandi eftir notkun aðferðafræðilegrar útdráttarfínstillingar (-mpa valkostur). Þetta myndi aðeins hafa áhrif á kóða sem skilgreinir veikar aðgerðir yfir margar einingar.
- Tengingarvilla með algeru (XC8-2777) Þegar hlutur hefur verið gerður alger á vistfangi í upphafi vinnsluminni og óforstilltir hlutir hafa einnig verið skilgreindir, gæti tengivilla komið af stað.
- Stutt vakningarauðkenni (XC8-2775) Fyrir ATA5700/2 tæki eru PHID0/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ð því að nota – Wl,–defsym tengill valkostinn.
- Röng frumstilling (XC8-2679) Misræmi er á milli þess hvar upphafsgildi fyrir suma hnattræna/stöðubæta-stærð hluti eru settir í gagnaminni og þar sem hægt verður að nálgast breyturnar á keyrslutíma.
- Slæm óbein aðgerðakall (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() o.fl. og scanf() o.fl., munu alltaf breyta sextándaflæðistölu sem tilgreinir ekki veldisvísi í núll. Til dæmisample: strtof(“0x1”, &endptr); mun skila gildinu 0, ekki 1.
- Ónákvæm staflaráðgjafaskilaboð (XC8-2542, XC8-2541) Í sumum tilvikum er staflaráðgjafaviðvörunin um endurtekningu 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ð hefur sama meginmál gæti þýðandinn látið úttakið fyrir eina truflunarfallið 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.
- Slæmt úttak með ógildri DFP slóð (XC8-2376) Ef þýðandinn er kallaður fram með ógildri DFP slóð og „spec“ skrá er til fyrir valið tæki, er þýðandinn ekki að tilkynna um fjölskyldupakkann sem vantar og velur í staðinn „spec“ skrá, sem gæti þá leitt til ógilds úttaks. „Spec“-skrárnar voru hugsanlega ekki uppfærðar með dreifðu DFP-skjölunum og voru eingöngu ætlaðar til notkunar með innri þýðandaprófun.
- Minni skörun ógreind (XC8-1966) Þjálfarinn er ekki að greina minni skörun hluta sem eru gerðir algjörir á vistfangi (með __at()) og öðrum hlutum sem nota __section() tilgreinina og sem eru tengdir við sama heimilisfang.
- Bilun í bókasafnsaðgerðum og __memx (XC8-1763) Kallaðar libgcc float föll með viðfangi í __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örurnar er staðlað C / Math bókasafnsútfærsla í libgcc mjög takmörkuð eða ekki til staðar.
- Forritaminnistakmarkanir (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.
- Nafnarýmistakmarkanir (AVRTC-733) Nafnuð heimilisfangsrými eru studd af verkfærakeðjunni, með fyrirvara um þær takmarkanir sem getið er um í notendahandbókarhlutanum Special Type Qualifiers.
- Tímabelti The bókasafnsaðgerðir gera ráð fyrir GMT og styðja ekki staðbundin tímabelti, þannig mun localtime() skila sama tíma og gmtime() , td.ample.
Skjöl / auðlindir
![]() |
MICROCHIP XC8 C þýðanda útgáfa 2.45 útgáfuskýringar fyrir AVR MCU [pdfLeiðbeiningar AVR MCU, XC8 C, XC8 C þýðandaútgáfa 2.45 útgáfuskýrslur fyrir AVR MCU, þýðandaútgáfu 2.45 útgáfuskýringar fyrir AVR MCU, útgáfu 2.45 útgáfuskýrslur fyrir AVR MCU, útgáfuskýringar fyrir AVR MCU, athugasemdir fyrir AVR MCU, AVR MCU |