MPLAB® XC8 C Compiler Version 2.41 Ndemanga Zotulutsa za AVR® MCU
Buku la Mwini
MPLAB XC8 C Compiler Development Software
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 uku kwa Microchip MPLAB® XC8 C compiler ili ndi zatsopano zingapo ndi kukonza zolakwika.
1.2. Mangani Tsiku
Tsiku lovomerezeka la mtundu wa compiler iyi ndi 8 February 2023.
1.3. Mbiri Yakale
Mtundu wam'mbuyomu wa MPLAB XC8 C unali 2.40 womwe unamangidwa pa 3 Julayi 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. Zilolezo Zazigawo ndi Mabaibulo
The MPLAB XC8 C Compiler for AVR MCUs zida zimalembedwa ndi kugawidwa pansi pa GNU General Public License (GPL) zomwe zikutanthauza kuti code code yake imagawidwa momasuka komanso ikupezeka 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 laisensi omwe amagwiritsa ntchito zilipo pamakina osiyanasiyana ogwiritsira ntchito, kuphatikizapo 64-bit matembenuzidwe otsatirawa: Mabaibulo akatswiri 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. MPLAB XC Network License Server imapezeka pamakina osiyanasiyana a 64-bit, kuphatikiza Microsoft Windows 10 ndi pamwambapa; Ubuntu 18.04 ndi pamwambapa; kapena macOS 10.15 ndi pamwambapa. Seva imathanso kugwira ntchito pamakina ena osiyanasiyana ogwiritsira ntchito kuphatikiza Windows Server, magawo a Linux, monga Oracle® Enterprise Linux® ndi Red Hate Enterprise Linux komanso mitundu yakale yamakina ogwiritsira ntchito. Komabe, MPLAB XC Network License Server simayesedwa pamakina ogwiritsira ntchito awa. MPLAB XC Network License Server imatha kuyendetsedwa pa Virtual Machines za OS yothandizidwa pogwiritsa ntchito laisensi yamakina a ziphaso zama netiweki (SW006021-VM). Mitundu yonse ya 32-bit ya MPLAB XC Network Server yayimitsidwa kuyambira mtundu 3.00.
Zipangizo Zothandizidwa
Wophatikiza uyu amathandizira zida zonse za 8-bit AVR MCU panthawi yotulutsidwa. Onani (mu bukhu la compiler) pa mndandanda wa zida zonse zothandizira. Mafayilo awa amalembanso
avr_chipinfo.html doc configuration bit zokonda pa chipangizo chilichonse.
1.7. 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 kwa MPLAB XC Functional Safety Compiler kumathandizira 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.8. 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 ndichofunikira. 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.8.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 'Full Control'.
Kuti mudziwe komwe kuli foda ya temp, lembani % temp% mu Run command (Windows logo key + R).
Izi zidzatsegula fayilo yofufuzira yomwe ikuwonetsa chikwatucho ndipo ikulolani kuti mudziwe njira ya fodayo.
1.9. 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, Buku la MPLAB® XC8 C Compiler User's Guide la AVR® MCU lili ndi zambiri pazosankha zophatikiza ndi zomwe zimagwira ntchito pamamangidwe awa.

