MPLAB XC8 C Compiler Version 2.39 Zolemba Zotulutsa za AVR MCU
Wogwiritsa Ntchito
ZOKHUDZA ZIMALI NDI CHIdziwitso CHOFUNIKA CHOKHUDZANA NDI MPLAB XC8 C COMPILER PAMENE AKULONDA Zipangizo ZA MICROCHIP AVR. CHONDE WERENGANI MUSAYANSI SOFTWARE IYI.
ONANI MALANGIZO OTHANDIZA A MPLAB XC8 C PIC DOCUMENT NGATI MUKUGWIRITSA NTCHITO COMPILER KWA 8-BIT PIC DEVICES.
Zathaview
1.1. Mawu Oyamba
Kutulutsidwa kwa Microchip MPLAB® XC8 C compiler ndi ntchito yotetezera chitetezo, yochokera ku v2.36 kumasulidwa kwa compiler iyi ndipo tsopano ikuthandizira Network Server License.
1.2. Tsiku lotulutsa
Tsiku lomasulidwa la mtundu wa compiler iyi ndi 27 Januware 2022.
1.3. Mbiri Yakale
Mtundu wam'mbuyomu wa MPLAB XC8 C unali 2.36, wotulutsidwa pa Januware 25, 2022.
1.4. Functional Safety Manual
Buku la Functional Safety Manual la MPLAB XC compilers likupezeka mu phukusi la zolemba mukagula chiphaso chachitetezo chogwira ntchito.
1.5. Ma License agawo ndi Mabaibulo® iye MPLAB
XC8 C Compiler ya zida za AVR MCUs zimalembedwa ndikugawidwa pansi pa GNU General Public License (GPL) zomwe zikutanthauza kuti khodi yake yoyambira imagawidwa mwaulere komanso kupezeka kwa anthu.
Khodi yazida pansi pa GNU GPL ikhoza kutsitsidwa mosiyana ndi Microchip's webmalo. Mutha kuwerenga GNU GPL mufayilo yomwe ili mu subdirectory yanu ya install license.txt avr/doc. Kukambitsirana kwanthawi zonse kwa mfundo zoyambira GPL zitha kupezeka apa.
Khodi yothandizira yoperekedwa pamafayilo apamutu, zolembera zolumikizira, ndi malaibulale anthawi yake ndi eni ake ndipo samaphimbidwa pansi pa GPL.
Wophatikiza uyu ndikukhazikitsa mtundu wa GCC 5.4.0, binutils version 2.26, ndipo amagwiritsa ntchito avr-libc version 2.0.0.
1.6. Zofunikira pa System
MPLAB XC8 C compiler ndi mapulogalamu a chilolezo omwe amagwiritsa ntchito zilipo pa machitidwe osiyanasiyana opangira opaleshoni, kuphatikizapo 64-bit matembenuzidwe otsatirawa: Mapulogalamu aukadaulo a Microsoft Windows 10; Ubuntu 18.04; ndi macOS 10.15.5. Ma Binaries a Windows adasainidwa ndi code. Ma Binaries a macOS adasainidwa ndi ma code ndipo adasindikizidwa.
Ngati mukugwiritsa ntchito seva ya laisensi ya netiweki, makompyuta okha omwe ali ndi makina ogwiritsira ntchito omwe amathandizidwa ndi ophatikiza omwe angagwiritsidwe ntchito kukhala ndi seva yalayisensi. Pofika pa mtundu wa xclm 2.0, seva ya laisensi ya netiweki imatha kukhazikitsidwa pa nsanja ya Microsoft Windows Server, koma seva yachiphaso sifunika kuyendetsa pa mtundu wa seva wa makina ogwiritsira ntchito.
1.7. Zipangizo Zothandizidwa
Wophatikiza uyu amathandizira zida zonse za 8-bit AVR MCU zomwe zimadziwika panthawi yotulutsidwa. Onani (mu compiler's avr_chipinfo.html directory) pamndandanda wa zida zonse zothandizira. Mafayilowa amalembanso makonda a doc pa chipangizo chilichonse.
1.8. Zosindikiza ndi Kukwezedwa kwa License
Wophatikiza wa MPLAB XC8 atha kukhazikitsidwa ngati chinthu chololedwa (PRO) kapena chopanda chilolezo (chaulere). Muyenera kugula kiyi yotsegulira kuti mupereke chilolezo kwa compiler yanu. Layisensi imalola kukhathamiritsa kwapamwamba poyerekeza ndi Zaulere. Compiler yopanda chilolezo imatha kuyendetsedwa mpaka kalekale popanda chilolezo.
MPLAB XC8 Functional Safety compiler iyenera kutsegulidwa ndi chiphaso chachitetezo chogwira ntchito chogulidwa ku Microchip. Wopanga sangagwire ntchito popanda chilolezo ichi. Mukangoyambitsa, mutha kusankha mulingo uliwonse wokhathamiritsa ndikugwiritsa ntchito zonse zophatikiza. Kutulutsidwa uku kwa MPLAB XC Functional Safety
Compiler imathandizira License ya Network Server.
Onani chikalata cha Kukhazikitsa ndi Kupereka Ziphatso za MPLAB XC C Compilers (DS50002059) kuti mumve zambiri zamitundu yamalayisensi ndikuyika kophatikiza ndi chilolezo.
1.9. Kuyika ndi Kutsegula
Onaninso magawo a Migration Issues and Limitations kuti mudziwe zambiri zokhudza woyang'anira laisensi waposachedwa kwambiri yemwe akuphatikizidwa ndi wophatikiza uyu.
Ngati mukugwiritsa ntchito MPLAB IDE, onetsetsani kuti mwayika mtundu waposachedwa wa MPLAB X IDE 5.0 kapena mtsogolo musanayike chidachi. Siyani IDE musanayike compiler. Yambitsani (Windows), (Linux) kapena (macOS) .exe .run .app compiler installer application, mwachitsanzo ndi kutsatira mayendedwe pa sikirini.
XC8-1.00.11403-windows.exe
Chikwatu chokhazikitsa chokhazikika ndichovomerezeka. Ngati mukugwiritsa ntchito Linux, muyenera kukhazikitsa chojambuliracho pogwiritsa ntchito terminal komanso kuchokera ku akaunti ya mizu. Ikani pogwiritsa ntchito akaunti ya macOS yokhala ndi mwayi woyang'anira.
Kuyatsa tsopano ikuchitika padera kuti unsembe. Onani chikalata Choyang'anira License cha MPLAB® XC C Compilers (DS52059) kuti mumve zambiri.
Ngati mungasankhe kuyendetsa compiler pansi pa chilolezo chowunikira, mudzalandira chenjezo pakuphatikiza mukakhala mkati mwa masiku 14 kuchokera kumapeto kwa nthawi yanu yowunikira. Chenjezo lomwelo limaperekedwa ngati muli mkati mwa masiku 14 kuchokera kumapeto kwa kulembetsa kwanu kwa HPA.
XC Network License Server ndi choyikira chosiyana ndipo sichimaphatikizidwira m'modzi mwa okhazikitsa osagwiritsa ntchito amodzi.
XC License Manager tsopano imathandizira kuyendayenda kwa zilolezo zoyandama za netiweki. Zokhudza ogwiritsa ntchito mafoni, izi zimalola chilolezo choyandama kuti chiziyimitsa pa intaneti kwakanthawi kochepa. Pogwiritsa ntchito izi, mutha kudumpha pamaneti ndikugwiritsabe ntchito compiler yanu ya MPLAB XC. Onani chikwatu cha doc cha kukhazikitsa kwa XCLM kuti mudziwe zambiri pankhaniyi.
MPLAB X IDE imaphatikizapo zenera la License (Zida > License) kuti muzitha kuyang'anira zoyendayenda.
1.9.1. Kuthetsa Mavuto Oyika
Ngati mukukumana ndi zovuta kukhazikitsa compiler pansi pa machitidwe aliwonse a Windows, yesani malingaliro awa.
- Yambitsani kukhazikitsa ngati woyang'anira.
- Khazikitsani zilolezo za pulogalamu yoyiyika kukhala 'Full control'. (Dinani kumanja fayilo, sankhani Properties, Security tabu, sankhani wosuta, sinthani.)
- Khazikitsani zilolezo za temp foda kukhala "Kulamulira Kwathunthu!.
- Kuti mudziwe komwe kuli foda ya temp, lembani mu Run command (Windows logo key + R). % temp% Izi zidzatsegula bokosi lofufuzira fayilo lomwe likuwonetsa bukhulo ndipo lidzakuthandizani kudziwa njira ya fodayo.
1.10. Compiler Documentation
Maupangiri a ogwiritsa ntchito amatha kutsegulidwa patsamba la HTML lomwe limatsegulidwa mu msakatuli wanu mukadina batani lothandizira la buluu mu MPLAB X IDE dashboard, monga momwe zasonyezedwera pachithunzichi.
Ngati mukupanga zolinga za 8-bit AVR, MPLAB® XC8 C Compiler User's® Guide for AVR
MCU ili ndi zidziwitso pazosankha zophatikizira ndi zinthu zomwe zimagwira ntchito pamamangidwe awa.
1.11. Thandizo la Makasitomala
Microchip imalandira malipoti a cholakwika, malingaliro kapena ndemanga zokhudzana ndi mtundu wa compiler iyi. Chonde tumizani malipoti aliwonse a cholakwika kapena zopempha zanu kudzera mu Support System.
Zosintha Zolemba
Kuti mupeze zolemba zapa intaneti komanso zaposachedwa za MPLAB XC8, chonde pitani pa Microchip's Online.
Zolemba Zaukadaulo webmalo.
Zolemba zatsopano kapena zosinthidwa za AVR pakutulutsa uku:
Kuyika ndi Kupereka Malayisensi MPLAB® XC C Compilers (DS50002059) kukonzanso L
The Microchip Uniified Standard Library Reference Guide imafotokoza za machitidwe ndi mawonekedwe a ntchito zomwe zafotokozedwa ndi Microchip Uniified Standard Library, komanso momwe angagwiritsire ntchito mitundu ya library ndi ma macros. Zina mwazidziwitsozi zinali kale mu MPLA® XC8 C Compiler User!s Guide® for AVR
MCU. Zambiri zamalaibulale zokhudzana ndi chipangizochi zikadali mu bukhuli.
Bukhu la Wogwiritsa Ntchito la Hexmate laphatikizidwa muzolemba zomwe zatulutsidwa. Bukuli lapangidwira ma docs omwe akuyendetsa Hexmate ngati pulogalamu yoyimirira yokha.
Magawo otsatirawa akupereka zowongolera ndi zina zowonjezera zomwe zimapezeka m'mabuku a ogwiritsa ntchito zomwe zidatumizidwa ndi wopanga.
2.1. Smart-io-format Option
The-msmart-io-format=fmt fmt njira, pomwe pali chingwe chokhala ndi zosintha za IO zosinthidwa, zimadziwitsa wopanga kuti zomwe zalembedwazo zimagwiritsidwa ntchito ndi machitidwe anzeru a IO.
Kuti muchepetse kukula kwa ma code, wopangayo amasintha mwamakonda ma code laibulale okhudzana ndi kusindikiza ndi kusanthula mabanja azinthu zanzeru za IO, kutengera zomwe zasinthidwa zomwe zili mumtundu wa zingwe zolumikizidwa pama foni onse kuzinthu izi. Izi zimangochitika zokha ndipo sizingalephereke.
Nthawi zina, wopangayo sangathe kudziwa zambiri zakugwiritsa ntchito kuchokera pa foni yosinthidwa ya IO. Ngati chisankhocho chagwiritsidwa ntchito, zofunikira zosinthika za ntchitozi zimachokera ku chingwe; Kupanda kutero, wopanga sapanga malingaliro amomwe -msmart-io-format=fmt fmt ntchito zimagwiritsidwira ntchito ndikuwonetsetsa kuti magwiridwe antchito amtundu wa IO alumikizidwa ndi chithunzi chomaliza.
Za example, lingalirani zoyimba zotsatirazi ku ntchito zanzeru za IO.
vscanf(“%d:%li”, va_list1);
vprintf(“%-s%d”, va_list2);
vprintf(fmt1, va_list3);// kugwiritsa ntchito momveka bwino
vscanf(fmt2, va_list4);// kugwiritsa ntchito momveka bwino
Pokonza mafoni awiri omaliza, wolembayo sangathe kufotokoza zambiri zogwiritsira ntchito kuchokera ku zingwe zamtundu, kapena mikangano. Muzochitika izi, njira ya -msmart-io-format ingagwiritsidwe ntchito ndipo ilola kuti magwiridwe antchito a I0 apangidwe bwino kwambiri, motero kuchepetsa kukula kwa ma code a pulogalamuyi. Za example, ngati zingwe zolozedwera ndi fmtl ndi fmt2 palimodzi zimagwiritsa ntchito mawu akuti "%d", "%i" ndi "% s" okha, the -msmart-io-format=fmt=”%d%i%s ” njira iyenera kuperekedwa.
Chingwe chopendekera chikhoza kukhala ndi mawu aliwonse ovomerezeka, kuphatikiza mbendera ndi zosintha (mwachitsanzoampndi "% -13. 91s"), ndipo ziyenera kuwonetsa ndendende zomwe zimagwiritsidwa ntchito ndi ntchito zomwe kugwiritsa ntchito kwake sikumveka bwino. Kukanika kuphatikizirapo tsatanetsatane mu pang'ono kukangana komwe kwagwiritsidwa ntchito ndi mawonekedwe a I0 kungayambitse kulephera kwa code.
Ngati fmt ndi chingwe chopanda kanthu kapena ilibe zosintha zowoneka bwino, chenjezo lidzaperekedwa ndipo magwiridwe antchito a I0 opangidwa bwino adzalumikizidwa ndi chithunzi chomaliza.
Izi zitha kugwiritsidwa ntchito kangapo pamzere wolamula. Zosintha zomwe zimagwiritsidwa ntchito ndi njira iliyonse zimasonkhanitsidwa.
2.2. Njira yosiyira-frame-pointer
Njira ya - f omit-frame-pointer imalangiza wolembayo kuti agwiritse ntchito cholozera cha stack kuti apeze zinthu zomwe zili pa stack ndipo, ngati n'kotheka, siyani nambala yomwe imasunga, kuyambitsa, ndi kubwezeretsa kaundula. Imayatsidwa yokha pamilingo yonse yopanda zero kukhathamiritsa.
Kukana chisankhocho, kugwiritsa ntchito -fno-omit- frame-pointer, kungathandize kuthetsa code yokonzedwa bwino; komabe, izi sizikutsimikizira kuti cholozera chimango chidzagwiritsidwa ntchito nthawi zonse.
2.3. Zosankha zotsegula-lupu
The – funrol I-loops ndi -(unroll-all-loops options control speed-orientated optimizations) zomwe zimayesa kuchotsa kuchedwa kwa nthambi mu malupu. Mipukutu yosatsegulidwa nthawi zambiri imawonjezera kuthamanga kwa kachidindo kopangidwa, ndikuwononga kukula kwa code.
Njira ya - funrol I-loops imatsegula malupu pomwe kuchuluka kwa zobwereza kumatha kuzindikirika panthawi yophatikiza kapena code ikalowa. Njira ya -funroll-all-loops imakhala yaukali, imamasula malupu onse, ngakhale kuchuluka kwa zobwereza sikudziwika. Sichithandiza kwambiri pakuwongolera liwiro la kupha kuposa njira ya - funrol 1-loops.
2.4. mafuta-Ito-zinthu Njira
The - f fat-1 to-obj imapanga zosankha kuti wopangayo apange chinthu chamafuta files, zomwe zili ndi zonse ziwiri
chinthu ndi GIMPLE (chimodzi mwa zoyimira zamkati za GCC), zolembedwa m'magawo apadera a ELF. Zinthu zotere files ndizothandiza pamakina a library omwe amatha kulumikizidwa ndi mapulojekiti omwe amachita komanso osagwiritsa ntchito njira yolumikizira nthawi yolumikizira, yoyendetsedwa ndi -flto.
Fomu ya - fno-fat-lto-objects ya njira iyi, yomwe ndi yosasinthika ngati palibe njira yomwe yatchulidwa, imakanikiza kuphatikizidwa kwa chinthucho mu chinthu. files, zomwe zimapangitsa kuti zimangidwe mwachangu. Komabe, amatsutsa files iyenera kulumikizidwa nthawi zonse pogwiritsa ntchito chowonjezera nthawi yolumikizira.
2.5. Njira ya Ito-partition
The - flto-partiti pa=a Ine ndi thm option imayang'anira algorithm yomwe imagwiritsidwa ntchito kugawa chinthu files poyendetsa ulalo-nthawi optimizer. Mtsutso palibe womwe umalepheretsa kugawa kwathunthu ndikuchita gawo lokhathamiritsa nthawi yolumikizana mwachindunji kuchokera mu gawo lonse la kusanthula pulogalamu (WPA). Njira iyi yogwirira ntchito idzatulutsa zotsatira zabwino kwambiri, potengera zofunikira zazikulu zamakumbukidwe ndi nthawi yayitali yomanga, ngakhale izi sizingakhale vuto ndi mapulogalamu ang'onoang'ono. Kugawa chinthu files ikhoza kupititsa patsogolo ntchito yomanga. Mtsutso woyamba umanena kuti gawo limodzi ndendende liyenera kugwiritsidwa ntchito, ndipo mkangano wa lto1 umatanthawuza kugawa magalasi omwe amanenedwa ndi gwero loyambirira. files. Mtsutso wokhazikika ndi wokhazikika, womwe umatanthawuza kugawa mumagulu ofanana, ngati n'kotheka.
2.6. Kuphatikiza kwa Gawo 3.6.11 Zosankha Zolumikizira Mapu
The -wl, -gawo-kuyamba =mphindi tion=owonjezera ikusowa patebulo la zosankha zomwe zimagwiritsidwa ntchito nthawi zambiri, zopezeka pogwiritsa ntchito -wl compiler driver driver. Izi zimalola kuyika magawo otchulidwa mwamakonda pa adilesi yotchulidwa. Sichingagwiritsidwe ntchito kuyika zigawo zokhazikika, monga ( . data, . bss, . text), yomwe iyenera kuyikidwa pogwiritsa ntchito -wl, -'r.
2.7. Kusintha kwa Gawo 4.14.2 Kusintha ndi Kulumikiza Gawo Loperekedwa
Zindikirani kuti mosiyana ndi zomwe zili mu gawo ili la kalozera wa Wogwiritsa ntchito, zosintha zomwe zidapangidwa kwa wophatikiza pakutulutsidwaku zikutanthawuza kuti zigawo zachikhalidwe zitha kulumikizidwa pogwiritsa ntchito -w1, -gawo ayoni- chiyambi=gawo=cir kusankha komanso popanda kusintha script yolumikizira.
Chatsopano ndi chiyani
Zotsatirazi ndizotsatira za AVR zatsopano zomwe wopanga amathandizira. Nambala ya Baibulo m’mitu ing’onoing’ono imasonyeza mtundu woyamba wa compiler kuti ugwirizane ndi mbali zimene zikutsatira.
3.1. Mtundu 2.39 (Functional Safety Release)
Network Server License Kutulutsidwa kwa MPLAB XC8 Functional Safety Compiler kumathandizira License ya Network Server.
3.2. Mtundu wa 2.36
Palibe.
3.3. Mtundu wa 2.35
Thandizo la chipangizo chatsopano likupezeka pazigawo za AVR zotsatirazi: ATTINY3224, ATTINY3226, ATTINY3227, AVR64DD14, AVR64DD20, AVR64DD28, ndi AVR64DD32.
Kusintha kwachinthu kwabwinoko Njira yatsopano -mcall-isr-prologues imasintha momwe ntchito zosokoneza zimasungira zolembera polowera ndi momwe zolemberazo zimabwezeretsedwanso pamene chizolowezi chosokoneza chikutha. Zimagwira ntchito mofananamo ndi njira ya -mcall-prologues, koma imakhudza ntchito zosokoneza (ISRs).
Kusintha kowonjezereka kwa mawu Chatsopano -mgas-isr-mayambi njira imayang'anira ma switch code omwe amapangidwira pazosokoneza zazing'ono. Ikayatsidwa, izi zipangitsa kuti wosonkhanitsa ajambule ISR kuti agwiritse ntchito kaundula ndikusunga zolembetsa zomwe zimagwiritsidwa ntchito ngati zikufunika.
Kupanga mapu ong'anima osinthika Zida zina za m'banja la AVR DA ndi AVR DB zili ndi SFR (monga FLMAP) yomwe imafotokoza kuti ndi gawo liti la 32k la mapologalamu omwe adzajambulidwe mu data memory. Njira yatsopano - mconst-data-in-config-mapped-progmem ingagwiritsidwe ntchito kuti ogwirizanitsa akhazikitse deta zonse zosayenera mu gawo limodzi la 32k ndikuyambitsa kaundula woyenera wa SFR kuti awonetsetse kuti detayi yalembedwa mu data. malo kukumbukira, kumene adzakhala kufika bwino kwambiri.
Microchip Unified Standard Libraries Onse MPLAB Ophatikiza a XC adzagawana Microchip Unified Standard Library, yomwe tsopano ikupezeka ndikutulutsidwa kwa MPLAB XC8. The Zithunzi za MPLAB® Zithunzi za XC8C
Maupangiri Ogwiritsa Ntchito AVR® MCU sikuphatikizanso zolembedwa zamachitidwe awa. Zambirizi zitha kupezeka mu Microchip Unified Standard Library Reference Guide. Dziwani kuti machitidwe ena omwe adafotokozedwa kale ndi avr-libc sakupezekanso. (Onani Ntchito ya library.)
Smart I0 Monga gawo la malaibulale atsopano ogwirizana, ntchito za JO m'mabanja a printf ndi scanf tsopano zapangidwa mwachizolowezi panyumba iliyonse, kutengera momwe ntchitozi zimagwiritsidwira ntchito mu pulogalamuyi. Izi zitha kuchepetsa kwambiri zinthu zomwe zimagwiritsidwa ntchito ndi pulogalamu.
Njira yothandizira ya Smart I0 Mukasanthula mafoni ku magwiridwe antchito anzeru a I0 (monga printf () kapena scanf ()), wopanga sangadziwe nthawi zonse kuchokera pamndandanda wamtundu kapena kutengera mikangano yomwe omasulira amafunikira pakuyimbayo. M'mbuyomu, wophatikiza sakanangoganizira ndikuwonetsetsa kuti ntchito 10 zogwira ntchito zonse zidalumikizidwa ndi chithunzi chomaliza. Njira yatsopano - msma rt-io- format=fmt yawonjezedwa kuti wophatikizayo azitha kudziwitsidwa ndi wogwiritsa ntchito zosintha zomwe zimagwiritsidwa ntchito ndi ntchito zanzeru za I0 zomwe kugwiritsa ntchito kwake sikumveka bwino, kulepheretsa kuti machitidwe 10 azilumikizana. (Onani smart-io-format Njira kuti mudziwe zambiri.)
Kuyika magawo achikhalidwe M'mbuyomu, -W1, -section-start njira idangoyika gawo lomwe latchulidwa pa adilesi yomwe adafunsidwa pomwe cholembera cholumikizira chimafotokoza gawo lomwe lili ndi dzina lomwelo. Pamene sizinali choncho, gawolo linayikidwa pa adiresi yosankhidwa ndi wogwirizanitsa ndipo chisankhocho chinanyalanyazidwa. Tsopano chisankhocho chidzalemekezedwa pazigawo zonse zachizoloŵezi, ngakhale script yogwirizanitsa sichikutanthauzira gawolo. Dziwani, komabe, kuti pazigawo zokhazikika, monga . mawu,. bss kapena . data, wokwanira bwino allocator adzakhalabe ndi ulamuliro wathunthu pa kuyika kwawo, ndipo kusankha sikudzakhala ndi zotsatira. Gwiritsani ntchito -wl, -Chigawo=kuwonjezera njira, monga tafotokozera mu bukhu la wogwiritsa ntchito.
3.4. Mtundu wa 2.32
Chitsogozo cha Stack Chilipo ndi chilolezo cha compiler cha PRO, chiwongolero cha omwe akuphatikiza atha kugwiritsidwa ntchito kuyerekeza kuzama kwa stack iliyonse yomwe imagwiritsidwa ntchito ndi pulogalamu. Imapanga ndikusanthula ma call graph a pulogalamuyo, imazindikira kuchuluka kwa ntchito iliyonse, ndikupanga lipoti, momwe kuya kwa miluko yomwe imagwiritsidwa ntchito ndi pulogalamuyo imatha kudziwika.
Izi zimathandizidwa kudzera mu -mchp-stack-usage command-line njira. Chidule cha kugwiritsidwa ntchito kwa stack kumasindikizidwa pambuyo pomaliza. Lipoti latsatanetsatane likupezeka pamapu file, yomwe ingapemphedwe mwachizolowezi.
Thandizo la chipangizo chatsopano likupezeka pazigawo za AVR zotsatirazi: ATTINY427, ATTINY424, ATTINY426, ATTINY827, ATTNY824, ATTINY826, AVR32DB32, AVR64DB48, AVR64DB64, AVR64DB28, AVR32DB28, AVR64DB32, AVR32DB48, AVRXNUMX, AVRXNUMXDBXNUMX
Thandizo lazida zobwezeretsedwa silikupezekanso pazigawo za AVR zotsatirazi: AVR 16DA28, AVR16DA32 ndi, AVR16DA48.
3.5. Version 2.31 Palibe.
3.6. Mtundu wa 2.30
Njira yatsopano yoletsa kuyambika kwa data Njira yatsopano yoyendetsa -mno-data-init imalepheretsa kukhazikitsidwa kwa data ndikuchotsa magawo a bss. Zimagwira ntchito poletsa kutulutsa kwa do_copy_data ndi zizindikiro za do_clear_bss pamsonkhano. files, zomwe zidzalepheretsa kuphatikizidwa kwa machitidwewo ndi ogwirizanitsa.
Kukhathamiritsa kowonjezera Kuwongolera zingapo kwapangidwa, kuphatikiza kuchotsedwa kwa malangizo obwereza osafunikira, kuchotsedwa kwa kudumpha kwina potsatira malangizo a kudumpha-ngati-bit-ndiko, komanso kuwongolera njira komanso kuthekera kobwereza njirayi.
Zosankha zowonjezera zilipo tsopano kuti zithetse zina mwazomwezi, makamaka -fsection-anchors, zomwe zimalola kupeza zinthu zosasunthika kuti zichitike mogwirizana ndi chizindikiro chimodzi; - kubwerezabwereza =n, zomwe zimalola kuti chiwerengero cha njira zobwerezabwereza zisinthidwe kuchokera ku zosasintha za 2; ndi, -mpa-callcost-shortcal 1, amene amachita mwaukali procedural abstraction, ndi chiyembekezo kuti linker akhoza kumasuka mafoni yaitali. Njira yomalizayi imatha kukulitsa kukula kwa ma code ngati malingaliro apansi sakukwaniritsidwa.
Chatsopano chithandizo cha chipangizo Thandizo likupezeka pazigawo za AVR zotsatirazi: AVR16DA28, AVR16DA32, AVR16DA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR128DA28, AVR128DB, 32DB, 128DB, AVR48DB, 128DB Chithunzi cha VR64DBXNUMX.
Thandizo la chipangizo chochotsedwa Thandizo silikupezekanso pazigawo za AVR zotsatirazi: ATA5272, ATA5790, ATA5790N, ATA5791, ATA5795, ATA6285, ATA6286, ATA6612C, ATA6613C, ATA6614Q, ATA6616C, ATA6617C, 664251, ATAXNUMX, ATAXNUMX, ATAXNUMX, ATAXNUMX, ATAXNUMX, ATAXNUMXC, ATAXNUMXC.
3.7. Mtundu 2.29 (Functional Safety Release)
Mutu file kwa compiler bunt-ins Kuwonetsetsa kuti wopangayo atha kugwirizana ndi zilankhulo monga MISRA, the mutu file, yomwe imaphatikizidwa ndi , zasinthidwa. Mutuwu uli ndi zofananira za ntchito zonse zomangidwa mkati, monga zomangidwa mu_avr_nop ( ) ndi _builtin_avr_delay_cycles () . Zina zomangidwa sizingagwirizane ndi MISRA; izi zitha kusiyidwa powonjezera define XC_STRICT MISRA pamzere wolamula wa compiler. Zomangamanga ndi zolengeza zawo zasinthidwa kuti zigwiritse ntchito mitundu yokhazikika.
3.8. Mtundu wa 2.20
Chatsopano chithandizo cha chipangizo Thandizo likupezeka pazigawo za AVR zotsatirazi: ATTINY 1624, ATTINY1626, ndi ATTINY 1 627.
Kugawidwa kwabwinoko kokwanira bwino The best fit allocator (BFA) mu compiler yakonzedwa kuti magawo agawidwe mwadongosolo lololeza kukhathamiritsa bwino. BFA tsopano imathandizira malo otchulidwa adilesi ndipo imayendetsa bwino kuyambika kwa data.
Kupititsa patsogolo kaganizidwe kachitidwe Kukhathamiritsa kwa procedural abstraction tsopano kwachitika pamakodi ambiri. Nthawi zam'mbuyomu pomwe kukhathamiritsa uku kutha kukulitsa kukula kwa ma code adayankhidwa popangitsa kuti code yokhathamiritsa idziwe za njira yosonkhanitsira zinyalala.
Kusowa kwa AVR Assembler AVR Assembler sichikuphatikizidwanso ndi kugawa uku. 3.9. Version 2.19 (Functional Safety Kumasulidwa)
Palibe.
3.10. Mtundu wa 2.10
Kufunika kwa Code Kutulutsidwa kumeneku kumaphatikizaponso kachidindo kamene kamathandizira kusanthula momwe magwero a polojekiti adagwiritsidwira ntchito. Gwiritsani ntchito njira -mcodecov=ram kuti muyitse. Pambuyo pochita pulojekiti pa hardware yanu, zidziwitso zachinsinsi zidzasonkhanitsidwa mu chipangizocho, ndipo izi zikhoza kusamutsidwa ndi kuwonetsedwa ndi MPLAB X IDE kudzera pa pulogalamu yowonjezera yowonjezera. Onani zolemba za IDE kuti mudziwe zambiri za pulogalamu yowonjezerayi zitha kupezeka.
#pragma nocodecov itha kugwiritsidwa ntchito kusiya ntchito zotsatizana ndi zowunikira. Momwemo pragma iyenera kuwonjezeredwa kumayambiriro kwa file kuchotsa zonsezo file kuchokera pazowunikira. Kapenanso, _attribute_ ((nocodecov)) angagwiritsidwe ntchito kusiya ntchito inayake kuchokera pazowunikira.
Kufotokozera kwachipangizo files Chipangizo chatsopano file yotchedwa avr_chipinfo.html ili mu bukhu la docs la
kugawa kwa compiler. Izi file imalemba zida zonse zothandizidwa ndi compiler. Dinani pa dzina la chipangizocho, ndipo idzatsegula tsamba lomwe likuwonetsa zovomerezeka zonse zokhazikika / zamtengo wapatali pa chipangizocho, ndi ex.amples.
Procedural abstraction Kukhathamiritsa kwa Procedural abstraction, komwe kumalowa m'malo mwa midadada wamba wapagulu ndikuyitanitsa kukopi yochotsedwa ya blockyo, awonjezedwa kwa wopanga. Izi zimachitidwa ndi pulogalamu yosiyana, yomwe imangoyitanidwa ndi wopangayo posankha mulingo 2, 3 kapena s kukhathamiritsa. Kukhathamiritsa uku kumachepetsa kukula kwa ma code, koma kutha kuchepetsa liwiro lakuchita komanso kusokoneza ma code.
Procedural abstraction imatha kuyimitsidwa pamasinthidwe apamwamba kwambiri pogwiritsa ntchito njira -mno-pa, kapena itha kuthandizidwa pamlingo wocheperako (malinga ndi chilolezo chanu) pogwiritsa ntchito -mpa. Ikhoza kuzimitsidwa pa chinthu file kugwiritsa -mno-pa-on-f ile=filedzina, kapena kuzimitsa ntchito pogwiritsa ntchito -mno-pa-onfunotion=f kukomoka.
M'kati mwa gwero lanu lachidziwitso, njira zowonongeka zimatha kuzimitsidwa kuti zigwiritsidwe ntchito pogwiritsa ntchito attribute_ ( ( (nopa) ) ndi tanthauzo la ntchitoyo, kapena pogwiritsa ntchito nopa, yomwe imafalikira ku _attribute_ ( (nopa, noinline) ) ndipo motero imalepheretsa kugwira ntchito kuti zisachitike. ndipo pali kuchotsedwa kwa code inlined.
Tsekani kuthandizira pang'ono mu pragma Kukonzekera kwa #pragma tsopano kutha kugwiritsidwa ntchito kutchula zotchingira za AVR komanso masinthidwe ena. Onani avr_chipinfo.html file (zotchulidwa pamwambapa) kuti mugwiritse ntchito ndi pragma iyi.
Chatsopano chithandizo cha chipangizo Thandizo likupezeka pazigawo zotsatirazi: AVR28DAl28, AVR64DAl28, AVR32DAl28, ndi AVR48DAl28.
3.11. Mtundu wa 2.05
Zambiri pamtengo wanu Mtundu wa macOS wa compiler iyi ndi woyang'anira layisensi tsopano ndi ntchito ya 64-bit. Izi ziwonetsetsa kuti wopangayo azikhazikitsa ndikuyendetsa popanda machenjezo pamitundu yaposachedwa ya macOS.
Const zinthu mu kukumbukira pulogalamu Wopangayo tsopano atha kuyika zinthu zoyenerera mu pulogalamu ya Flash memory, m'malo mokhala ndi izi mu RAM. Wopangayo wasinthidwa kuti cons t-qualified global data isungidwe mu pulogalamu ya flash memory ndipo izi zitha kupezeka mwachindunji komanso mwanjira ina pogwiritsa ntchito malangizo okumbukira pulogalamu. Zatsopanozi zimayatsidwa mwachisawawa koma zitha kuzimitsidwa pogwiritsa ntchito njira -mno-const-data-in-progmem. Zomangamanga za avrxmega3 ndi avrtiny, izi sizikufunika ndipo nthawi zonse zimakhala zolephereka, popeza kukumbukira kwa pulogalamu kumajambulidwa kumalo adilesi ya data pazida izi.
Muyezo waulere Mitundu yopanda chilolezo (yaulere) ya compiler iyi tsopano imalola kukhathamiritsa mpaka ndikuphatikiza mulingo 2. Izi zilola kutulutsa kofanana, ngakhale sikufanana, ndi zomwe zinali zotheka kale pogwiritsa ntchito laisensi Yokhazikika.
Takulandilani AVRASM2 Chojambulira cha AVRASM2 cha zida za 8-bit tsopano chikuphatikizidwa mu choyikira cha XC8 compiler. Chophatikizirachi sichimagwiritsidwa ntchito ndi wopanga XC8, koma chimapezeka pama projekiti otengera gwero lolembedwa pamanja.
Chatsopano chithandizo cha chipangizo Thandizo likupezeka pazigawo zotsatirazi: ATMEGA1608, ATMEGA 1609, ATMEGA808, ndi ATMEGA809.
3.12. Mtundu wa 2.00
Woyendetsa wapamwamba Dalaivala watsopano, wotchedwa xc8 -cc, tsopano akukhala pamwamba pa dalaivala wa avr-gcc wam'mbuyo ndi dalaivala wa xc8, ndipo akhoza kutchula wojambula woyenera potengera kusankha kwa chipangizo chandamale. Dalaivala uyu amavomereza zosankha zamtundu wa GCC, zomwe zimamasuliridwa kapena kupyola kwa wopangayo yemwe akuphedwa. Dalaivala uyu amalola zosankha zofananira zokhala ndi semantics zofananira kuti zigwiritsidwe ntchito ndi chandamale cha AVR kapena PIC motero ndiyo njira yolimbikitsira kuyitanitsa wopanga. Ngati pakufunika, dalaivala wakale wa avr-gcc amatha kuyitanidwa mwachindunji pogwiritsa ntchito njira zakale zomwe amavomereza m'mitundu yakale.
Common C Interface Wophatikiza uyu tsopano atha kugwirizana ndi MPLAB Common C Interface, zomwe zimalola ma source code kuti azitha kujambulidwa mosavuta pama compiler onse a MPLAB XC. Njira ya -mext=cci ikufuna izi, ndikupangitsa mawu ena owonjezera pazowonjezera zilankhulo zambiri.
Woyendetsa mabuku watsopano A dalaivala watsopano wa laibulale ali pamwamba pa woyang'anira laibulale ya PIC wam'mbuyo ndi woyang'anira laibulale wa AVR avr-ar. Dalaivala uyu amavomereza zosankha za GCC-archiver, zomwe zimamasuliridwa kapena kuperekedwa kwa woyang'anira mabuku yemwe akuphedwa. Dalaivala watsopano amalola zosankha zofanana ndi semantics zofanana kuti zigwiritsidwe ntchito kupanga kapena kuwongolera laibulale ya PIC kapena AVR. file ndiye njira yovomerezeka yoyitanitsa woyang'anira mabuku. Ngati zingafunike pamapulojekiti otengera mbiri yakale, woyang'anira mabuku wam'mbuyo amatha kuyitanidwa mwachindunji pogwiritsa ntchito njira zakale zomwe amavomereza m'matembenuzidwe am'mbuyomu.
Nkhani Zosamuka
Zotsatirazi ndizinthu zomwe tsopano zikugwiridwa mosiyana ndi compiler. Zosinthazi zingafunike kusinthidwa ku khodi yanu yoyambira ngati muyika khodi ku mtundu wa compiler iyi. Nambala ya Baibulo m’mitu ing’onoing’ono imasonyeza mtundu woyamba wa compiler kuti ugwirizane ndi kusintha kotsatira.
4.1. Mtundu 2.39 (Functional Safety Release)
Palibe.
4.2. Mtundu wa 2.36 Palibe.
4.3. Mtundu 2.35
Kusamalira zingwe-zoyambira (XC8-2420) Kuwonetsetsa kuti zikugwirizana ndi ophatikiza ena a XC, chingwe cha XC8 ntchito, monga strtol () ndi zina zotero, sizidzayesanso kusintha chingwe cholowetsa ngati maziko omwe atchulidwa ndi aakulu kuposa 36 ndipo m'malo mwake adzayika errno kukhala EINVAL. Muyezo wa C sunena za khalidwe la ntchito pamene mtengo wapansi uwu wapyola.
Kukhathamiritsa kwa liwiro kosayenera Kukhathamiritsa kwa machitidwe kumathandizidwa posankha kukhathamiritsa kwa mulingo 3 (-03). Kukhathamiritsa uku kumachepetsa kukula kwa ma code ndikuwononga liwiro la code, chifukwa chake siziyenera kuchitidwa. Mapulojekiti omwe akugwiritsa ntchito mulingo wokhathamiritsawu amatha kuwona kusiyana kwa kukula kwa ma code ndi liwiro la kachitidwe akapangidwa ndi kutulutsidwaku.
Laibulale magwiridwe Khodi ya magwiridwe antchito ambiri a laibulale ya C tsopano ikuchokera ku Microchip's Unified Standard Library, yomwe imatha kuwonetsa machitidwe osiyanasiyana nthawi zina poyerekeza ndi laibulale yakale ya avr-libc. Za example, sikoyeneranso kulumikiza laibulale ya 1printf flt (-1printf_flt njira) kuti muyatse chithandizo chamtundu wa I0 cha zowunikira zoyandama. Zinthu 10 zanzeru za Microchip Unified Standard Library zimapangitsa kuti njirayi ikhale yovuta. Kuphatikiza apo, kugwiritsa ntchito _P zokhazikika pazingwe ndi kukumbukira kukumbukira (monga strcpy_P ( ) ndi zina..) zomwe zimagwira ntchito pazingwe za const mu flash sizikufunikanso. Ma C routines okhazikika (monga strcpy 0 ) azigwira ntchito moyenera ndi data yotere pomwe gawo la const-data-in-program-memory liyatsidwa.
4.4. Mtundu wa 2.32
Palibe.
4.5. Mtundu wa 2.31
Palibe.
4.6. Mtundu wa 2.30
Palibe.
4.1. Mtundu 2.29 (Functional Safety Release)
Palibe.
4.2. Mtundu wa 2.20
Mapangidwe a DFP Osinthidwa Wopangayo tsopano akutenga masanjidwe ena ogwiritsidwa ntchito ndi ma DFP (Mapaketi a Banja la Chipangizo). Izi zikutanthauza kuti DFP yakale mwina sangagwire ntchito ndi kumasulidwa uku, ndipo olemba akale sangathe kugwiritsa ntchito ma DFP aposachedwa.
4.3. Mtundu 2.19 (Functional Safety Release)
Palibe.
4.4. Version 2.10 Palibe
4.5. Mtundu wa 2.05
Const zinthu zomwe zili mu memory memory Dziwani kuti mwachisawawa, zinthu zoyenerera zidzayikidwa ndikufikira mu kukumbukira pulogalamu (monga momwe adafotokozera). Izi zikhudza kukula ndi liwiro la projekiti yanu, koma ziyenera kuchepetsa kugwiritsa ntchito RAM. Izi zitha kuyimitsidwa, ngati zingafunike, pogwiritsa ntchito njira -mnocons t-data-in-pr ogmem.
4.6. Mtundu wa 2.00
Ma fusesi masinthidwe Ma fuse osinthira chipangizo tsopano akhoza kukonzedwa pogwiritsa ntchito pragma yotsatiridwa ndi kuyika mawiri awiri a mtengo kuti afotokoze momwe fuseyo ilili, mwachitsanzo #pragma config WDTON = SET #pragma config BODLEVEL = BODLEVEL_4V3
Mtheradi zinthu ndi ntchito Zinthu ndi ntchito zitha kuikidwa pa adilesi inayake pamtima pogwiritsa ntchito CCI _at (adilesi) specifier, mwachitsanzoampLe:
kuphatikiza
int foobar pa (0)0300100);
char at(0x250) getID(int offset) ( Mtsutso wa chofotokozerachi uyenera kukhala wokhazikika womwe umayimira adilesi yomwe baiti yoyamba kapena malangizo adzayikidwe. Maadiresi a RAM amawonetsedwa pogwiritsa ntchito Ox800000. Yambitsani CCI kuti igwiritse ntchito. gwiritsani ntchito izi.
New interrupt function syntax The compiler tsopano akuvomereza CCI _interrupt (num) chofotokozera chosonyeza kuti ntchito za C ndi zosokoneza. Wofotokozera amatenga nambala yosokoneza, mwachitsanzoampLe:
Nkhani Zokhazikika
Zotsatirazi ndizokonza zomwe zapangidwa kwa wopanga. Izi zitha kukonza zolakwika m'makhodi opangidwa kapena kusintha magwiridwe antchito azomwe zimapangidwira kapena kufotokozedwa ndi bukhu la wogwiritsa ntchito. Nambala yamtunduwu m'mitu yaing'ono ikuwonetsa mtundu woyamba wophatikiza zomwe zili ndi zokonzekera zomwe zikutsatira. Malebulo omwe ali m'mabulaketi omwe ali pamutu ndi omwe amazindikiritsa nkhaniyo munkhokwe. Izi zitha kukhala zothandiza ngati mukufuna kulumikizana ndi chithandizo.
Dziwani kuti zina zokhudzana ndi chipangizochi zimakonzedwa mu Device Family Pack (DR)) yogwirizana ndi chipangizocho. Onani MPLAB Pack Manager kuti mumve zambiri zakusintha ku DFPs komanso kutsitsa mapaketi aposachedwa.
5.1. Mtundu 2.39 (Functional Safety Release)
Palibe.
5.2. Mtundu wa 2.36
Zolakwika pakuchedwa (XCS-2774) Zosintha zazing'ono pazokongoletsedwa za Free mode zidalepheretsa kupindika kosalekeza kwa mawu a operand mpaka kuchedwa kwa magwiridwe antchito, zomwe zidapangitsa kuti aziwonedwa ngati osakhazikika ndikuyambitsa cholakwikacho. yomangidwa mu_avr_delay_cycles ikuyembekeza kuphatikizika kwa nthawi yosalekeza.
5.3. Mtundu wa 2.35
Zolumikizana kugawa kugwiritsa ntchito _at (XCS-2653) Kugawa mosalekeza kwa zinthu zingapo m'gawo lomwe lili ndi dzina lomwelo komanso kugwiritsa ntchito _at () sikunagwire ntchito bwino. Za exampLe:
const char arrl[ ] khalidwe (gawo(“.mysec”) pa (0x500) = (OxAB, OxCD);
const char arr2[ ] khalidwe (sectionr.mysec”)= (OxEF, OxFE);
anayenera kuika arr2 mwamsanga pambuyo arri.
Kufotokozera maadiresi oyambira gawo (XCS-2650) The -wl, -section-start njira inali kulephera mwakachetechete kuyika magawo pa adilesi yoyambira yosankhidwa. Nkhaniyi yakhazikitsidwa pazigawo zilizonse zotchulidwa mwachizolowezi; komabe, sizigwira ntchito pazigawo zilizonse zokhazikika, monga . zolemba kapena. bss, yomwe iyenera kuyikidwa pogwiritsa ntchito a -wl, -T njira.
Linker imawonongeka mukamapuma (XCS-2647) Pamene kukhathamiritsa kwa -mrelax kunayatsidwa ndipo iwo anali ma code kapena magawo a data omwe sanagwirizane ndi kukumbukira komwe kulipo, cholumikizira chinagwa. Tsopano, muzochitika zotere, mauthenga olakwika amaperekedwa m'malo mwake.
Ayi ayi-kugwa-kumbuyo (XCS-2646) The -nofallback njira sinagwiritsidwe bwino, kapena kulembedwa. Izi zitha kusankhidwa kuti zitsimikizire kuti wopangayo sabwereranso kumalo ocheperako ngati wopangayo alibe chilolezo, ndipo m'malo mwake adzapereka cholakwika.
Kukhathamiritsa kothamanga kosayenera (XCS-2637) Kukhathamiritsa kwa machitidwe kumathandizidwa posankha kukhathamiritsa kwa mulingo 3 (-03). Kukhathamiritsa uku kumachepetsa kukula kwa ma code ndikuwononga liwiro la code, chifukwa chake siziyenera kuchitidwa.
Kufikira koyipa kwa EEPROM (XCS-2629) Chizoloŵezi cha eeprom_read_block sichinagwire ntchito bwino pazida za Xmega pamene njira ya -mconst-data-in-progmem inayatsidwa (yomwe ili yokhazikika), zomwe zinachititsa kuti kukumbukira kwa EEPROM kusawerengedwe bwino.
Kugawa kukumbukira kosavomerezeka (X03-2593, XC8-2651) Liti njira ya -Ttext kapena -Tdata linker (yachitsanzoample adadutsa pogwiritsa ntchito -wl driver option) yafotokozedwa, zolemba zofananira / chigawo cha data zidasinthidwa; komabe, adilesi yomaliza sinasinthidwe moyenera, zomwe zikanapangitsa kuti dera lipitirire kuchuluka kwa kukumbukira kwa chipangizocho.
Kuwonongeka ndi ntchito yowonjezereka (XC8-2580) Wopangayo adagwa ngati ntchito idalengezedwa kuti ikugwiritsa ntchito kusokoneza, siginecha kapena ma nmi, mwachitsanzo, _attribute_ ( ( chizindikiro, sokoneza) ).
Khodi yosokoneza ya ATtiny (XC8-2465) Mukamanga zida za ATtiny ndipo kukhathamiritsa kudayimitsidwa (-00), kusokoneza magwiridwe antchito mwina kudayambitsa ma operand kuchoka pamawu osiyanasiyana ophatikiza.
Zosankha zomwe sizikudutsa (XC8-2452) Mukamagwiritsa ntchito -wl njira yokhala ndi zolumikizira zingapo, zolekanitsidwa ndi koma, si njira zonse zolumikizira zomwe zidaperekedwa kwa wolumikizira.
Kulakwitsa powerenga pulogalamu yokumbukira (X03-2450) Nthawi zina, wophatikiza amapanga cholakwika chamkati (insn yosazindikirika) powerenga mtengo wa byte ziwiri kuchokera pa pointer kupita ku memory ya pulogalamu
5.4. Mtundu wa 2.32
Kufikira kwachiwiri kwa laibulale kwalephera (X03-2381) Kuyitanitsa mtundu wa Windows wa xc8-ar.exe laibulale yosungirako kachiwiri kuti mupeze malo osungiramo laibulale yomwe ilipo mwina kwalephera chifukwa cholephera kutchulanso uthenga wolakwika.
5.5. Mtundu wa 2.31
Zosamveka kulephera kwa compiler (XC8-2367) Pamene akuthamanga Mawindo nsanja zomwe zinali ndi bukhu losakhalitsa ladongosolo lokhazikitsidwa kunjira yomwe inali ndi kadontho '.' khalidwe, wolembayo angakhale atalephera kuchita.
5.6. Mtundu wa 2.30
Zolemba zapadziko lonse zidasokonekera pambuyo pofotokoza (XC8-2299) Khodi ya msonkhano yolembedwa pamanja yomwe imayika padziko lonse lapansi Zolemba m'magawo ophatikizika omwe amatsatiridwa ndi njira mwina sizinakhazikitsidwenso moyenera.
Kuwonongeka kopumula (XC8-2287) Pogwiritsa ntchito -pumula mwina chidapangitsa kuti cholumikizira chiwonongeke pamene tail jump relaxation optimizations anayesera kuchotsa malangizo a ret omwe sanali kumapeto kwa a gawo.
Kuphwanyidwa pamene mukukonza zolembedwa monga ma values (XC8-2282) Code pogwiritsa ntchito "Labels as values" GNU C kukulitsa chilankhulo mwina kudapangitsa kuti kukhathamiritsa kwa njira kusokonezeke, ndi cholakwika chokonzekera cha Outlined VMA.
Osati const (XC8-2271) Ma prototypes a strstr () ndi ntchito zina kuchokera osanenanso za const qualifier pazingwe zobwezeredwa pomwe gawo la -mconst-data- inprogmem lazimitsidwa. Dziwani kuti ndi avrxmega3 ndi zida za avrtiny, izi zimayatsidwa mpaka kalekale.
Zoyambira zotayika (XC8-2269) Pamene zosintha zingapo pakumasulira unit idayikidwa mu gawo (kugwiritsa ntchito gawo or khalidwe ( (gawo) )), ndipo kusinthika koyamba kotereku kunali ziro koyambika kapena kunalibe choyambitsa, zoyambira zamitundu ina mugawo lomasulira lomwelo zomwe zidayikidwa gawo lomwelo zidatayika.
5.1. Mtundu 2.2 9 (Functional Safety Release) Palibe.
5.2. Mtundu wa 2.20
Zolakwika ndi malamulo aatali (XC8-1983) Mukamagwiritsa ntchito chandamale cha AVR, wopangayo atha kuyima ndi cholakwika chomwe sichinapezeke, ngati mzere wolamula unali waukulu kwambiri ndipo uli ndi zilembo zapadera monga mawu, ma backslash, ndi zina zambiri.
Gawo la rodata lomwe silinagawidwe (XC8-1920) Cholumikizira cha AVR chalephera kupereka kukumbukira kwa magawo a rodata pomwe amamanga avrxmega3 ndi ma avrtiny architectures, zomwe zitha kubweretsa zolakwika zomwe zingachitike.
5.3. Mtundu 2.19 (Functional Safety Release)
Palibe.
5.4. Mtundu wa 2.10
Kulephera kwa kusamuka (XC8-1891) Wothandizira bwino kwambiri anali kusiya 'mabowo' okumbukira pakati pa magawo pambuyo pakupumula kwa ulalo. Kupatula kukumbukira kugawika, izi zidakulitsa mwayi woti pakhale zolephereka zakusamutsa zolumikizira zokhudzana ndi kulumpha kwapakompyuta kapena kuyimba foni kuti zisachitike.
Malangizo omwe sanasinthidwe ndi kupumula (XC8-1889) Kupumula kwa kulumikizana sikunachitike pakudumpha kapena kuyimba malangizo omwe zolinga zake zimakhala zofikirika ngati zamasuka.
Kusowa magwiridwe antchito (XC8E-3 ) Matanthauzidwe angapo kuchokera , monga clock_div_t ndi clock_presc ale_s et () , sizinafotokozedwe pazida, kuphatikizapo ATmega324PB, ATmega328PB, ATtiny441, ndi ATtiny841.
Ma macros osowa Ma preprocessor macros _XC 8_MODE_, XC 8 VERS ION, XC, ndi xc8 sanadziwike okha ndi compiler. Izi zilipo tsopano.
5.5. Mtundu wa 2.05
Cholakwika cham'kati mwa compiler (XC8-1822) Mukamanga pansi pa Windows, cholakwika chamkati chamkati chikhoza kupangidwa pakukhathamiritsa kachidindo.
Kusefukira kwa RAM sikunadziwike (XC8-1800, XC8-1796) Mapulogalamu omwe adapitilira RAM yomwe ilipo sanazindikiridwe ndi wopanga nthawi zina, zomwe zidapangitsa kulephera kwa code code.
Memory yosiyidwa (XC8-1792) Pazida za avrxmega3 ndi avrtiny, mbali zina za flash memory mwina zidasiyidwa zosakonzedwa ndi MPLAB X IDE.
Kulephera kuchita zazikulu (XC8-1788) Nthawi zina pomwe pulogalamuyo inalibe zosintha zapadziko lonse lapansi, nambala yoyambira yoyambira sinatuluke ndipo ntchito yayikulu () sinafikire.
Mauthenga olakwika a kukumbukira (XC8-1787) Pazida za avrxmega3 ndi avrtiny, pulogalamu ya kukula kwa avr inali kunena kuti data yamisala yokha ndiyomwe ikudya RAM m'malo mokumbukira pulogalamu.
Kuwerenga kolakwika kwa pulogalamu (XC8-1783) Ma projekiti omwe amapangidwa pazida zomwe zili ndi kukumbukira kwamapulogalamu zomwe zimayikidwa pamalo adilesi ya data komanso zomwe zimatanthawuza zinthu zomwe zimagwiritsa ntchito PROGMEM macro/attribute mwina zidawerenga zinthu izi kuchokera ku adilesi yolakwika.
Cholakwika chamkati chokhala ndi mawonekedwe (XC8-1773) Cholakwika chamkati chidachitika ngati mutatanthauzira zinthu zolozera ndi _at 0 kapena umunthu () tokeni pakati pa dzina lolozera ndi mtundu wochotsedwa, kwa ex.ample, char * _at (0x800150) cp; Chenjezo tsopano laperekedwa ngati code yotere ikupezeka.
Kulephera kuchita zazikulu (XC8-1780, XC8-1767,XC8-1754) Kugwiritsa ntchito zosinthika za EEPROM kapena kufotokozera ma fuse pogwiritsa ntchito config pragma kungapangitse kuyambika kolakwika kwa data ndi/kapena kutsekereza kukhazikitsidwa kwa pulogalamu pamakina oyambira, musanafikire main 0.
Kulakwitsa kwa fuse ndi zida zazing'ono (XC8-1778, XC8-1742) Zida za attiny4/5/9/10120140 zinali ndi utali wolakwika wa fuse wotchulidwa pamutu wawo. files zomwe zimatsogolera ku zolakwika zolumikizirana poyesa kupanga ma code omwe amatanthauzira ma fuse.
Kulakwitsa kwa magawo (XC8-1777) Kulakwitsa kwa magawo apakati kwakonzedwa.
Kuwonongeka kwa Assembler (XC8-1761) The avr -as assembler mwina idagwa pomwe compiler idayendetsedwa pansi pa Ubuntu 18.
Zinthu sizinachotsedwe (XC8-1752) Zinthu zosasunthika zosasunthika za nthawi yosungira mwina sizinachotsedwe ndi code yoyambira.
Mafotokozedwe a chipangizo chotsutsana ananyalanyazidwa (XC8-1749) The compiler sinapangitse cholakwika pomwe zosankha zingapo za zida zidagwiritsidwa ntchito ndikuwonetsa zida zosiyanasiyana.
Kuwonongeka kwa Memory ndi mulu (XC8-1748) The _heap_start chizindikiro chinali kukhazikitsidwa molakwika, zomwe zimapangitsa kuti zosintha wamba ziwonongeke ndi mulu.
Vuto losamutsa Linker (XC8-1739) Vuto losamutsa maulalo mwina lidatulutsidwa pomwe code inali ndi rjmn kapena rcall yokhala ndi chandamale cha 4k bytes kutali.
5.6. Version 2.00 Palibe.
Nkhani Zodziwika
Zotsatirazi ndi zolepheretsa pakugwira ntchito kwa compiler. Izi zitha kukhala zoletsa zoletsa, kapena zopatuka pazambiri zomwe zili mu bukhu la wogwiritsa ntchito. Malebulo (ma) omwe ali m'mafunde ndi omwe amazindikiritsa nkhaniyo mu nkhokwe yolondolera. Izi zitha kukhala zothandiza ngati mukufuna kulumikizana ndi chithandizo. Zinthu zomwe zilibe zilembo ndizochepa zomwe zimalongosola modi operandi ndipo zitha kukhala zikugwira ntchito mpaka kalekale.
6.1. MPLAB X IDE Kuphatikiza
Zithunzi za MPLAB Kuphatikiza kwa IDE Ngati Compiler iyenera kugwiritsidwa ntchito kuchokera ku MPLAB IDE, ndiye kuti muyenera kukhazikitsa MPLAB IDE musanayike Compiler.
6.2. Kupanga Code
Zolakwika chiyambi (XC8-2679) Pali kusiyana pakati pa pomwe zoyambira za zinthu zina zapadziko lonse lapansi/zokhazikika zimayikidwa mu kukumbukira kwa data ndi komwe zosinthazo zidzafikiridwe panthawi yothamanga.
strtod molakwika amaika endptr (XC8-2652) Nthawi zina pamene chingwe chamutu chosinthidwa ndi strtod () chimakhala ndi nambala yoyandama mumtundu wa exponential ndipo pali zilembo zosayembekezereka pambuyo pa khalidwe la e, ndiye endptr adilesi, ngati yaperekedwa, idzaloza kwa munthu pambuyo pake. e osati e mwini. Za example: strtod ("100exy", endptr);
zidzapangitsa endptr kuloza ku mawonekedwe a x.
Kuyimba koyipa kosalunjika (X03-2628) Nthawi zina, kuyimba ntchito komwe kumapangidwa kudzera pa point point yosungidwa ngati gawo lachipangidwe kumatha kulephera.
strtof imabweretsa ziro zoyandama za hexadecimal (XC8-2626) Laibulale imagwira ntchito strtof () et al ndi scanf () et al, nthawi zonse imatembenuza nambala yoyandama ya hexadecimal yomwe siyimatchule chiwongolero kukhala ziro. Za example: strtof ("Oxl", &endptr); adzabwezera mtengo 0, osati 1.
Mauthenga olakwika a alangizi (XC8-2542, XC8-2541) Nthawi zina, chenjezo la alangizi okhudzana ndi kubwezeredwa kapena kusungika kosagwiritsidwa ntchito (mwina pogwiritsa ntchito alloca()) silimatulutsidwa.
Kulephera ndi khodi yosokoneza kawiri (XC8-2421) Pomwe kusokoneza kopitilira kumodzi kuli ndi thupi lomwelo, wophatikiza amatha kukhala ndi zotulutsa za ntchito imodzi yosokoneza kuyitana ina. Izi zidzapangitsa kuti ma regista onse otsekedwa asungidwe mopanda kufunikira, ndipo zosokoneza zidzayatsidwa ngakhale epilogue ya wothandizira wosokoneza panopa asanayambe, zomwe zingayambitse kulephera kwa code.
Const zinthu zomwe sizili muchikumbutso cha pulogalamu (XC8-2408) Kwa mapulojekiti avrxmega3 ndi avrtiny unitialized const zinthu zimayikidwa mu memory memory, ngakhale chenjezo likuwonetsa kuti zayikidwa mu kukumbukira pulogalamu. Izi sizikhudza zida zomwe zilibe kukumbukira pulogalamu yojambulidwa mu malo okumbukira deta, komanso sizikhudza chinthu chilichonse chomwe chakhazikitsidwa.
Kutulutsa koyipa kokhala ndi njira yolakwika ya DFP (XCS-2376) Ngati wopangayo apemphedwa ndi njira yolakwika ya DFP ndi 'spec' file ilipo pa chipangizo chomwe chasankhidwa, wophatikiza sakunena zapaketi yapachipangizo yomwe ikusowa ndipo m'malo mwake amasankha 'spec' file, zomwe zitha kubweretsa kutulutsa kosavomerezeka. The 'spec' filemwina sizingakhale zatsopano ndi ma DFP omwe adagawidwa ndipo adapangidwa kuti agwiritsidwe ntchito poyesa makina amkati okha.
Kulumikizana kwa Memory sikunazindikirike (XC8-1966) Wopangayo samazindikira kukumbukira kukumbukira kwa zinthu zomwe zidapangidwa ku adilesi (kudzera _at 0 ) ndi zinthu zina pogwiritsa ntchito _guluion () chofotokozera ndi zomwe zimalumikizidwa ku adilesi yomweyo.
Kulephera ndi ntchito za library ndi _memx (XC8-1763) Otchedwa libgcc float function ndi mkangano mu _memx malo adilesi akhoza kulephera. Zindikirani kuti machitidwe a laibulale amayitanidwa kuchokera kwa ena ogwira ntchito C, kotero, mwachitsanzoample, code yotsatirayi ikukhudzidwa: kubwerera regFloatVar > memxFloatVar;
Kukhazikitsa kwa libgcc kochepa (AVRTC-731) Kwa Zinthu za ATTiny4/5/9/10/20/40, kukhazikitsidwa kwa library ya C / Math mu libgcc ndikochepa kapena kulibe.
Zolepheretsa kukumbukira pulogalamu (AVRTC-732) Zithunzi zokumbukira pulogalamu yopitilira 128 kb zimathandizidwa ndi zida; komabe, pali zochitika zodziwika za kuchotsa mimba kwa linker popanda kupumula komanso popanda uthenga wolakwika wothandiza m'malo mopanga ma stubs ofunikira pamene njira -mrelax ikugwiritsidwa ntchito.
Tchulani malire a malo (AVRTC-733) Malo otchulidwa adiresi amathandizidwa ndi toolchain, malinga ndi zofooka zomwe zatchulidwa mu gawo lachilolezo cha ogwiritsira Ntchito Zoyenerera Zamtundu Wapadera.
Zone za nthawi The ntchito za library zimatengera GMT ndipo sizigwirizana ndi zone zanthawi zakomweko, motero loca Ime 0 ibwereranso nthawi yomweyo gmtime ( ) ,ample.
Zolemba / Zothandizira
![]() |
MICROCHIP MPLAB XC8 C Compiler Version 2.39 Notes Zotulutsa za AVR MCU [pdf] Buku Logwiritsa Ntchito MPLAB XC8 C Compiler Version 2.39 Notes Zotulutsidwa za AVR MCU, MPLAB XC8 C, Compiler Version 2.39 Notes Zotulutsa za AVR MCU, Zolemba Zotulutsa za AVR MCU |
![]() |
MICROCHIP MPLAB XC8 C Compiler Version 2.39 Notes Zotulutsa za AVR MCU [pdf] Buku Logwiritsa Ntchito MPLAB XC8 C Compiler Version 2.39 Notes Zotulutsa za AVR MCU, MPLAB XC8 C, Compiler Version 2.39 Notes zotulutsa za AVR MCU, Notes za AVR MCU |
![]() |
MICROCHIP MPLAB XC8 C Compiler [pdf] Buku Logwiritsa Ntchito MPLAB XC8 C Compiler, MPLAB XC8 C, Compiler |






