MICROCHIP MPLAB XC8 C samesteller sagteware
HIERDIE DOKUMENT BEVAT BELANGRIKE INLIGTING MET BETREKKING TOT DIE MPLAB XC8 C-samesteller WANNEER MICROCHIP AVR-TOESTELLE GETEIK WORD.
LEES DIT ASSEBLIEF VOORDAT U HIERDIE SAGTEWARE LAAT. SIEN DIE MPLAB XC8 C-KOMPILEER-VRYSTELLING-NOTAS VIR PIC-DOKUMENT AS JY DIE SAMESTELLER GEBRUIK VIR 8-BIT PIC-TOESTELLE.
verbyview
Inleiding
Hierdie vrystelling van die Microchip MPLAB® XC8 C-samesteller bevat verskeie nuwe kenmerke, foutoplossings en nuwe toestelondersteuning.
Bou datum
Die amptelike boudatum van hierdie samestellerweergawe is 3 Julie 2022.
Vorige weergawe
Die vorige MPLAB XC8 C-samestellerweergawe was 2.39, 'n funksionele veiligheidssamesteller, gebou op 27 Januarie 2022. Die vorige standaardsamesteller was weergawe 2.36, gebou op 27 Januarie 2022.
Funksionele Veiligheidshandleiding
'n Funksionele Veiligheidshandleiding vir die MPLAB XC-samestellers is beskikbaar in die dokumentasiepakket wanneer jy 'n funksionele veiligheidslisensie koop.
Komponent lisensies en weergawes
Die MPLAB® XC8 C-samesteller vir AVR MCU's-nutsgoed word geskryf en versprei onder die GNU General Public License (GPL), wat beteken dat die bronkode daarvan vrylik versprei en aan die publiek beskikbaar is. Die bronkode vir gereedskap onder die GNU GPL kan afsonderlik van Microchip's afgelaai word webwerf. Jy kan die GNU GPL in die file genaamd geleë die subgids van jou installasiegids. 'n Algemene bespreking van beginsels onderliggend aan die GPL kan hier gevind word. Ondersteuningskode verskaf vir die kopskrif files, koppelskrifte en looptydbiblioteke is eie kode en word nie onder die GPL gedek nie.
Hierdie samesteller is 'n implementering van GCC weergawe 5.4.0, binutils weergawe 2.26, en gebruik avr-libc weergawe 2.0.0.
Stelselvereistes
Die MPLAB XC8 C samesteller en die lisensiesagteware wat dit gebruik, is beskikbaar vir 'n verskeidenheid bedryfstelsels, insluitend 64-bis weergawes van die volgende: Professionele uitgawes van Microsoft Windows 10; Ubuntu 18.04; en macOS 10.15.5. Binaries vir Windows is kode-onderteken. Binaries vir Mac OS is gekode-onderteken en notarieel.
As jy 'n netwerklisensiebediener gebruik, mag slegs rekenaars met bedryfstelsels wat deur die samestellers ondersteun word, gebruik word om die lisensiebediener te huisves. Vanaf xclm weergawe 2.0 kan die netwerklisensiebediener op 'n Microsoft Windows Server-platform geïnstalleer word, maar die lisensiebediener hoef nie op 'n bedienerweergawe van die bedryfstelsel te loop nie.
Toestelle wat ondersteun word
Hierdie samesteller ondersteun alle 8-bis AVR MCU toestelle wat bekend is ten tyde van vrystelling. Sien (in die samesteller se doc-gids) vir 'n lys van alle ondersteunde toestelle. Hierdie files lys ook konfigurasiebisinstellings vir elke toestel.
Uitgawes en lisensie-opgraderings
Die MPLAB XC8 samesteller kan as 'n gelisensieerde (PRO) of ongelisensieerde (gratis) produk geaktiveer word. Jy moet 'n aktiveringssleutel koop om jou samesteller te lisensieer. 'n Lisensie maak voorsiening vir 'n hoër vlak van optimalisering in vergelyking met die Gratis produk. 'n Ongelisensieerde samesteller kan onbepaald sonder 'n lisensie bedryf word.
'n MPLAB XC8 Functional Safety-samesteller moet geaktiveer word met 'n funksionele veiligheidslisensie wat by Microchip gekoop is. Die samesteller sal nie sonder hierdie lisensie werk nie. Sodra dit geaktiveer is, kan jy enige optimaliseringsvlak kies en al die samestellerkenmerke gebruik. Hierdie vrystelling van die MPLAB XC Functional Safety Compiler ondersteun die netwerkbedienerlisensie.
Sien die installering en lisensiëring van MPLAB XC C-samestellers (DS50002059) dokument vir inligting oor lisensietipes en installering van die samesteller met 'n lisensie.
Installasie en aktivering
Sien ook die Migrasie-kwessies en -beperkings-afdelings vir belangrike inligting oor die nuutste lisensiebestuurder wat by hierdie samesteller ingesluit is.
As jy MPLAB IDE gebruik, maak seker dat jy die nuutste MPLAB X IDE weergawe 5.0 of later installeer voordat jy hierdie instrument installeer. Verlaat die IDE voordat die samesteller geïnstalleer word. Begin die .exe (Windows), .run (Linux) of app (macOS) samesteller installeerder toepassing, bv. XC8-1.00.11403-windows.exe en volg die aanwysings op die skerm.
Die verstek installasie gids word aanbeveel. As jy Linux gebruik, moet jy die samesteller installeer met behulp van 'n terminaal en vanaf 'n wortelrekening. Installeer met 'n macOS-rekening met administrateurregte.
Aktivering word nou afsonderlik na installasie uitgevoer. Sien die dokument Lisensiebestuurder vir MPLAB® XC C-samestellers (DS52059) vir meer inligting.
As jy kies om die samesteller onder die evalueringslisensie te laat loop, sal jy nou 'n waarskuwing tydens samestelling kry wanneer jy binne 14 dae na die einde van jou evalueringsperiode is. Dieselfde waarskuwing word uitgereik as jy binne 14 dae na die einde van jou HPA-intekening is.
Die XC Network License Server is 'n aparte installeerder en is nie by die enkelgebruiker samesteller installeerder ingesluit nie.
Die XC-lisensiebestuurder ondersteun nou swerwing van drywende netwerklisensies. Gemik op mobiele gebruikers, hierdie kenmerk laat 'n drywende lisensie toe om vir 'n kort tydperk van die netwerk af te gaan. Deur hierdie kenmerk te gebruik, kan jy van die netwerk ontkoppel en steeds jou MPLAB XC-samesteller gebruik. Sien die doc-lêergids van die XCLM-installasie vir meer oor hierdie kenmerk. MPLAB X IDE bevat 'n lisensievenster (Gereedskap > Lisensies) om swerwing visueel te bestuur.
Los installasie kwessies op
As jy probleme ondervind om die samesteller onder enige van die Windows-bedryfstelsels te installeer, probeer die volgende voorstelle.
- Begin die installasie as 'n administrateur.
- Stel die toestemmings van die installeerdertoepassing op 'Volledige beheer'. (Regsklik op die file, kies Eienskappe, Sekuriteit-oortjie, kies gebruiker, wysig.)
- Stel toestemmings van die temp-lêergids op "Volledige beheer!
Om die ligging van die temp-lêergids te bepaal, tik %temp% in die Run-opdrag (Windows-logosleutel + R). Dit sal 'n oopmaak file Explorer-dialoog wat daardie gids wys en sal jou toelaat om die pad van daardie gids te bepaal.
Samesteller dokumentasie
Die samesteller se gebruikersgidse kan oopgemaak word vanaf die HTML-bladsy wat in jou blaaier oopmaak wanneer jy op die blou hulpknoppie in MPLAB X IDE-kontroleskerm klik, soos in die skermkiekie aangedui.
As jy vir 8-bis AVR-teikens bou, bevat die MPLAB® XC8 C-samestellergebruikersgids vir AVR® MCU inligting oor daardie samestelleropsies en kenmerke wat op hierdie argitektuur van toepassing is.
Kliënte ondersteuning
Microchip verwelkom foutverslae, voorstelle of opmerkings oor hierdie samestellerweergawe. Stuur asseblief enige foutverslae of kenmerkversoeke via die ondersteuningstelsel.
Dokumentasie-opdaterings
Vir aanlyn en bygewerkte weergawes van MPLAB XC8 dokumentasie, besoek asseblief Microchip se aanlyn tegniese dokumentasie webwebwerf.
Nuwe of opgedateerde AVR-dokumentasie in hierdie vrystelling:
- MUSL kopieregkennisgewing
- Installering en lisensiëring van MPLAB XC C-samestellers (hersiening M)
- MPLAB XC8 Gebruikersgids vir ingebedde ingenieurs – AVR MCU's (hersiening A)
- MPLAB XC8 C-samestellergebruikersgids vir AVR MCU (hersiening F)
- Microchip Unified Standard Library Reference Guide (hersiening B)
Die Microchip Unified Standard Library Reference Guide beskryf die gedrag van en koppelvlak tot die funksies wat deur die Microchip Unified Standard Library gedefinieer word, sowel as die beoogde gebruik van die biblioteektipes en makro's. Sommige van hierdie inligting was voorheen vervat in die MPLAB® XC8 C-samestellergebruikersgids vir AVR® MCU. Toestelspesifieke biblioteekinligting word steeds in hierdie samestellergids vervat.
As jy net begin met 8-bis-toestelle en die MPLAB XC8 C-samesteller, het die MPLAB® XC8-gebruikersgids vir ingebedde ingenieurs – AVR® MCU's (DS50003108) inligting oor die opstel van projekte in die MPLAB X IDE en die skryf van kode vir jou eerste MPLAB XC8 C-projek. Hierdie gids word nou saam met die samesteller versprei.
Die Hamate-gebruikersgids is ingesluit in die dokumente-gids in hierdie vrystelling. Hierdie gids is bedoel vir diegene wat Hamate as 'n selfstandige toepassing gebruik.
Wat is nuut
Die volgende is nuwe AVR-teikenkenmerke wat die samesteller nou ondersteun. Die weergawenommer in die subopskrifte dui die eerste samestellerweergawe aan om die kenmerke wat volg te ondersteun.
Weergawe 2.40
Nuwe toestelondersteuning Ondersteuning is nou beskikbaar vir die volgende AVR-onderdele: AT90PWM3, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR64EA28, AVR64EA, AVR32EA, AVR64EA en AVR48EA.
Verbeterde prosedurele abstraksie Die prosedurele abstraksie (PA)-optimeringsinstrument is verbeter sodat kode wat 'n funksie-oproepinstruksie (oproepherroep) bevat, uiteengesit kan word. Dit sal slegs plaasvind as die stapel nie gebruik word om argumente na die funksie deur te gee of terugstuurwaarde van die funksie te verkry nie. Die stapel word gebruik wanneer 'n funksie met 'n veranderlike argumentlys geroep word of wanneer 'n funksie geroep word wat meer argumente neem as wat daar registers is wat vir hierdie doel aangewys is. Hierdie kenmerk kan gedeaktiveer word deur die monk-pa-outline-oproepe opsie te gebruik, of prosedurele abstraksie kan heeltemal gedeaktiveer word vir 'n voorwerp file of funksioneer deur die -monk-pa-on- te gebruikfile en -mo.-pa-op-funksie onderskeidelik, of deur die nipa-kenmerk (nipa-spesifiseerder) selektief met funksies te gebruik
Kode dekking makro Die samesteller definieer nou die makro __CODECOV as 'n geldige mcodecov opsie gespesifiseer is.
Geheue bespreking opsie Die xc8-cc-bestuurder sal nou die -mreserve=space@start: end-opsie aanvaar wanneer jy vir AVR-teikens bou. Hierdie opsie behou die gespesifiseerde geheuereeks in die data- of programgeheuespasie, wat verhoed dat die koppelaar kode of voorwerpe in hierdie area invul.
Slimmer slim IO Verskeie verbeterings is aangebring aan die Smart IO-funksies, insluitend algemene aanpassings aan die printf-kernkode, die behandeling van die %n-omskakeling-spesifiseerder as 'n onafhanklike variant, koppeling in vararg-poproetines op aanvraag, gebruik korter datatipes waar moontlik vir die hantering van IO-funksieargumente , en faktorisering van algemene kode in veldwydte en presisiehantering. Dit kan aansienlike kode- en databesparings tot gevolg hê, asook die uitvoeringspoed van IO verhoog.
Weergawe 2.39 (Funksionele Veiligheidsvrystelling)
Netwerkbedienerlisensie Hierdie vrystelling van die MPLAB XC8 Functional Safety Compiler ondersteun die netwerkbedienerlisensie.
Weergawe 2.36
Geen.
Weergawe 2.35
Nuwe toestelondersteuning Ondersteuning is beskikbaar vir die volgende AVR-onderdele: ATTINY3224, ATTINY3226, ATTINY3227, AVR64DD14, AVR64DD20, AVR64DD28 en AVR64DD32.
Verbeterde kontekswisseling Die nuwe -mcall-isr-prologues opsie verander hoe onderbrekingsfunksies registers stoor by inskrywing en hoe daardie registers herstel word wanneer die onderbrekingsroetine eindig. Dit werk op 'n soortgelyke manier as die -mcall-prologues-opsie, maar beïnvloed slegs onderbrekingsfunksies (ISR's).
Selfs meer verbeterde kontekswisseling Die nuwe -mgas-isr-prologues opsie beheer die kontekste wat gegenereer word vir klein onderbrekingsdiensroetines. Wanneer dit geaktiveer is, sal hierdie funksie die samesteller die ISR laat skandeer vir registergebruik en slegs hierdie gebruikte registers stoor indien nodig.
Konfigureerbare flitskartering Sommige toestelle in die AVR DA en AVR DB familie het 'n SFR (bv. FLMAP) wat spesifiseer watter 32k afdeling van programgeheue in die datageheue gekarteer sal word. Die nuwe - mconst-data-in-config-mapped-proem opsie kan gebruik word om die skakelaar alle nadele gekwalifiseerde data in een 32k afdeling te plaas en outomaties die relevante SFR register te inisialiseer om te verseker dat hierdie data in die data geheue spasie gekarteer word , waar dit meer effektief verkry sal word.
Mikroskyfie verenigde standaardbiblioteke Alle MPLAB XC samestellers sal 'n Microchip Unified Standard Library deel, wat nou beskikbaar is met hierdie vrystelling van MPLAB XC8. Die MPLAB® XC8 C-samestellergebruikersgids/of AVR® MCU bevat nie meer die dokumentasie vir hierdie standaardfunksies nie. Hierdie inligting kan nou gevind word in die Microchip Unified Standard Library Reference Guide. Let daarop dat sommige funksies wat voorheen deur avr-libc gedefinieer is, nie meer beskikbaar is nie. (Sien Biblioteek):'. funksionaliteit...)
Slim IO As deel van die nuwe verenigde biblioteke word IO-funksies in die druk- en skanderingsfamilies nou pasgemaak op elke bouvorm gegenereer, gebaseer op hoe hierdie funksies in die program gebruik word. Dit kan die hulpbronne wat deur 'n program gebruik word aansienlik verminder.
Slim IO bystand opsie Wanneer oproepe na slim IO-funksies (soos printf () of scanf () ) ontleed word, kan die samesteller nie altyd uit die formaatstring bepaal of uit die argumente daardie omskakelingspesifiseerders wat deur die oproep vereis word, aflei nie. Voorheen sou die samesteller altyd geen aannames maak nie en verseker dat ten volle funksionele IO-funksies in die finale programbeeld gekoppel is. 'n Nuwe – msmart-io-format=fmt-opsie is bygevoeg sodat die samesteller eerder deur die gebruiker ingelig kan word oor die omskakelingspesifiseerders wat gebruik word deur slim IO-funksies waarvan die gebruik dubbelsinnig is, wat verhoed dat buitensporige lang IO-roetines gekoppel word. (Sien smart-io-formaat opsie vir meer besonderhede.)
Plaas pasgemaakte afdelings Voorheen het die -Wl, -seksie-begin opsie slegs die gespesifiseerde afdeling by die gevraagde adres geplaas wanneer die koppelaarskrip 'n uitvoerafdeling met dieselfde naam gedefinieer het. Toe dit nie die geval was nie, is die afdeling geplaas by 'n adres wat deur die skakelaar gekies is en die opsie is in wese geïgnoreer. Nou sal die opsie vir alle pasgemaakte afdelings geëer word, selfs al definieer die koppelskrif nie die afdeling nie. Let egter daarop dat vir standaardafdelings, soos . teks,. bss of. data, sal die beste gepaste toewyser steeds volledige beheer oor hul plasing hê, en die opsie sal geen effek hê nie. Gebruik die -Wl, -Tsection=add-opsie, soos beskryf in die gebruikersgids.
Weergawe 2.32
Stapelleiding Beskikbaar met 'n PRO samesteller lisensie, die samesteller se stapel leiding funksie kan gebruik word om die maksimum diepte van enige stapel wat deur 'n program gebruik word, te skat. Dit konstrueer en ontleed die oproepgrafiek van 'n program, bepaal die stapelgebruik van elke funksie, en produseer 'n verslag waaruit die diepte van stapels wat deur die program gebruik word, afgelei kan word. Hierdie kenmerk word geaktiveer deur die -mchp-stack-usage opdragreël opsie. 'n Opsomming van stapelgebruik word gedruk na uitvoering. 'n Gedetailleerde stapelverslag is op die kaart beskikbaar file, wat op die gewone manier aangevra kan word.
Ondersteuning vir nuwe toestelle is beskikbaar vir die volgende AVR-onderdele: ATTINY 427, ATTINY 424, ATTINY 426, ATTINY827, ATTINY824, ATTINY826, AVR32DB32, AVR64DB48, AVR64DB64, AVR64DB28, AVR32DB28, AVR64DB32 en AVR32DB48 en AVRXNUMXDBXNUMX.
Ondersteuning vir teruggetrek toestel is nie meer beskikbaar vir die volgende AVR-onderdele nie: AVR16DA28, AVR16DA32 en, AVR16DA48.
Weergawe 2.31
Geen.
Weergawe 2.30
Nuwe opsie om data-inisialisering te voorkom 'n Nuwe -mno-data-ini t bestuurder opsie verhoed die inisialisering van data en die skoonmaak van bss afdelings. Dit werk deur die afvoer van die do_ copy_ data en d o_ clear_ bss simbole in samestelling te onderdruk files, wat op sy beurt die insluiting van daardie roetines deur die skakelaar sal verhoed.
Verbeterde optimalisering 'n Aantal optimaliseringsverbeterings is gemaak, insluitend die verwydering van oortollige terugkeer-instruksies, die verwydering van sommige spronge na aanleiding van 'n skip-as-bis-is-instruksie, en verbeterde prosedurele abstraksie en die vermoë om hierdie proses te herhaal.
Bykomende opsies is nou beskikbaar om sommige van hierdie optimaliserings te beheer, spesifiek -f seksie-ankers, wat toegang tot statiese voorwerpe toelaat om relatief tot een simbool uitgevoer te word; -mpai derations=n, wat toelaat dat die aantal prosedurele abstraksie-iterasies verander word vanaf die verstek van 2; en, -mpa- call cost- shortcall, wat meer aggressiewe prosedurele abstraksie uitvoer, in die hoop dat die skakelaar lang oproepe kan verslap. Hierdie laaste opsie kan kodegrootte vergroot as die onderliggende aannames nie gerealiseer word nie.
Nuwe toestelondersteuning Ondersteuning is beskikbaar vir die volgende AVR-onderdele: AVR16DA28, AVR16DA32,
AVR16DA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR128DB28, AVR128DB32, AVR128DB48 en AVR128DB.
Ingetrek toestel Ondersteuning Ondersteuning is nie meer beskikbaar vir die volgende AVR-onderdele nie: ATA5272, ATA5790, ATA5790N, ATA5791, ATA5795, ATA6285, ATA6286, ATA6612C, ATA6613C, ATA6614Q, ATA6616C, ATA6617C, en ATA664251.
Weergawe 2.29 (Funksionele Veiligheidsvrystelling)
Opskrif file vir samesteller ingeboude Om te verseker dat die samesteller kan voldoen aan taalspesifikasies soos MISRA, die kop file, wat outomaties ingesluit word deur , is opgedateer. Hierdie kop bevat die prototipes vir alle ingeboude funksies, soos _buil tin _avrnop () en _buil tin_ avr delay_ cycles () . Sommige ingeboude is dalk nie aan MISRA voldoen nie; dit kan weggelaat word deur die define _Xe_ STRICT_ MISRA by die samesteller-opdragreël by te voeg. Die ingeboude insetsels en hul verklarings is opgedateer om vaste-breedtetipes te gebruik.
Weergawe 2.20
Nuwe toestelondersteuning Ondersteuning is beskikbaar vir die volgende AVR-onderdele: ATTINY1624, ATTINY1626 en ATTINY1627.
Beter beste pas toekenning Die beste pastoewyser (BFA) in die samesteller is verbeter sodat afdelings in 'n volgorde toegewys word wat beter optimalisering moontlik maak. Die BFA ondersteun nou benoemde adresruimtes en hanteer data-inisialisering beter.
Verbeterde prosedurele abstraksie Die prosedurele abstraksie-optimalisasies word nou op meer kodereekse uitgevoer. Vorige situasies waar hierdie optimalisering kodegrootte kon vergroot het, is aangespreek deur die optimaliseringskode bewus te maak van die skakelaar se vullisversamelingsproses.
Afwesigheid van AVR Assembler Die AVR Assembler is nie meer by hierdie verspreiding ingesluit nie.
Weergawe 2.19 (Funksionele Veiligheidsvrystelling)
Geen.
Weergawe 2.10
Kodedekking Hierdie vrystelling sluit 'n kodedekkingsfunksie in wat ontleding vergemaklik van die mate waarin 'n projek se bronkode uitgevoer is. Gebruik die opsie -mcodecov=ram om dit te aktiveer. Na die uitvoering van die program op jou hardeware, sal kode dekking inligting in die toestel versamel word, en dit kan oorgedra word na en vertoon word deur die MPLAB X IDE via 'n kode dekking plugin. Sien die IDE-dokumentasie vir inligting oor hierdie inprop kan verkry word. Die #pragma mcodecov kan gebruik word om daaropvolgende funksies uit die dekkingsanalise uit te sluit. Ideaal gesproke moet die pragma aan die begin van die bygevoeg word file om daardie geheel uit te sluit file uit die dekkingsontleding. Alternatiewelik kan die kenmerk ( (mcodecov) ) gebruik word om 'n spesifieke funksie van die dekkingsanalise uit te sluit.
Toestelbeskrywing files 'n Nuwe toestel file genoem avr chipinfo. html is geleë in die docs-gids van die samestellerverspreiding. Hierdie file lys alle toestelle wat deur die samesteller ondersteun word. Klik op 'n toestelnaam, en dit sal 'n bladsy oopmaak wat al die toelaatbare konfigurasiebisinstellings/waardepare vir daardie toestel wys, met bv.amples.
Prosedurele abstraksie Prosedure-abstraksie-optimalisasies, wat algemene blokke van samestellingkode vervang met oproepe na 'n onttrekte kopie van daardie blok, is by die samesteller gevoeg. Dit word uitgevoer deur 'n aparte toepassing, wat outomaties deur die samesteller opgeroep word wanneer vlak 2, 3 of optimaliserings gekies word. Hierdie optimaliserings verminder kodegrootte, maar dit kan uitvoeringspoed en kode-foutbaarheid verminder.
Prosedurele abstraksie kan op hoër optimaliseringsvlakke gedeaktiveer word deur die opsie -mno-pa te gebruik, of kan op laer optimaliseringsvlakke (onderhewig aan jou lisensie) geaktiveer word deur -mpa te gebruik. Dit kan vir 'n voorwerp gedeaktiveer word file gebruik -mno-pa-on-file=filenaam, of gedeaktiveer vir 'n funksie deur -mno-pa op function= funksie te gebruik.
Binne jou bronkode kan prosedurele abstraksie vir 'n funksie gedeaktiveer word deur _attribuut_ ((nopa)) te gebruik met die funksie se definisie, of deur _nopa te gebruik, wat uitbrei na kenmerk ((nopa, noinline)) en dus verhoed dat funksie-inlining plaasvind en daar is abstraksie van inlinede kode.
Sluit bietjie ondersteuning in pragma Die #pragma-konfigurasie kan nou gebruik word om die AVR-slotbissies sowel as die ander konfigurasiebisse te spesifiseer. Gaan die avr chip inligting na. html file (hierbo genoem) vir die instelling/waarde-pare om met hierdie pragma te gebruik.
Nuwe toestelondersteuning Ondersteuning is beskikbaar vir die volgende dele: AVR28DA128, AVR64DA128, AVR32DA128 en AVR48DA128.
Weergawe 2.05
Meer stukkies vir jou geld Die macOS-weergawe van hierdie samesteller en lisensiebestuurder is nou 'n 64-bis-toepassing. Dit sal verseker dat die samesteller sonder waarskuwings op onlangse weergawes van macOS sal installeer en loop.
Konst-objekte in programgeheue Die samesteller kan nou konst-gekwalifiseerde voorwerpe in die program Flash-geheue plaas, eerder as om dit in RAM te hê. Die samesteller is so gewysig dat const-gekwalifiseerde globale data in programflitsgeheue gestoor word en hierdie data kan direk en indirek verkry word deur die toepaslike programgeheue-instruksies te gebruik. Hierdie nuwe kenmerk is by verstek geaktiveer, maar kan gedeaktiveer word met die -mno-const-data-in-progmem opsie. Vir avrxmega3- en avrtiny-argitekture is hierdie kenmerk nie nodig nie en is dit altyd gedeaktiveer, aangesien programgeheue in die data-adresspasie vir hierdie toestelle gekarteer word.
Standaard gratis Ongelisensieerde (gratis) weergawes van hierdie samesteller laat nou optimaliserings tot en met vlak 2 toe. Dit sal 'n soortgelyke, alhoewel nie identiese, uitvoer moontlik maak as wat voorheen moontlik was met 'n Standaardlisensie.
Welkom AVRASM2 Die AVRASM2-samesteller vir 8-bis-toestelle is nou by die XC8-samesteller-installeerder ingesluit. Hierdie samesteller word nie deur die XC8-samesteller gebruik nie, maar is beskikbaar vir projekte gebaseer op handgeskrewe samestellingsbron.
Nuwe toestelondersteuning Ondersteuning is beskikbaar vir die volgende dele: ATMEGA1608, ATMEGA1609, ATMEGA808 en ATMEGA809.
Weergawe 2.00
Top-vlak bestuurder 'n Nuwe bestuurder, genaamd xc8-cc, sit nou bo die vorige avr-gcc-bestuurder en die xc8-bestuurder, en dit kan die toepaslike samesteller oproep op grond van die keuse van die teikentoestel. Hierdie bestuurder aanvaar GCC-styl opsies, wat óf vertaal word vir óf deurgegee word na die samesteller wat uitgevoer word. Hierdie drywer laat 'n soortgelyke stel opsies met soortgelyke semantiek toe om met enige AVR- of PIC-teiken gebruik te word en is dus die aanbevole manier om die samesteller op te roep. Indien nodig, kan die ou avr-gcc bestuurder direk opgeroep word deur die ou-styl opsies wat dit aanvaar het in vroeër samesteller weergawes.
Algemene C-koppelvlak Hierdie samesteller kan nou ooreenstem met die MPLAB Common C Interface, sodat bronkode makliker oorgedra kan word oor alle MPLAB XC samestellers. Die -mext=cci opsie versoek hierdie kenmerk, wat alternatiewe sintaksis vir baie taaluitbreidings moontlik maak.
Nuwe bibliotekarisbestuurder 'n Nuwe bibliotekarisbestuurder is bo die vorige PIC-bibliotekaris en die AVR-avr-ar-bibliotekaris geposisioneer. Hierdie bestuurder aanvaar GCC-argiverer-styl opsies, wat óf vertaal word vir óf deurgegee word aan die bibliotekaris wat uitgevoer word. Die nuwe bestuurder laat 'n soortgelyke stel opsies met soortgelyke semantiek toe om enige PIC- of AVR-biblioteek te skep of te manipuleer file en is dus die aanbevole manier om die bibliotekaris op te roep. Indien nodig vir nalatenskapprojekte, kan die vorige bibliotekaris direk geskakel word deur die ou-styl opsies wat dit aanvaar het in vroeër samesteller weergawes.
Migrasie kwessies
Die volgende is kenmerke wat nou anders deur die samesteller hanteer word. Hierdie veranderinge kan verandering aan jou bronkode vereis as jy kode na hierdie samestellerweergawe oordra. Die weergawenommer in die subopskrifte dui die eerste samestellerweergawe aan om die veranderinge wat volg te ondersteun.
Weergawe 2.40
Geen.
Weergawe 2.39 (Funksionele Veiligheidsvrystelling)
Geen.
Weergawe 2.36
Geen.
Weergawe 2.35
Hantering van tou-tot-basisse (XCS-2420) Om konsekwentheid met ander XC-samestellers te verseker, sal die XC8-string-to-funksies, soos strtol () ens., nie meer probeer om 'n invoerstring om te skakel as die gespesifiseerde basis groter as 36 is nie en sal eerder errno na EINVAL stel. Die C-standaard spesifiseer nie die gedrag van die funksies wanneer hierdie basiswaarde oorskry word nie.
Onvanpaste spoedoptimalisering Prosedure-abstraksie-optimalisasies is geaktiveer wanneer vlak 3-optimalisasies (-03) gekies is. Hierdie optimaliserings verminder kodegrootte ten koste van kodespoed, dus moes nie uitgevoer gewees het nie. Projekte wat hierdie optimeringsvlak gebruik, kan dalk verskille in kodegrootte en uitvoeringspoed sien wanneer dit met hierdie vrystelling gebou word.
Biblioteekfunksionaliteit Die kode vir baie van die standaard C-biblioteekfunksies kom nou van Microchip se Unified Standard Library, wat in sommige omstandighede verskillende gedrag kan toon in vergelyking met dié wat deur die voormalige avr-libc-biblioteek verskaf word. Byvoorbeeldample, dit is nie meer nodig om in die lprintf_flt-biblioteek (-print _flt-opsie) te skakel om geformateerde IO-ondersteuning vir float-formaat-spesifiseerders aan te skakel nie. Die slim IO-kenmerke van die Microchip Unified Standard Library maak hierdie opsie oorbodig. Daarbenewens is die gebruik van roetines met agtervoegsel _p vir string- en geheuefunksies (bv. strcpy_P () ens .. ) wat op konstante snare in flits werk, nie meer nodig nie. Die standaard C-roetines (bv. strcpy ()) sal korrek met sulke data werk wanneer die const-data-in-program-memory funksie geaktiveer is.
Weergawe 2.32
Geen.
Weergawe 2.31
Geen.
Weergawe 2.30
Geen.
Weergawe 2.29 (Funksionele Veiligheidsvrystelling)
Geen.
Weergawe 2.20
DFP-uitleg verander Die samesteller aanvaar nou 'n ander uitleg wat deur DFP's (Device Family Packs) gebruik word. Dit sal beteken dat 'n ouer DFP dalk nie met hierdie vrystelling werk nie, en ouer samestellers sal nie die nuutste DFP's kan gebruik nie.
Weergawe 2.19 (Funksionele Veiligheidsvrystelling)
Geen.
Weergawe 2.10
Geen
Weergawe 2.05
Konst objekte in programgeheue Let daarop dat die by verstek, const-gekwalifiseerde voorwerpe in programgeheue geplaas en toeganklik sal word (soos hier beskryf) . Dit sal die grootte en uitvoeringspoed van jou projek beïnvloed, maar behoort RAM-gebruik te verminder. Hierdie kenmerk kan gedeaktiveer word, indien nodig, deur die -mnoconst- da ta-in-program-opsie te gebruik.
Weergawe 2.00
Konfigurasie versmelt Die toestelkonfigurasie lont kan nou geprogrammeer word deur gebruik te maak van 'n konfigurasie pragma gevolg deur instelling-waarde pare om die lont toestand te spesifiseer, bv.
#pragma config WDT0N = SET
#pragma config B0DLEVEL = B0DLEVEL_4V3
Absolute voorwerpe en funksies Voorwerpe en funksies kan nou by spesifieke adres in die geheue geplaas word deur die CCI _at (adres) spesifiseerder, bv.ample: #sluit in int foobar by (Ox800100); char at(Ox250) kry ID(int offset) { … } Die argument vir hierdie spesifiseerder moet 'n konstante wees wat die adres verteenwoordig waarop die eerste greep of instruksie geplaas sal word. RAM-adresse word aangedui deur 'n offset van 0x800000 te gebruik. Aktiveer die CCI om hierdie kenmerk te gebruik.
Nuwe onderbreking funksie sintaksis Die samesteller aanvaar nou die CCI onderbreking (num) spesifiseerder om aan te dui dat C funksies onderbreking hanteerders is. Die spesifiseerder neem 'n onderbrekingsnommer, bvample: #sluit in nietige onderbreking(SPI STC_ vect _num) spi Isr(void) { … }
Vaste kwessies
Die volgende is regstellings wat aan die samesteller aangebring is. Dit kan foute in die gegenereerde kode regmaak of die werking van die samesteller verander na dit wat deur die gebruikersgids bedoel of gespesifiseer is. Die weergawenommer in die subopskrifte dui die eerste samestellerweergawe aan wat regstellings bevat vir die kwessies wat volg. Die etiket(te) tussen hakies in die titel is daardie kwessie se identifikasie in die opsporingsdatabasis. Dit kan nuttig wees as jy ondersteuning moet kontak.
Let daarop dat sommige toestelspesifieke kwessies reggestel word in die Device Family Pack (DFP) wat met die toestel geassosieer word. Sien die MPLAB-pakketbestuurder vir inligting oor veranderinge wat aan DFP's gemaak is en om die nuutste pakke af te laai.
Weergawe 2.40
Te ontspanne (XCS-2876) Wanneer die -mrelax-opsie gebruik word, het die samesteller sommige afdelings nie saam toegewys nie, wat gelei het tot minder optimale kodegroottes. Dit kon gebeur het met kode wat die nuwe MUSL-biblioteke gebruik het of met swak simbole.
Karteringkenmerk nie gedeaktiveer nie soos in waarskuwing (XCS-2875) Die koste-data-in-opstelling gekarteerprogram-kenmerk is afhanklik daarvan dat die koste-data-in-proem-kenmerk geaktiveer word. As die koste-data-ipconfig-mapped-proem-kenmerk uitdruklik geaktiveer is met die opsie en die koste-data-inprogmem-kenmerk is gedeaktiveer, het die skakelstap misluk, ten spyte van 'n waarskuwingsboodskap wat sê dat die nadele data-in-config-gekarteer- proem-kenmerk is outomaties gedeaktiveer, wat nie heeltemal korrek was nie. Die const-data-in-config-mapped-proem-kenmerk is nou volledig gedeaktiveer in hierdie situasie.
DFP-veranderinge om korrek toegang tot NVMCTRL (XCS-2848) te verkry Die aanlooptydopstartkode wat deur AVR64EA-toestelle gebruik is, het nie in ag geneem dat die NVMCTRL-register onder Configuration Change Protection (CCP) was nie en nie die IO SFR kon stel op die bladsy wat deur die const-data-in configmapped-proem samesteller gebruik word nie. kenmerk. Veranderinge wat in AVR-Ex_DFP weergawe 2.2.55 gemaak is, sal toelaat dat die aanlooptydopstartkode korrek na hierdie register skryf.
DFP-veranderinge om flitskartering te vermy (XCS-2847) 'n Oplossing vir 'n probleem met die flitskarteringtoestelkenmerk wat in die AVR128DA28/32/48/64 Silicon Errata (DS80000882) gerapporteer word, is geïmplementeer. Die const-data-in-config-mapped-proem samestellerkenmerk sal nie by verstek toegepas word vir geaffekteerde toestelle nie, en hierdie verandering sal in AVR-Ex_DFP weergawe 2.2.160 verskyn.
Bou fout met sinhf of coshf (XCS-2834) Pogings om die sinhf () of coshf () biblioteek funksies te gebruik het gelei tot 'n skakelfout, wat 'n ongedefinieerde verwysing beskryf. Die ontbrekende funksie waarna verwys word, is nou by die samestellerverspreiding ingesluit.
Bou foute met nopa (XCS-2833) Die gebruik van die nopa-kenmerk met 'n funksie waarvan die samestellernaam gespesifiseer is deur gebruik te maak van as () het foutboodskappe van die samesteller geaktiveer. Hierdie kombinasie is nie moontlik nie.
Variadiese funksie mislukking met wyser argumente (XCS-2755, XCS-2731) Funksies met 'n veranderlike aantal argumente verwag dat 24-bis (_memo-tipe) wysers in die veranderlike argumentlys deurgegee word wanneer die koste-data-in-proem-kenmerk geaktiveer is. Argumente wat verwysings na datageheue was, is deurgegee as 16-bis-voorwerpe, wat kode-fout veroorsaak het toe hulle uiteindelik gelees is. Wanneer die nadele data-in-proem-kenmerk geaktiveer is, word alle 16-bis-wysersargumente nou omgeskakel na 24-bis-wysers. strtoxxx-biblioteekfunksies misluk (XCS-2620) Toe const-data-in-proem-kenmerk geaktiveer is, is die enter-parameter in die strtoxxx-biblioteekfunksies nie behoorlik opgedateer vir bronstring-argumente wat nie in programgeheue is nie.
Waarskuwings vir ongeldige uitsendings (XCS-2612) Die samesteller sal nou 'n fout uitreik as koste-in-proem-kenmerk geaktiveer is en die adres van 'n string letterlik word eksplisiet na data-adresspasie uitgesaai (los die const-kwalifiseerder), bv.ample, (uint8 t *) "Hallo Wêreld!". 'n Waarskuwing is kwessie as die adres ongeldig kan wees wanneer 'n konstante datawyser eksplisiet na die data-adresspasie gegooi word.
Plasing van ongeinitialiseerde konst-objekte (XCS-2408) Ongeinitialiseerde konstante en konstante wisselende voorwerpe is nie in programgeheue geplaas op toestelle wat die hele of 'n deel van hul programgeheue in die data-adresspasie karteer nie. Vir hierdie toestelle word sulke voorwerpe nou in programgeheue geplaas, wat hul werking in ooreenstemming met ander toestelle maak.
Weergawe 2.39 (Funksionele Veiligheidsvrystelling)
Geen.
Weergawe 2.36
Fout tydens vertraging (XCS-2774) Geringe veranderinge in die verstek Free-modus-optimalisasies het die konstante vou van operand-uitdrukkings na die ingeboude vertragingsfunksies verhoed, wat daartoe gelei het dat hulle as nie-kontakte behandel is en die fout veroorsaak het: _buil tin avr delay_ cycles expects ac ompile tyd heelgetal konstante.
Weergawe 2.35
Aaneenlopende toekenning met behulp van _at (XCS-2653) Aaneenlopende toekenning van veelvuldige voorwerpe plekke in 'n afdeling met dieselfde naam en gebruik by () het nie korrek gewerk nie. Byvoorbeeldample: constchararrl [ ] at tri butte ((sect on(“.misses”))) at (Ox50 0 ) = {Oxo , Ox CD} ; koste char arr2[ ] by tri butte ((afdeling(“.my s eke”))) = {Osse, Os FE }; moes arr2 onmiddellik na aril geplaas het.
Spesifikasie van afdeling-beginadresse (XCS-2650) Die -Wal, -seksie-begin-opsie het stilweg versuim om afdelings by die genomineerde beginadres te plaas. Hierdie probleem is reggestel vir enige afdelings met 'n pasgemaakte naam; dit sal egter nie vir enige standaardafdelings werk nie, soos . teks of. bss, wat geplaas moet word met 'n -Wl, -T opsie.
Linker val ineen wanneer ontspan (XCS-2647) Toe die -relax-optimering geaktiveer is en daar kode- of dataafdelings was wat nie in die beskikbare geheue gepas het nie, het die skakelaar neergestort. Nou, in so 'n omstandighede, word foutboodskappe eerder uitgereik.
Slegte EEPROM-toegang (XCS-2629) Die leproma _read_-blokroetine het nie korrek op Mega-toestelle gewerk toe die -monist-data-in-proem opsie geaktiveer is nie (wat die verstektoestand is), wat daartoe gelei het dat EEPROM-geheue nie korrek gelees is nie.
Ongeldige geheuetoewysing (XCS-2593, XCS-2651) Wanneer die -Teks of -Tata skakel opsie (bvample deurgegaan met 'n -Wl-bestuurder-opsie) gespesifiseer is, is die ooreenstemmende teks-/datastreekoorsprong opgedateer; die eindadres is egter nie dienooreenkomstig aangepas nie, wat daartoe kon gelei het dat die streek die teikentoestel se geheuereeks oorskry het.
Ongeldige ATtiny-onderbrekingskode (XCS-2465) Wanneer daar vir Tatin-toestelle gebou is en die optimaliserings gedeaktiveer is (-00), het onderbrekingsfunksies moontlik operand-buitereeks-samestellerboodskappe geaktiveer.
Opsies word nie deurgegee nie (XCS-2452) Wanneer die -Wl-opsie met veelvuldige, komma-geskeide skakelopsies gebruik word, is nie al die skakelopsies na die skakelaar oorgedra nie.
Fout indirek lees van programgeheue (XCS-2450) In sommige gevalle het die samesteller 'n interne fout (onherkenbare insn) opgelewer wanneer 'n waarde van twee grepe van 'n wyser na programgeheue gelees is
Weergawe 2.32
Tweede toegang tot biblioteek misluk (XCS-2381) Roep die Windows-weergawe van die xc8-ar aan. exe-biblioteekargief 'n tweede keer om toegang tot 'n bestaande biblioteekargief te verkry, kon misluk het met 'n foutboodskap wat nie kon hernoem nie.
Weergawe 2.31
Onverklaarbare samestellerfoute (XCS-2367) Wanneer dit op Windows-platforms uitgevoer word, het die stelsel se tydelike gids op 'n pad gestel wat 'n punt ingesluit het.' karakter, kon die samesteller moontlik nie uitgevoer word nie.
Weergawe 2.30
Globale etikette misplaas na omskrywing (XCS-2299) Handgeskrewe samestellingkode wat globale etikette binne samestellingreekse plaas wat deur prosedurele abstraksie uitgewerk word, is dalk nie korrek herposisioneer nie.
'n Ontspannende ongeluk (XCS-2287) Die gebruik van die -merlad-opsie kon dalk veroorsaak het dat die skakelaar ineenstort wanneer stertspring-ontspanningsoptimalisasies probeer het om ret-instruksies te verwyder wat nie aan die einde van 'n afdeling was nie.
Omval wanneer etikette as waardes geoptimaliseer word (XCS-2282) Kode wat die "Etikette as waardes" GNU C-taaluitbreiding gebruik, kon veroorsaak het dat die prosedurele abstraksie-optimalisasies ineenstort, met 'n uiteensetting van die VMA-reeksspan-fixupfout.
Nie so konst nie (XCS-2271) Die prototipes vir begin () en ander funksies vanaf spesifiseer nie meer die nie-standaardkoste-kwalifiseerder op teruggekeerde stringwysers wanneer die -monist-data inprogmem-kenmerk gedeaktiveer is nie. Let daarop dat hierdie kenmerk permanent geaktiveer is met avrxmega3- en avertin-toestelle.
Verlore initialiseerders (XCS-2269) Wanneer meer as een veranderlike in 'n vertaaleenheid in 'n afdeling geplaas is (met gebruik van afdeling of kenmerk ((afdeling))), en die eerste sodanige veranderlike is nul geïnisialiseer of het nie 'n inisialiseerder gehad nie, initialiseerders vir ander veranderlikes in dieselfde vertaaleenheid wat in dieselfde afdeling geplaas is, het verlore gegaan.
Weergawe 2.29 (Funksionele Veiligheidsvrystelling)
Geen.
Weergawe 2.20
Fout met lang opdragte (XCS-1983) Wanneer 'n AVR-teiken gebruik word, het die samesteller moontlik gestop met 'n file nie gevind fout nie, as die opdragreël uiters groot was en spesiale karakters bevat het soos aanhalingstekens, agterste skuinsstreepies, ens.
Ontoegekende rodata-afdeling (XCS-1920) Die AVR-skakelaar kon nie geheue toewys vir persoonlike rodata-afdelings tydens die bou van avrxmega3- en avrtiny-argitekture nie, wat moontlik geheue-oorvleuelingsfoute veroorsaak
Weergawe 2.19 (Funksionele Veiligheidsvrystelling)
Geen.
Weergawe 2.10
Hervestigingsmislukkings (XCS-1891) Die beste gepaste toewyser was om geheue 'gate' tussen seksies te laat na skakelaar-verslapping. Afgesien van die fragmentering van geheue, het dit die moontlikheid verhoog dat daar foute in die verskuiwing van skakelaar is wat verband hou met rekenaarverwante spronge of oproepe wat buite bereik raak.
Instruksies wat nie deur ontspanning getransformeer is nie (XCS-1889) Skakelaarverslapping het nie plaasgevind vir spring- of oproepinstruksies waarvan die teikens bereikbaar word as dit ontspan word nie.
Vermis funksionaliteit (XCSE-388) Verskeie definisies uit , soos clock_ div_ t en clock_prescale_set (), is nie gedefinieer vir toestelle nie, insluitend die ATmega324PB, ATmega328PB, ATtiny441 en ATtiny841.
Ontbrekende makro's Die voorverwerker makros_ xcs _MODE_, _xcs VERSION, _xc en xcs is nie outomaties deur die samesteller gedefinieer nie. Hierdie is nou beskikbaar.
Weergawe 2.05
Interne samestellerfout (XCS-1822) As u onder Windows gebou het, kan 'n interne samestellerfout veroorsaak word tydens die optimalisering van kode.
RAM-oorloop nie bespeur nie (XCS-1800, XCS-1796) Programme wat die beskikbare RAM oorskry het, is in sommige situasies nie deur die samesteller opgespoor nie, wat gelei het tot 'n runtime-kodefout.
Weggelaat flitsgeheue (XCS-1792) Vir avrxmega3- en avrtiny-toestelle is dele van die flitsgeheue moontlik ongeprogrammeer deur die MPLAB X IDE.
Versuim om hoof uit te voer (XCS-1788) In sommige situasies waar die program geen globale veranderlikes gedefinieer het nie, het die aanlooptydopstartkode nie uitgegaan nie en is die hooffunksie () nooit bereik nie.
Verkeerde geheue inligting (XCS-1787) Vir avrxmega3- en avrtiny-toestelle het die avr-grootte program gerapporteer dat leesalleen-data RAM in plaas van programgeheue verbruik.
Verkeerde programgeheue gelees (XCS-1783) Projekte wat saamgestel is vir toestelle met programgeheue wat in die data-adresruimte gekarteer is en wat voorwerpe definieer deur die PROGMEM-makro/kenmerk te gebruik, het dalk hierdie voorwerpe vanaf die verkeerde adres gelees.
Interne fout met eienskappe (XCS-1773) 'n Interne fout het voorgekom as jy wyserobjekte met die
_at () of kenmerk () tekens tussen die naam van die wyser en die afgewysde tipe, bv.ample, char *
_at ( 0x80015 0) cp; 'n Waarskuwing word nou uitgereik as so 'n kode teëgekom word.
Versuim om hoof uit te voer (XCS-1780, XCS-1767, XCS-1754) Die gebruik van EEPROM-veranderlikes of die definisie van versmeltings met behulp van die konfigurasie-pragma kon moontlik verkeerde data-inisialisering en/of programuitvoering in die aanlooptyd-opstartkode veroorsaak het, voordat die hoof () bereik is.
Versmelt fout met klein toestelle (XCS-1778, XCS-1742) Die attiny4/5/9/10/20/40-toestelle het 'n verkeerde lontlengte gehad wat in hul kopskrif gespesifiseer is files wat lei tot koppelfoute wanneer probeer om kode te bou wat versmeltings gedefinieer het.
Segmentasiefout (XCS-1777) 'n Intermitterende segmenteringsfout is reggestel.
Samesteller-ongeluk (XCS-1761) Die avr-as assembler het dalk neergestort toe die samesteller onder Ubuntu 18 uitgevoer is.
Voorwerpe nie skoongemaak nie (XCS-1752) Ongeinitialiseerde statiese stoortydsduurvoorwerpe is dalk nie deur die aanlooptydbeginkode uitgevee nie.
Botsende toestelspesifikasie geïgnoreer (XCS-1749) Die samesteller het nie 'n fout gegenereer toe veelvuldige toestelspesifikasie-opsies gebruik is nie en verskillende toestelle aangedui het.
Geheue korrupsie per hoop (XCS-1748) Die heap_ start-simbool is verkeerd gestel, wat gelei het tot die moontlikheid dat gewone veranderlikes deur die hoop beskadig word.
Skakelaar hervestiging fout (XCS-1739) 'n Koppelverskuiwingsfout is dalk vrygestel wanneer kode 'n rjmp of rcall bevat het met 'n teiken presies 4k grepe weg.
Weergawe 2.00
Geen.
Bekende kwessies
Die volgende is beperkings in die samesteller se werking. Dit kan algemene koderingsbeperkings wees, of
afwykings van inligting vervat in die gebruikershandleiding. Die etiket(te) tussen hakies in die titel is daardie kwessie se identifikasie in die opsporingsdatabasis. Dit kan tot voordeel wees as jy ondersteuning moet kontak. Daardie items wat nie etikette het nie, is beperkings wat modus operandi beskryf en wat waarskynlik permanent van krag sal bly.
MPLAB X IDE-integrasie
MPLAB IDE-integrasie As Compiler vanaf MPLAB IDE gebruik moet word, moet jy MPLAB IDE installeer voordat jy Compiler installeer.
Kode Generasie
PA geheue toewysing mislukking (XCS-2881) Wanneer die prosedurele abstraksie-optimeerders gebruik word, kan die koppelaar geheuetoewysingsfoute rapporteer wanneer die kodegrootte naby die hoeveelheid beskikbare programgeheue op die toestel is, alhoewel die program in die beskikbare spasie behoort te pas.
Nie so slim nie Smart-IO (XCS-2872) Die samesteller se slim-io-kenmerk sal geldige maar sub-optimale kode vir die sprintfunksie genereer as die kus-data-in-proem-kenmerk gedeaktiveer is of as die toestel al sy flits in datageheue gekarteer het.
Selfs minder slim Smart-IO (XCS-2869) Die samesteller se smart-io funksie sal geldige maar suboptimale kode genereer wanneer die -floe en -fno-buil tin opsies albei gebruik word.
Suboptimale leesalleen-dataplasing (XCS-2849) Die skakelaar is tans nie bewus van die APPCODE- en APPDATA-geheue-afdelings nie, en ook nie die [No-]Read-While-Write-afdelings in die geheuekaart nie. As gevolg hiervan is daar 'n klein kans dat die skakelaar leesalleen-data in 'n ongeskikte geheue-area kan toeken. Die kans op misplaaste data verhoog as die kus-data-in-pragma-kenmerk geaktiveer is, veral as die kus-data-in-opstelling-gekarteer-proem-kenmerk ook geaktiveer is. Hierdie kenmerke kan gedeaktiveer word indien nodig.
Voorwerp file verwerking van bestelling (XCS-2863) Die volgorde waarin voorwerpe files sal verwerk word deur die skakelaar kan verskil op grond van die gebruik van prosedurele abstraksie optimaliserings (-mpa opsie). Dit sal slegs kode beïnvloed wat swak funksies oor verskeie modules definieer.
Koppelerfout met absolute (XCS-2777) Wanneer 'n voorwerp absoluut gemaak is by 'n adres aan die begin van RAM en ongeïnitialiseerde voorwerpe is ook gedefinieer, kan 'n koppelfout veroorsaak word.
Kort wakker-ID's (XCS-2775) Vir ATA5700/2-toestelle word die PHID0/1-registers slegs gedefinieer as 16 bisse wyd, eerder as 32 bisse wyd.
Skakelaar crash wanneer roep simbool (XCS-2758) Die skakelaar kan ineenstort as die -merlad-bestuurder-opsie gebruik word wanneer die bronkode 'n simbool oproep wat gedefinieer is met die -Wl, -defsym-skakelopsie.
Verkeerde inisialisering (XCS-2679) Daar is 'n verskil tussen waar die aanvanklike waardes vir sommige globale/statiese greepgrootte voorwerpe in datageheue geplaas word en waar toegang tot die veranderlikes tydens looptyd verkry sal word.
begin verkeerd stel leeg (XCS-2652) In gevalle waar 'n onderwerpstring vir omskakeling deur vermelde () bevat wat blykbaar 'n swewende-puntgetal in eksponensiële formaat is en daar is 'n onverwagte karakter na 'n e-karakter, dan sal die leë adres, indien verskaf, na die karakter wys na die e en nie die e self nie. Byvoorbeeldample: stated(“hooey”, leeg); sal lei tot leë wysing na die x-karakter.
Slegte indirekte funksie-oproepe (XCS-2628) In sommige gevalle kan funksie-oproepe wat gemaak word via 'n funksiewyser wat as deel van 'n struktuur gestoor is, misluk.
strtof gee nul vir heksadesimale dryf (XCS-2626) Die biblioteekfunksies strtof () et al en scanf () et al, sal altyd 'n heksadesimale drywende-puntgetal wat nie 'n eksponent spesifiseer na
nul. Byvoorbeeldample: stator(“Uil”, &leeg); sal die waarde 0 terugstuur, nie 1 nie.
Onakkurate stapel adviseur boodskappe (XCS-2542, XCS-2541) In sommige gevalle word die stapeladviseur-waarskuwing rakende herhaling of onbepaalde stapel wat gebruik word (moontlik deur die gebruik van alloca()) nie uitgestuur nie.
Mislukking met duplikaat onderbrekingskode (XCS-2421) Waar meer as een onderbrekingsfunksie dieselfde liggaam het, kan die samesteller die uitvoer vir een onderbrekingsfunksie die ander hê. Dit sal daartoe lei dat alle oproep-geklobberde registers onnodig gestoor word, en die onderbrekings sal geaktiveer word selfs voordat die epiloog van die huidige onderbreking-hanteerder geloop het, wat kan lei tot kodefout.
Konstante voorwerpe nie in programgeheue nie (XCS-2408) Vir avrxmega3 en avertins-projekte word ongeidealiseerde konst-objekte in datageheue geplaas, alhoewel 'n waarskuwing daarop dui dat dit in programgeheue geplaas is. Dit sal nie toestelle beïnvloed wat nie programgeheue in die datageheuespasie gekarteer het nie, en ook nie enige voorwerp wat geïnisialiseer is, beïnvloed nie.
Slegte uitvoer met ongeldige DFP-pad (XCS-2376) As die samesteller met 'n ongeldige DFP-pad en 'n 'spesifikasie' aangeroep word file bestaan vir die geselekteerde toestel, rapporteer die samesteller nie die vermiste toestelfamiliepakket nie en kies eerder die 'spesifikasie' file, wat dan tot 'n ongeldige uitset kan lei. Die 'spesifikasie' files is dalk nie op datum met die verspreide DFP's nie en was slegs bedoel vir gebruik met interne samestellertoetsing.
Geheue-oorvleueling ongemerk (XCS-1966) Die samesteller bespeur nie die geheue-oorvleueling van voorwerpe wat absoluut gemaak is by 'n adres (via by ()) en ander voorwerpe wat die afdeling ()-spesifiseerder gebruik en wat aan dieselfde adres gekoppel is nie.
Mislukking met biblioteekfunksies en _meme (XCS-1763) Genoemde limbiese dryffunksies met 'n argument in die _memo-adresspasie kan misluk. Let daarop dat biblioteekroetines van sommige C-operateurs geroep word, dus bvample, die volgende kode word geraak: return regFloatVar > memxFloatVar;
Beperkte limbiese implementering (AVRTC-731) Vir die ATTiny4/5/9/10/20/40 produkte, is die standaard C / Math biblioteek implementering in limbies baie beperk of nie teenwoordig nie.
Programgeheuebeperkings (AVRTC-732) Programgeheuebeelde groter as 128 kb word deur die gereedskapketting ondersteun; daar is egter bekende gevalle van skakelaar aborteer sonder ontspanning en sonder 'n nuttige foutboodskap eerder as om die vereiste funksie stompe te genereer wanneer die -relax opsie gebruik word.
Naamspasiebeperkings (AVRTC-733) Benoemde adresruimtes word deur die gereedskapketting ondersteun, onderhewig aan die beperkings wat in die gebruikersgidsafdeling Spesiale tipe kwalifiseerders genoem word.
Tydsones Die biblioteekfunksies neem GMT aan en ondersteun nie plaaslike tydsones nie, dus sal plaaslike tyd () dieselfde tyd as gummite (), bv.ample.
KLIËNTE ONDERSTEUNING
file:///Toepassings/mikrohip/xc8/v 2 .40/docs/Lees my_X C 8_ vir 'n VR. htm
Dokumente / Hulpbronne
![]() |
MICROCHIP MPLAB XC8 C samesteller sagteware [pdf] Eienaar se Handleiding MPLAB XC8 C, MPLAB XC8 C samesteller sagteware, samesteller sagteware, sagteware |