1.10.Kuthandizira 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 ku Microchip's Online Technical Documentation. webmalo. Zolemba zatsopano kapena zosinthidwa za AVR pakutulutsa uku:
- MPLAB® XC8 C Compiler User Guide ya AVR® MCU (yosinthidwa G)
- AVR® GNU Toolchain kupita ku MPLAB® XC8 Migration Guide (kukonzanso A)
- Maupangiri a ogwiritsa ntchito a Hexmate (kusinthidwa B)
Buku la AVR® GNU Toolchain kupita ku MPLAB® XC8 Migration Guide limafotokoza za kusintha kwa ma code code ndi kupanga zosankha zomwe zingafunike ngati mutasankha kusamutsa pulojekiti yochokera ku C kuchokera ku AVR 8-bit GNU Toolchain kupita ku Microchip MPLAB XC8 C Compiler. Buku la Microchip Unified Standard Library Reference Guide limafotokoza za machitidwe ndi mawonekedwe a ntchito zomwe zimafotokozedwa ndi Microchip Unified Standard Library, komanso momwe amagwiritsidwira ntchito mitundu ya library ndi ma macros. Zina mwazidziwitsozi zinali kale mu MPLAB® XC8 C Compiler User's Guide ya AVR® MCU. Zambiri zamalaibulale zapachipangizo zikadali m'bukuli.
Ngati mukungoyamba kumene ndi zida za 8-bit ndi MPLAB XC8 C Compiler, Buku Logwiritsa Ntchito la MPLAB® XC8 la Embedded Engineers - AVR® MCUs (DS50003108) lili ndi chidziwitso pakukhazikitsa mapulojekiti mu MPLAB X IDE ndikulembera khodi yanu. pulojekiti yoyamba ya MPLAB XC8 C. Bukuli tsopano likugawidwa ndi compiler.
Buku la Wogwiritsa Ntchito la Hexmate limapangidwira omwe akuthamanga Hexmate ngati pulogalamu yoyimilira yokha.
Chatsopano ndi chiyani
Zotsatirazi ndi zatsopano za AVR-chandamale zomwe wopangayo amathandizira. Nambala ya Baibulo ili m’mitu ing’onoing’ono imasonyeza mtundu woyamba wogwirizana ndi zinthu zimene zikutsatira.
3.1. Mtundu wa 2.41
Thandizo la Bootrow (XC8-3053) Wopangayo adzayika zomwe zili m'magawo aliwonse ndi chilembo cha.bootrow adilesi 0x860000 mu fayilo ya HEX. Zigawozi zimagwiritsidwa ntchito pokumbukira BOOTROW, zomwe zimapangidwira kusungirako makiyi ndi zina zotetezedwa zomwe ziyenera kupezeka kokha ku bootloader.
Kuchotsa kwa Redundant Return (XC8-3048) Wopangayo tsopano achotsa malangizo ochulukirapo muzochita zobwereza ndikudumpha mchira pamene zolembera zolumikizira zikugwiritsidwa ntchito. Uku ndi kukhathamiritsa kofanana ndi komwe kunachitika m'mbuyomu, koma tsopano kukuchitika m'magawo onse amasiye, ngakhale ngati cholembera cholumikizira chikugwiritsidwa ntchito ndipo njira yabwino kwambiri yogawirako simasewera. Kusintha kwa mtundu wa nthawi (XC8-2982, 2932) Mtundu wa laibulale wokhazikika wa C99, wasinthidwa kuchoka pa time_t kupita ku mtundu, womwe umapereka kusintha kwa kukula kwa ma code muzinthu zina zazitali zokhudzana ndi nthawi, monga. osasaina yaitali mktime()
New nop (XC8-2946, 2945) Ma macro awonjezedwa. Macro iyi imayika no- NOP () nop ntchito malangizo mu zotuluka.
Kusintha kwa XCLM (XC8-2944) Woyang'anira zilolezo yemwe amagwiritsidwa ntchito ndi wopangayo wasinthidwa ndipo tsopano amalabadira kwambiri akamayang'ana zilolezo za wopangayo.
Trampoline call (XC8-2760) Wopangayo tsopano atha kusinthanso maitanidwe amtundu wautali ndikuyimba foni kwakanthawi kochepa pomwe mitundu ya malangizoyo nthawi zambiri imakhala yosiyana ndi komwe akupita. Izi zikachitika, wopangayo ayesa kusintha ndi malangizo kuti ayitane rcall malangizo omwe 'trampoline' ku adilesi yofunikira, mwachitsanzoampndi: jmp
rcall tramp_foo ;anatchedwa foo
…
rcall tramp_uwu
…
tramp_foo:
jmp uwu
Kukhathamiritsa uku, pamodzi ndi kukhathamiritsa kwa pulogalamu yofananira, kumayendetsedwa ndi -mrelax njira.
3.2. Mtundu wa 2.40
Kuthandizira kwatsopano kwa chipangizochi tsopano kulipo pazigawo za AVR zotsatirazi: AT90PWM3, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR64EA28, AVR64EA32, AVR64, AVR48, AVRXNUMX, AVRXNUMX, AVRXNUMX, AVRXNUMX, AVRXNUMX, AVRXNUMXDDXNUMX
Chida chowonjezera cha njira (PA) chakonzedwa kuti khodi yomwe ili ndi malangizo oyitanitsa (/ ) itchulidwe. Izi zingochitika kuyimba foni ngati stackyo sikugwiritsidwa ntchito popereka mikangano kapena kupeza mtengo wobwerera kuchokera ku ntchitoyi. Kuchulukaku kumagwiritsidwa ntchito poyitanira ntchito yokhala ndi mikangano yosinthika kapena kuitana ntchito yomwe imatenga mikangano yambiri kuposa ma regista omwe amapangidwira izi. Izi zitha kuzimitsidwa pogwiritsa ntchito njirayo, kapena kutsatiridwa kwa njira kumatha kuyimitsidwa kwathunthu pafayilo yachinthu kapena ntchito pogwiritsa ntchito - ndi, motsatana, kapena kugwiritsa ntchito mawonekedwe (wodziwika) posankha ndi magwiridwe antchito.
kuyitana-mno-pa-pa-file -mno-pa-on-function nopa Code coverage macro Wophatikiza tsopano akufotokozera zazikulu ngati njira yovomerezeka ndi __nopa __CODECOV -mcodecov yafotokozedwa.
Njira yosungira kukumbukira Dalaivala tsopano avomereza xc8-cc -mreserve=space@start:end pomanga zolinga za AVR. Njirayi imasunga mndandanda wa kukumbukira komwe kumatchulidwa mu data kapena malo okumbukira pulogalamu, kulepheretsa wogwirizanitsa kuti asatulutse ma code kapena zinthu zomwe zili m'derali. Smarter smart IO Zosintha zingapo zachitika pa ntchito za Smart IO, kuphatikiza zosintha zonse ku printf core code, kuwonetsa kutembenuka kwa %n ngati mtundu wodziyimira pawokha, wolumikizana ndi vararg pop routines pakufunika, kugwiritsa ntchito mitundu yachidule ya data ngati kuli kotheka IO ntchito mikangano, ndi factoring code common mu munda m'lifupi ndi mwatsatanetsatane kusamalira. Izi zitha kubweretsa ma code ofunikira komanso kusungidwa kwa data, komanso kukulitsa kuthamanga kwa IO.
3.3. Mtundu 2.39 (Functional Safety Release)
Network Server License Kutulutsidwa kwa MPLAB XC8 Functional Safety Compiler kumathandizira License ya Network Server.
3.4. Mtundu wa 2.36
Palibe.
3.5. Mtundu wa 2.35
Thandizo la chipangizo chatsopano likupezeka pazigawo za AVR zotsatirazi: ATTINY3224, ATTINY3226, ATTINY3227, AVR64DD14, AVR64DD20, AVR64DD28, ndi AVR64DD32.
Kusintha kwazomwe zikuchitika Njira yatsopano -mcall-isr-prologues imasintha momwe ntchito zosokoneza zimasungira zolembera polowera ndi momwe zolemberazo zimabwezeretsedwanso pamene kusokoneza kwatha. Zimagwira ntchito mofananamo ndi njira ya -mcall-prologues, koma imakhudza ntchito zosokoneza (ISRs).
Kusintha kopitilira muyeso kwakusintha kwatsopano Njira yatsopano -mgas-isr-prologues imayang'anira kachidindo kosinthira komwe kamapangidwira machitidwe ang'onoang'ono osokoneza. 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 imatchula gawo la 32k la kukumbukira kwa pulogalamu lomwe lidzajambulidwe muzokumbukira za data. Njira yatsopano - mconst-data-in-config-mapped-progmem ingagwiritsidwe ntchito kukhala ndi olumikizira malo onse oyenerera mu gawo limodzi la 32k ndikuyambitsanso kaundula woyenera wa SFR kuti awonetsetse kuti izi zasungidwa mu kukumbukira kwa data. malo, kumene adzafikiridwa bwino kwambiri.
Microchip Unified Standard Libraries Onse opanga MPLAB XC adzagawana Microchip Unified Standard Library, yomwe tsopano ikupezeka ndi kutulutsidwa kwa MPLAB XC8. Buku la MPLA# XC8 C Compiler User's Guide la AVO MCU siliphatikizanso zolembedwa zamachitidwe awa. Izi zitha kupezeka mu Microchip Unified Standard Library Reference Guide. Dziwani kuti machitidwe ena omwe adafotokozedwa kale ndi avr-libc sakupezekanso. (Onani ntchito ya Lila.)
Smart I0 Monga gawo la malaibulale atsopano ogwirizana, ntchito za I0 m'mabanja a printf ndi scanf tsopano zapangidwa mwachizolowezi panyumba iliyonse, kutengera momwe ntchitozi zimagwiritsidwira ntchito pulogalamuyi. Izi zitha kuchepetsa kwambiri zinthu zomwe zimagwiritsidwa ntchito ndi pulogalamu.
Njira yothandizira ya Smart ICI Mukasanthula mafoni ku magwiridwe antchito anzeru a I0 (monga kusindikiza f () 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 - msmart-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 Option kuti mumve 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. deta, wokwanira bwino allocator adzakhalabe ndi ulamuliro wathunthu pa kuyika kwawo, ndipo kusankha sikudzakhala ndi zotsatira. Gwiritsani ntchito -ton, -Tsection=addr njira, monga momwe tafotokozera mu bukhu la wogwiritsa ntchito.
3.6. 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 pa -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, ATTINY824, ATTINY826, AVR32DB32, AVR64DB48, AVR64DB64, AVR64DB28, AVR32DB28, AVR64DB32, AVR32DB48, AVR16, AVR28DB16 Thandizo lazida zobwezeretsedwa silikupezekanso pazigawo za AVR zotsatirazi: AVR32DA16, AVR48DAXNUMX ndi, AVRXNUMXDAXNUMX.
3.7. Mtundu wa 2.31
Palibe.
3.8. 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 popondereza zomwe zimachokera ku do copy data ndikupanga zizindikiro zomveka bwino za 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-pang'ono, komanso kuwongolera njira komanso kuthekera kobwereza ndondomekoyi. Zosankha zowonjezera zilipo tsopano kuti zithetse zina mwazowonjezereka, makamaka -f gawo-anchors, zomwe zimalola kupeza zinthu zosasunthika kuti zichitike mogwirizana ndi chizindikiro chimodzi; -mpa-iterations=n, zomwe zimalola kuti chiwerengero cha njira zobwerezabwereza zisinthidwe kuchoka pa kusakhulupirika kwa 2; ndi, -mpa-callcost-shortcall, yomwe imachita mwaukali procedural abstraction, ndi chiyembekezo kuti linker akhoza kumasuka mafoni yaitali. Njira yomalizayi imatha kukulitsa kukula kwa ma code ngati malingaliro apansi sakukwaniritsidwa.
Thandizo la chipangizo chatsopano likupezeka pazigawo za AVR zotsatirazi: AVR16DA28, AVR16DA32, AVR16DA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR128DA28, AVR128DB, AVR32DB, AVR128DB, AVR48DB, AVR128DB Chithunzi cha VR64DB5272. Thandizo lothandizira pazida zobwezeretsedwa silikupezekanso pamagawo otsatirawa a AVR: ATA5790, ATA5790, ATA5791N, ATA5795, ATA6285, ATA6286, ATA6612, ATA6613C, ATA6614C, ATA6616Q, ATA6617C664251ATAXNUMXATAXNUMXATAXNUMXATAXNUMXATAXNUMXATAXNUMXATA.
3.9. Mtundu 2.29 (Functional Safety Release)
Mutu file kwa compiler build-ins Kuonetsetsa kuti wolembayo atha kugwirizana ndi zilankhulo monga MISRA, the mutu file, yomwe imaphatikizidwa ndi , zasinthidwa. Mutuwu uli ndi ma prototypes a ntchito zonse zomangidwa mkati, monga buildin_avr_nop ( ) ndi buildin avr delay_cycles () . Zina zomangidwa sizingagwirizane ndi MISRA; izi zitha kusiyidwa powonjezera defineXCSTRICT_MISRA pamzere wolamula wa compiler. Zomangamanga ndi zolengeza zawo zasinthidwa kuti zigwiritse ntchito mitundu yokhazikika.
3.10. Mtundu wa 2.20
Thandizo la chipangizo chatsopano likupezeka pazigawo za AVR zotsatirazi: ATTINY1624, ATTINY1626, ndi ATTINY1627.
Kugawa kwabwinoko koyenera Kwambiri Yokwanira yokwanira bwino (BFA) mu compiler yawongoleredwa kuti magawo agawidwe mwadongosolo lololeza kukhathamiritsa bwino. BFA tsopano imathandizira malo otchulidwa adilesi ndipo imayendetsa bwino kuyambika kwa data.
Kupititsa patsogolo kachulukidwe kachitidwe Kukhathamiritsa kwa machitidwe tsopano kukuchitika pamatsatidwe 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 The AVR Assembler sikuphatikizidwanso ndi kugawa uku.
3.11. Mtundu 2.19 (Functional Safety Release)
Palibe.
3.12. Mtundu wa 2.10
Kufalikira kwa Khodi Kutulutsidwa uku kumaphatikizaponso kachidindo komwe kamathandizira kuwunika momwe magwero a polojekiti adagwiritsidwira ntchito. Gwiritsani ntchito njira -mcodecov=ram kuti muyambitse. 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 zowunikira. Kapenanso, _attribute_ ( (nocodecov) ) angagwiritsidwe ntchito kuchotsa ntchito inayake kuchokera pazowunikira.
Kufotokozera kwachipangizo files Chida chatsopano file wotchedwa avr_chipinfo . html ili mu bukhu la ma 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 zosinthika / kupweteka kwamtengo wa 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 ntchito -mno-pa-file=filedzina, kapena kuzimitsa ntchito pogwiritsa ntchito -mno-pa-on-function=function. M'kati mwa gwero lanu lachidziwitso, njira zowonongeka zimatha kuzimitsidwa pa ntchito pogwiritsa ntchito chidziwitso ( ( ( nopa ) ) ndi tanthauzo la ntchitoyo, kapena kugwiritsa ntchito nopa, yomwe imakula kuti ikhale ( ( ( nopa, noinline ) ) ndipo motero imalepheretsa kugwira ntchito kuti zisachitike. ndipo pali kuchotsedwa kwa code inlined.
Thandizo lotseka pang'ono mu pragma #pragma config tsopano ikhoza kugwiritsidwa ntchito kutchula zotsekera za AVR komanso masinthidwe ena. Onani avr_chipinfo . html file (zotchulidwa pamwambapa) kuti mugwiritse ntchito ndi pragma iyi. Thandizo la chipangizo chatsopano likupezeka pazigawo zotsatirazi: AVR28DAl28, AVR64DAl28, AVR32DA 128, ndi AVR48DA 128.
3.13. Mtundu wa 2.05
Zambiri zandalama yanu 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 memory ya 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 memory flash memory ndipo izi zitha kupezeka mwachindunji komanso mosadziwika bwino 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.
Mabaibulo aulere Osaloledwa (Zaulere) a compilers tsopano amalola kukhathamiritsa mpaka ndi kuphatikiza mulingo 2. Izi zilola kuti zotulutsa zofanana, ngakhale sizofanana, ndi zomwe zinali zotheka m'mbuyomu pogwiritsa ntchito laisensi Yokhazikika.
Takulandirani AVRASM2 Chophatikizira cha AVRASM2 cha zida za 8-bit tsopano chikuphatikizidwa mu choyikira chophatikiza cha XC8. Chophatikizira ichi sichimagwiritsidwa ntchito ndi wopanga XC8, koma chimapezeka pama projekiti ozikidwa pa gwero la msonkhano wolembedwa pamanja.
Thandizo la chipangizo chatsopano likupezeka pazigawo zotsatirazi: ATMEGA1608, ATMEGA1609, ATMEGA808, ndi ATMEGA809.
3.14. Mtundu wa 2.00
Dalaivala Wapamwamba Woyendetsa watsopano, wotchedwa xc8-cc, tsopano akukhala pamwamba pa dalaivala wa avr-gcc wam'mbuyo ndi woyendetsa xc8, ndipo akhoza kuyitanitsa compiler yoyenera kutengera 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 pamagulu onse a MPLAB XC. Njira ya -mext=cci ikufuna izi, ndikupangitsa mawu ena owonjezera pazowonjezera zilankhulo zambiri.
Dalaivala watsopano wa laibulale Woyendetsa laibulale watsopano 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 zimayendetsedwa mosiyana ndi compiler. Zosinthazi zingafunike kusinthidwa kwa khodi yanu yoyambira ngati muyika khodi ku mtundu wa compiler iyi. Nambala ya Baibulo imene ili m’mitu ing’onoing’ono imasonyeza mtundu woyamba wogwirizana ndi zosinthazo.
4.1. Mtundu wa 2.41
Zolakwika za fma zachotsedwa (XC8-2913) The C99 standard library fma 0 -family function ( ) sanaphatikize kuchulukitsa-onjeza mwatsatanetsatane ku kuzungulira kumodzi, koma m'malo mwake adasonkhanitsa zolakwika zozungulira ndi ntchito iliyonse. Ntchito izi zachotsedwa mulaibulale yomwe yaperekedwa.
4.2. Mtundu wa 2.40
Palibe.
4.3. Mtundu 2.39 (Functional Safety Release)
Palibe.
4.4. Version 2.36 Palibe.
4.5. Mtundu wa 2.35
Kugwira zingwe zoyambira (XC8-2420) Kuti muwonetsetse kuti zikugwirizana ndi ophatikiza ena a XC, chingwe cha XC8 chimagwira ntchito, monga strtol () ndi zina zotero, sichidzayesanso kutembenuza chingwe cholowetsa ngati maziko omwe atchulidwa ndi aakulu kuposa 36 ndipo m'malo mwake adzayika errno kukhala EINVAL. Muyezo wa C sunatchule momwe zimagwirira ntchito pamene mtengo wapansi uwu wadutsa.
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, sikofunikiranso kulumikiza laibulale ya 1printf flt (-1printf_flt njira) kuti muyatse zofometsedwa. I0 kuthandizira pazowunikira zamtundu wa zoyandama. Anzeru I0 Zomwe zili mu 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 ) azigwira ntchito moyenera ndi data yotere pomwe gawo la const-data-in-program-memory liyatsidwa.
4.6. Mtundu wa 2.32
Palibe.
4.7. Mtundu wa 2.31
Palibe.
4.8. Mtundu wa 2.30
Palibe.
4.1. Mtundu 2.29 (Functional Safety Release)
Palibe.
4.2. Mtundu wa 2.20
Kusintha mawonekedwe a DFP Wopangayo tsopano akutenga masanjidwe ena omwe amagwiritsidwa ntchito ndi DFPs (Device Family Packs). 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. Mtundu wa 2.10
Palibe
4.5. Mtundu wa 2.05
Const zinthu zomwe zili mu memory ya pulogalamu Dziwani kuti zinthu zokhazikika, zoyenererana zidzayikidwa ndikufikiridwa mu memory memory (monga momwe tafotokozera). Izi zikhudza kukula ndi liwiro la projekiti yanu, koma ziyenera kuchepetsa kugwiritsa ntchito RAM. Izi zitha kuyimitsidwa, ngati zingafunike, pogwiritsa ntchito njira -mnoconst-data-in-progmem.
4.6. Mtundu wa 2.00
Masinthidwe ma fuse Ma fuse osinthira chipangizo tsopano akhoza kukonzedwa pogwiritsa ntchito config 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 (address) specifier, mwachitsanzo.ampLe:
#kuphatikizapo
int foobar_at(0x800100);
char __at(0x250) getID(int offset) { … }
Mtsutso wa chofotokozera ichi uyenera kukhala chokhazikika chomwe chimayimira adilesi yomwe baiti yoyamba kapena malangizo adzayikidwe. Maadiresi a RAM amawonetsedwa pogwiritsa ntchito 0x800000. Thandizani CCI kugwiritsa ntchito izi.
New interrupt function syntax Wopangayo tsopano avomereza chofotokozera cha CCI _interrupt (num) kusonyeza kuti ntchito za C ndizosokoneza. Wofotokozera amatenga nambala yosokoneza, mwachitsanzoampLe:
#kuphatikizapo
zopanda __kusokoneza(SPI_STC_vect_num) spi_Isr(zopanda) { … }
Nkhani Zokhazikika
Zotsatirazi ndi zosintha 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 ya mtundu wamtunduwu m'mitu yaing'ono ikuwonetsa mtundu woyamba wapaintaneti wokhala ndi zokonzekera zomwe zikutsatira. Zolemba zomwe zili m'mabulaketi pamutuwu ndizodziwikiratu zomwe zili mumndandanda wazotsatira. Izi zitha kukhala zothandiza ngati mukufuna kulumikizana ndi chithandizo.
Dziwani kuti zina zokhudzana ndi chipangizochi zimakonzedwa mu Device Family Pack (DFP) yolumikizidwa ndi chipangizochi. Onani MPLAB Pack Manager kuti mumve zambiri zakusintha ku DFPs komanso kutsitsa mapaketi aposachedwa.
5.1. Mtundu wa 2.41
Nkhani za Dongle pa Ventura (XC8-3088) Dongles omwe amagwiritsidwa ntchito kupereka zilolezo kwa wopangayo mwina sanawerengedwe bwino pa makamu a macOS Ventura, zomwe zidapangitsa kulephera kwa chilolezo. Kusintha kwa woyang'anira layisensi ya XCLM konzani nkhaniyi.
Chizindikiro cholakwika cha kugawa kukumbukira (XC8-2925) Kuyesa kugawa ma byte SIZE_MAX (kapena mtengo woyandikira izi) wamakumbukiro pogwiritsa ntchito njira zoyang'anira zokumbukira laibulale (malloc () et al) sizinayende bwino. Sizinaganizire kuti ma byte owonjezera amafunikira kuwonjezera pa chipika chomwe adafunsidwa pogwiritsa ntchito njira yosavuta yogawa kukumbukira. NULL pointer tsopano ibwezeredwa ndipo errno ikhazikitsidwa ku ENOMEM muzochitika zotere.
Zolakwika za fma zachotsedwa (XC8-2913) C99 standard library fma ( ) -family function ( ) sanaphatikize kuchulukitsa-onjeza mwatsatanetsatane ku kuzungulira kumodzi, koma m'malo mwake adasonkhanitsa zolakwika zozungulira ndi ntchito iliyonse. Ntchito izi zachotsedwa mulaibulale yomwe yaperekedwa.
Kusamalidwa koyipa kwa kutembenuka kwa zingwe (XC8-2921, XC8-2652) Pamene 'kutsatizana kwa phunziro' lotembenuzidwa ndi strtod Cr liri ndi nambala yomwe inkawoneka ngati nambala yoyandama mumtundu wa exponential ndipo panali khalidwe losayembekezereka pambuyo pa khalidwe la e/E, ndiye pamene endptr inaperekedwa, inapatsidwa adilesi yomwe inali italoza ku khalidwe pambuyo pa e/E, pamene ilo liyenera kuloza ku khalidwe la e/E palokha, popeza ilo linali lisanatembenuzidwe. Za example, strtod ("100exx", &ep) ayenera kubwerera 100.00 ndikukhazikitsa ep kuti aloze ku gawo la "exx" la chingwe, pamene ntchitoyo inali kubwezera mtengo wolondola koma kukhazikitsa ep kuti aloze ku gawo la "xx" la chingwe. .
5.2. Mtundu wa 2.40
Kumasuka kwambiri (XCS-2876) Mukamagwiritsa ntchito -mrelax njira, wolembayo sanali kugawa zigawo zina palimodzi, zomwe zimapangitsa kuti pakhale ma code ochepa. Izi mwina zidachitika ndi code yomwe idagwiritsa ntchito malaibulale atsopano a MUSL kapena ndi zilembo zofooka.
Kujambula kwamapu sikunayimitsidwe monga kuchenjeza (XC8-2875) Mawonekedwe a const-data-in-config-mappedprogmem amadalira mawonekedwe a const-data-in-progmem akuyatsidwa. Ngati mawonekedwe a const-data-inconfig-mapped-progmem adathandizidwa momveka bwino pogwiritsa ntchito njirayo ndipo mawonekedwe a const-data-inprogmem adayimitsidwa, sitepe yolumikizira idalephera, ngakhale uthenga wochenjeza wonena kuti const-data-in-con fig- Mapu-progmem anali atazimitsidwa okha, zomwe sizinali zolondola kwenikweni. Ntchito ya const-data-in-config-mapped-progmem tsopano ndiyoyimitsidwa kwathunthu pankhaniyi.
Kusintha kwa DFP kuti mupeze NVMCTRL (XC8-2848) molondola Khodi yoyambira nthawi yoyambira yogwiritsidwa ntchito ndi zida za AVR64EA sinaganizire kuti kaundula wa NVMCTRL anali pansi pa Configuration Change Protection (CCP) ndipo sanathe kuyika I0 SFR patsamba logwiritsidwa ntchito ndi const-data-in-configmapped-progmem. mawonekedwe a compiler. Zosintha zomwe zachitika mu mtundu wa AVR-Ex_DFP 2.2.55 zidzalola kuti code yoyambira yoyambira ilembe molondola ku regista iyi.
Kusintha kwa DFP kuti mupewe kung'anima mapu (XC8-2847) Ntchito yozungulira vuto la chipangizo chojambula mapu chomwe chafotokozedwa mu AVR128DA28/32/48/64 Silicon Errata (D580000882) chakhazikitsidwa. Chojambula cha const-data-in-config-mapped-progmem compiler sichidzagwiritsidwa ntchito mwachisawawa pazida zomwe zakhudzidwa, ndipo kusinthaku kudzawonekera mu AVR-Dx_DFP version 2.2.160.
Pangani cholakwika ndi sinhf kapena coshf (XC8-2834) Kuyesa kugwiritsa ntchito sinhf () kapena coshf () laibulale kumapangitsa kuti pakhale vuto la ulalo, kufotokoza kalembedwe kosadziwika. Ntchito yosowa yotchulidwa tsopano yaphatikizidwa mu kagawidwe kawopanga.
Pangani zolakwika ndi nopa (XC,8-2833) Kugwiritsa ntchito mawonekedwe a nopa ndi ntchito yomwe yakhala ndi dzina la assembler yotchulidwa pogwiritsa ntchito asm ( ) kunayambitsa mauthenga olakwika kuchokera kwa assembler. Kuphatikiza uku sikutheka.
Kulephera kwa magwiridwe antchito amitundu yosiyanasiyana ndi mikangano ya pointer (XC8-2755, XC8-2731) Zogwira ntchito zokhala ndi mikangano yosiyana zimayembekezera zolozera za 24-bit (mtundu wa memx) kuti zidutsidwe pamndandanda wotsutsana wosinthika pomwe mawonekedwe a const-data-in-progmem ayatsidwa. Zotsutsana zomwe zinali zolozera ku kukumbukira kwa data zinali kuperekedwa ngati zinthu za 16-bit, zomwe zinapangitsa kulephera kwa code pamene pamapeto pake zidawerengedwa. Pamene mawonekedwe a constdata-in-progmem atsegulidwa, mikangano yonse ya 16-bit pointers tsopano imasinthidwa kukhala 24-bit pointers.
strtoxxx library library ikulephera (XC8-2620) Pamene mawonekedwe a const-data-in-progmem adayatsidwa, endptr parameter mu laibulale ya strtoxxx sinasinthidwe bwino pazokangana zachingwe zomwe sizimakumbukira pulogalamu.
Zidziwitso za osewera osavomerezeka (XC8-2612) Wopangayo tsopano atulutsa cholakwika ngati mawonekedwe a const-in-progmem athandizidwa ndipo adilesi ya chingwe chenicheni imayikidwa momveka bwino pamalo adilesi ya data (kugwetsa qualifier), kwa ex.ample, (uint 8_t *) "Moni Dziko!". Chenjezo ndi vuto ngati adilesi ingakhale yolakwika pomwe cholozera cha const data chikuponyedwa momveka bwino pamalo adilesi ya data.
Kuyika kwa zinthu zosadziwika bwino (XC8-2408) Zinthu zosadziwika bwino za const ndi const volatile sizimayikidwa muchikumbutso cha pulogalamu pazida zomwe zimayika zonse kapena gawo lazokumbukira zamapulogalamu mumalo adilesi ya data. Pazida izi, zinthu zotere tsopano zimayikidwa mu kukumbukira pulogalamu, kupangitsa kuti ntchito yawo ikhale yogwirizana ndi zida zina.
5.3. Mtundu 2.39 (Functional Safety Release)
Palibe.
5.4. Mtundu wa 2.36
Zolakwika pakuchedwa (XC8-2774) Kusintha kwapang'ono pakukhathamiritsa kwa Free mode kwalepheretsa kupindika kosalekeza kwa mawu a operand mpaka kuchedwa kwa ntchito zomwe zamangidwa, zomwe zimapangitsa kuti aziwonedwa ngati osakhazikika ndikuyambitsa cholakwika: buildin avr delay_cycles amayembekeza kuphatikiza nthawi yochulukirapo.
5.5. Mtundu wa 2.35
Kugawa kogwirizana pogwiritsa ntchito _at (XC8-2653) Kugawa mosalekeza kwa zinthu zingapo m'gawo lomwe lili ndi dzina lomwelo komanso kugwiritsa ntchito _at ( ) sikunagwire ntchito bwino. Za exampLe:
const char arr1[] __attribute__((gawo(“.mysec”))) __at (0x500) = {0xAB, 0xCD};
const char arr2[] __attribute__((gawo(“.mysec”))) = {0xEF, 0xFE};
amayenera kuyika arr2 nthawi yomweyo arr1.
Kutchula ma adilesi oyambira gawo (XC8-2650) The -W1, -section-start mwina inali kulephera mwakachetechete kuyika magawo pa adilesi yoyambira yomwe yasankhidwa. Nkhaniyi yakhazikitsidwa pazigawo zilizonse zotchulidwa mwachizolowezi; komabe, sizigwira ntchito pazigawo zilizonse zokhazikika, monga . zolemba kapena. bss, yomwe iyenera kuyikidwa pogwiritsa ntchito -W1, -T.
Kuwonongeka kwa Linker mukamapuma (XC8-2647) Pamene -mrelax kukhathamiritsa kunayatsidwa ndipo panali ma code kapena zigawo za data zomwe sizinagwirizane ndi kukumbukira komwe kulipo, cholumikizira chinagwa. Tsopano, muzochitika zotere, mauthenga olakwika amaperekedwa m'malo mwake.
Palibe kugwa-m'mbuyo (XC8-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 kwa liwiro kosayenera (X03-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.
EEPROM yoyipa mwayi (XC8-2629) eeprom_read_block routine sinagwire bwino ntchito pazida za Xmega pomwe njira -mconst-data-in-progmem idayatsidwa (yomwe ili yokhazikika), zomwe zidapangitsa kuti kukumbukira kwa EEPROM kusawerengedwe bwino.
Kugawa kukumbukira kosavomerezeka (XC8-2593, XC8-2651) Pamene -Ttext kapena -Tdata linker njira (yachitsanzoample adadutsa pogwiritsa ntchito -vl driver option) atchulidwa, 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 adawonongeka ngati ntchito idalengezedwa kuti ikugwiritsa ntchito kusokoneza, siginecha kapena ma nmi, mwachitsanzo, mawonekedwe ( ( chizindikiro, kusokoneza ) .
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 njirayo ndi zosankha zingapo, zolekanitsidwa ndi koma, si njira zonse zolumikizira zomwe zidaperekedwa kwa wolumikizira.
Kulakwitsa powerenga pulogalamu kukumbukira (X03-2450) Nthawi zina, wophatikiza amapanga cholakwika chamkati (insn yosazindikirika) powerenga mtengo wa byte kuchokera pa pointer kupita ku memory memory.
5.6. Mtundu wa 2.32
Kufikira kwachiwiri kwa laibulale yalephera (XC8-2381) Kuyitanitsa mtundu wa Windows wa xc8-ar. .exe library archive kachiwiri kuti alowe mu library yomwe ilipo mwina yalephera chifukwa cholephera kutchulanso uthenga wolakwika.
5.7. Mtundu wa 2.31
Wopanga zosadziwika zolephera (XC8-2367) Pogwira ntchito pamapulatifomu a Windows omwe anali ndi bukhu losakhalitsa ladongosolo lokhazikitsidwa kunjira yomwe inali ndi kadontho '.' khalidwe, wolembayo angakhale atalephera kuchita.
5.8. Mtundu wa 2.30
Zolemba zapadziko lonse zidasokonekera pambuyo pofotokoza (XC8-2299) Khodi yophatikiza yolembedwa pamanja yomwe imayika zilembo zapadziko lonse lapansi m'magawo amagulu omwe amatsatiridwa ndi njira zofotokozera mwina sizinakhazikitsidwenso moyenera.
Kuwonongeka kopumula (XC8-2287) Kugwiritsa ntchito -mrelax mwina kudapangitsa kuti cholumikizira chiwonongeke pamene kukhathamiritsa kwa mchira kumayesa kuchotsa malangizo omwe sanali kumapeto kwa gawo.
Kuphwanyidwa pamene mukukonza zolembedwa ngati misinkhu (XC8-2282) Khodi pogwiritsa ntchito "Labels as values" kukulitsa chilankhulo cha GNU C mwina kudapangitsa kuti kukhathamiritsa kwa njira kusokonezeke, ndi cholakwika chokonzekera cha Outlined VMA.
Osati const (XC8-2271) Ma prototypes a st rstr ( ) ndi ntchito zina kuchokera osanenanso za const qualifier pazingwe zobwezeredwa pomwe mawonekedwe -mconst-data-inprogmem atsekedwa. Dziwani kuti ndi avrxmega3 ndi zida za avrtiny, izi zimayatsidwa mpaka kalekale.
Otaika oyamba (XC8-2269) Pamene kuposa kusinthika kumodzi mugawo lomasulira kunayikidwa mu gawo (pogwiritsa ntchito _section kapena _attribute_ ((gawo) )), ndipo kusinthika koyamba kotereku kudayambika kapena kunalibe choyambitsa, zoyambira zamitundu ina mugawo lomasulira lomwelo lomwe linayikidwa. mu gawo lomwelo anatayika.
5.1. Mtundu 2.29 (Functional Safety Release)
Palibe.
5.2. Mtundu wa 2.20
Cholakwika ndi malamulo aatali (XC8-1983) Mukamagwiritsa ntchito chandamale cha AVR, wopangayo atha kuyima ndi a file sichinapezeke cholakwika, ngati mzere wolamula unali waukulu kwambiri ndipo uli ndi zilembo zapadera monga mawu, ma backslash, ndi zina.
Gawo la rodata losaperekedwa (XC8-1920) Cholumikizira cha AVR chinalephera kugawa kukumbukira magawo a rodata pomwe amamanga avrxmega3 ndi ma avrtiny architectures, zomwe zitha kubweretsa zolakwika zomwe zingachitike.
5.3. Mtundu wa 2.19 (Functional Safety Release)
Palibe.
5.4. Mtundu wa 2.10
Kulephera kusamuka (XC8-1891) Wothandizira bwino kwambiri anali kusiya 'mabowo' pamtima pakati pa magawo pambuyo popumula. 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-388) Matanthauzo angapo kuchokera , monga clock_div_t ndi clock_prescale set () , sizinatchulidwe pazida, kuphatikizapo ATmega324PB, ATmega328PB, ATtiny441, ndi ATtiny841.
Ma macros akusowa Ma preprocessor macros _XC8_MODE_, _XC8_VERS ION, _XC, ndi _XC8 sanafotokozedwe ndi wophatikiza. Izi zilipo tsopano.
5.5. Mtundu wa 2.05
Cholakwika chapakatikati (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 za flash memory mwina zidasiyidwa zosakonzedwa ndi MPLAB X. IDE.
Kulephera kuchita zazikulu (XC8-1788) Nthawi zina pomwe pulogalamuyo inalibe zosintha zapadziko lonse lapansi, code yoyambira nthawi yoyambira sinatuluke ndipo ntchito yayikulu ( ) sinafikirepo.
Zolakwika za kukumbukira (XC8-1787) Pazida za avrxmega3 ndi avrtiny, pulogalamu ya kukula kwa avr inali kunena kuti zowerengera zokha zimadya RAM m'malo mokumbukira pulogalamu.
Kuwerenga kolakwika kwa pulogalamu (XC8-1783) Mapulojekiti omwe amapangidwa pazida zomwe zili ndi kukumbukira kwa pulogalamu yojambulidwa mu malo adilesi ya data komanso zomwe zimatanthauzira zinthu pogwiritsa ntchito PROGMEM macro/attribute mwina zidawerenga zinthu izi kuchokera ku adilesi yolakwika.
Cholakwika chamkati chokhala ndi mawonekedwe (XC8-1773) Cholakwika chamkati chidachitika ngati mutafotokozera zinthu za pointer ndi
_at () kapena attribute() tokeni pakati pa dzina lolozera ndi mtundu wosatchulidwa,ample, char*
_pa (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 kutha kuyambitsa kuyambika kolakwika kwa data ndi/kapena kutsekereza kukhazikitsidwa kwa pulogalamu pamakina oyambira, musanafike chachikulu ( ) .
Kulakwitsa kwa fuse ndi zida zazing'ono (XC8-1778, XC8-1742) Zida za attiny4/5/9/ 10/20/40 zinali ndi utali wolakwika wa fuse wotchulidwa pamutu wawo. files zomwe zimatsogolera ku zolakwika zolumikizirana poyesa kupanga ma code omwe amatanthauzira ma fuse.
Kugawikana cholakwika (XC8-1777) Cholakwa cha magawo apakati chakonzedwa.
Kuwonongeka kwa Assembler (XC8-1761) Avr-assembler atha kugwa pomwe wopangayo adayendetsedwa pansi pa Ubuntu 18.
Zinthu sizinachotsedwe (XC8-1752) Zinthu zosasunthika zosasunthika za nthawi yosungira mwina sizinachotsedwe ndi code yoyambira.
Kufotokozera kwa chipangizo chosemphana sikunyalanyazidwa (XC8-1749) Wopangayo sanali kupanga 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 litha kutulutsidwa pomwe code inali ndi rjmp kapena rcall yokhala ndi cholinga cha 4k bytes ndendende.
5.6. Mtundu wa 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 omwe ali m'mabulaketi omwe ali pamutu ndi omwe amazindikiritsa nkhaniyo munkhokwe. 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
Chithunzi cha MPLAB kuphatikiza Ngati Compiler iyenera kugwiritsidwa ntchito kuchokera ku MPLAB IDE, ndiye kuti muyenera kukhazikitsa MPLAB IDE musanayike Compiler.
6.2. Kupanga Code
Segfault yokhala ndi gawo-anchors njira (XC8-3045) Pulogalamu yomwe imatanthauzira ntchito yokhala ndi mikangano yosinthika komanso yomwe imagwiritsa ntchito -fsection-anchors mwina idayambitsa cholakwika cham'kati: cholakwika cha magawo.
Zambiri zakusintha sizinalumikizidwe (XC8-2948) Pamene kukhathamiritsa kwa ma linker kumachepetsa malangizo (mwachitsanzoample call to rcall malangizo), mzere woyambira woyankhulirana ndi mamapu sungakhale wolumikizana ngati pali ntchito yochepera imodzi yomwe ikuchitika mgawo.
M'munsimu exampLero, pali mafoni awiri opita ku foo omwe amatha kukhala omasuka pama foni achibale.
PA memory allocation kulephera (XC8-2881) Mukamagwiritsa ntchito zowonjezeretsa njira, wolumikizirayo atha kunena zolakwika pakugawa kukumbukira pomwe kukula kwa ma code kuli pafupi ndi kuchuluka kwa kukumbukira pulogalamu yomwe ilipo pa chipangizocho, ngakhale pulogalamuyo iyenera kukwanira malo omwe alipo.
Osati anzeru kwambiri Smart-I0 (XC8-2872) Mawonekedwe a smart-io a compiler apanga code yovomerezeka koma yocheperako pa ntchito ya snprint f ngati gawo la const-data-in-progmem lazimitsidwa kapena ngati chipangizocho chili ndi mapu ake onse ojambulidwa mu kukumbukira kwa data.
Ngakhale Smart-I0 yocheperako (XC8-2869) Mawonekedwe a smart-io a compiler apanga code yovomerezeka koma yocheperako pomwe zosankha -flto ndi -fno-builtin zonse zikugwiritsidwa ntchito.
Kuyika kwa data kocheperako (XC8-2849) Wogwirizanitsa pakali pano sadziwa za APPCODE ndi APPDATA zigawo za kukumbukira, kapena [No-Read-While-Write magawidwe pamapu okumbukira. Zotsatira zake, pali mwayi wochepa woti wolumikizirayo agawire zowerengera zokha pamalo osayenera kukumbukira. Mwayi wa data yotayika ukuwonjezeka ngati mawonekedwe a const-data-in-progmem athandizidwa, makamaka ngati mawonekedwe a const-data-in-config-mapped-progmem nawonso athandizidwa. Izi zitha kuyimitsidwa ngati zingafunike.
Chinthu file kukonza dongosolo (XC8-2863) Mchitidwe wa zinthu files idzasinthidwa ndi wolumikizirayo ingakhale yosiyana kutengera kugwiritsa ntchito njira zolimbikitsira (-mpa option). Izi zitha kungokhudza ma code omwe amatanthauzira ntchito zofooka pama module angapo.
Cholakwika cholumikizira ndi mtheradi (XC8-2777) Chinthu chikapangidwa kukhala mtheradi pa adilesi kumayambiriro kwa RAM ndipo zinthu zosadziwika zafotokozedwanso, cholakwika cholumikizira chikhoza kuyambitsa.
Ma ID odzuka mwachidule (XC8-2775) Pazida za ATA5700/2, zolembera za PHIDO/1 zimangofotokozedwa kuti ndi 16 bits m'lifupi, osati 32 bits mulifupi.
Kuwonongeka kwa Linker poyimba chizindikiro (XC8-2758) Cholumikizira chikhoza kuwonongeka ngati -mrelax dalaivala njira ikugwiritsidwa ntchito pamene code source imatchula chizindikiro chomwe chatanthauzidwa pogwiritsa ntchito -cc., -de f sym linker.
Kuyambitsa kolakwika (XC8-2679) Kumeneko ndi kusiyana pakati pa pomwe zoyambira za zinthu zina zapadziko lonse lapansi/zosasinthika zimayikidwa mu kukumbukira kwa data ndi komwe zosinthazo zidzafikiridwe panthawi yothamanga.
Kuyimba koyipa kosalunjika (XC8-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 simatchule chiwongolero kukhala ziro. Za exampLe:
strtof ("Oxl", &endptr);
adzabwezera mtengo 0, osati ine.
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.
Kutulutsa koyipa kokhala ndi njira yolakwika ya DFP (XC8-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 sakuwona kukumbukira kukumbukira kwa zinthu zomwe zidapangidwa mtheradi pa adilesi (kudzera _at ( )) ndi zinthu zina pogwiritsa ntchito gawo ( ) specifier ndi zomwe zimalumikizidwa ndi adilesi yomweyo.
Kulephera ndi ntchito za library ndi _memx (XC8-1763) Kutchedwa libgcc float function ndi mkangano mu memx adilesi malo akhoza kulephera. Zindikirani kuti machitidwe a laibulale amayitanidwa kuchokera kwa ena ogwira ntchito C, kotero, mwachitsanzoample, code zotsatirazi zakhudzidwa:
kubwerera regFloatVar> memxFloatVar;
Kukhazikitsa kwa libgcc kochepa (AVRTC-731) Pazinthu 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 kumasuka komanso popanda uthenga wolakwika wothandiza m'malo mopanga ma stubs ofunikira pamene njira -mre lax 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 madera a nthawi yakomweko, motero nthawi yakumaloko ( ) ibwereranso nthawi yomweyo monga gmtime ( ) , mwachitsanzo.ample.
file:///Applications/microchip/xc8/v2.41/docs/Readme_XC8_for_AVR.htm
Zolemba / Zothandizira
![]() |
MICROCHIP MPLAB XC8 C Compiler Development Software [pdf] Buku la Mwini MPLAB XC8 C, MPLAB XC8 C Compiler Development Software, Compiler Development Software, Development Software, Software |




