I-MICROCHIP MPLAB XC8 C Compiler Software 

I-MICROCHIP MPLAB XC8 C Compiler Software

LO MBHALO UQUKETHE ULWAZI OLUBALULEKILE ESIPHATHELENE NE-MPLAB XC8 C COMPILER LAPHO IKHOMBISA AMADIVAYISI E-MICROCHIP AVR.
SICELA UYIFUNDE NGAPHAMBI KOKUSEBENZISA LE SOFTWARE. BONA AMANOTHI OKUKHISHWA WE-MPLAB XC8 C COMPILER NGEDOKHUMENTI YE-PIC UMA USEBENZISA I-COMPILER KUMADIVAYISI E-PIC angu-8-BIT.

Okuqukethwe fihla

Kuphelileview

Isingeniso

Lokhu kukhishwa kwenhlanganisela ye-Microchip MPLAB® XC8 C kuqukethe izici ezintsha ezimbalwa, ukulungiswa kweziphazamisi, nokusekelwa kwedivayisi entsha.

Yakha Usuku

Idethi esemthethweni yokwakha yale nguqulo yomdidiyeli umhla zi-3 kuJulayi 2022.

Inguqulo Yangaphambili

Inguqulo yangaphambilini yenhlanganisela ye-MPLAB XC8 C bekungu-2.39, inhlanganisela yokuphepha esebenzayo, eyakhiwa ngomhla ka-27 Januwari 2022. Inhlanganisela yangaphambilini evamile kwakuyinguqulo 2.36, eyakhelwe ngomhla ka-27 Januwari 2022.

Imanuwali Yokuphepha Esebenzayo

Incwadi Yokuphepha Esebenzayo yabadidiyeli be-MPLAB XC iyatholakala kuphakheji yemibhalo lapho uthenga ilayisense yokuphepha esebenzayo.

Amalayisense Engxenye Nezinguqulo

I-MPLAB® XC8 C Compiler yamathuluzi e-AVR MCUs ibhaliwe futhi yasakazwa ngaphansi kwe-GNU General Public License (GPL) okusho ukuthi ikhodi yayo yomthombo isatshalaliswa ngokukhululekile futhi iyatholakala emphakathini. Ikhodi yomthombo yamathuluzi angaphansi kwe-GNU GPL ingalandwa ngokuhlukile kuma-Microchip's webindawo. Ungafunda i-GNU GPL ku- file okuqanjwe kutholakala uhlu olungaphansi lwemibhalo yakho yokufaka. Ingxoxo evamile yemigomo engaphansi kwe-GPL ingatholakala lapha. Ikhodi yosekelo inikezwe unhlokweni files, imibhalo yokuxhumanisa, namalabhulali esikhathi sokusebenza kuyikhodi yokuphathelene futhi ayimboziwe ngaphansi kwe-GPL.

Lesi sakhi siwukusetshenziswa kwenguqulo ye-GCC 5.4.0, inguqulo ye-binutils 2.26, futhi isebenzisa inguqulo ye-avr-libc engu-2.0.0.

Izidingo Zesistimu

I-MPLAB XC8 C compiler kanye nesofthiwe yokunikeza ilayisense eyisebenzisayo iyatholakala kumasistimu wokusebenza ahlukahlukene, kuhlanganisa nezinguqulo ezingu-64-bit zalokhu okulandelayo: Izinhlelo zochwepheshe ze-Microsoft Windows 10; Ubuntu 18.04; kanye ne-macOS 10.15.5. Izinombolo kanambambili zeWindows zisayiniwe ngekhodi. Izinombolo kanambambili ze-mac OShave zisayinwe ngekhodi futhi zaqashelwa.

Uma usebenzisa iseva yelayisensi yenethiwekhi, amakhompyutha kuphela anamasistimu okusebenza asekelwa abadidiyeli angasetshenziswa ukusingatha iseva yelayisensi. Kusukela kunguqulo ye-xclm 2.0, iseva yelayisensi yenethiwekhi ingafakwa kunkundla ye-Microsoft Windows Server, kodwa iseva yelayisensi ayidingi ukusebenzisa inguqulo yeseva yesistimu yokusebenza.

Amadivayisi Asekelwa

Le compiler isekela wonke amadivaysi e-8-bit AVR MCU aziwa ngesikhathi sokukhishwa. Bona (kuhla lwemibhalo lwedokhumenti yomhlanganisi) ukuze uthole uhlu lwazo zonke izisetshenziswa ezisekelwayo. Lezi files futhi yenza kuhlu izilungiselelo zebhithi yokumisa kudivayisi ngayinye.

Izinguqulo kanye Nokuthuthukiswa Kwelayisensi

I-MPLAB XC8 compiler ingenziwa isebenze njengomkhiqizo onelayisensi (PRO) noma ongenalayisense (wamahhala). Udinga ukuthenga ukhiye wokwenza kusebenze ukuze ulayisense isihlanganisi sakho. Ilayisensi ivumela izinga eliphezulu lokuthuthukisa uma liqhathaniswa nomkhiqizo Wamahhala. Umhlanganisi ongenalayisense ungasebenza unomphela ngaphandle kwelayisensi.

I-MPLAB XC8 Functional Safety compiler kufanele isebenze ngelayisensi yokuphepha esebenzayo ethengwe kwaMicrochip. Umdidiyeli ngeke asebenze ngaphandle kwale layisensi. Uma isicushiwe, ungakhetha noma iyiphi ileveli yokuthuthukisa futhi usebenzise zonke izici zokuhlanganisa. Lokhu kukhishwa kwe-MPLAB XC Functional Safety Compiler kusekela Ilayisense Yeseva Yenethiwekhi.
Bheka idokhumenti Yokufaka Nokunika Amalayisense I-MPLAB XC C Compilers (DS50002059) ukuze uthole ulwazi ngezinhlobo zamalayisensi kanye nokufakwa komdidiyeli onelayisensi.

Ukufakwa futhi kusebenze

Bona futhi Izinkinga Zokuthutha Nemikhawulo nezigaba ukuze uthole ulwazi olubalulekile mayelana nomphathi wakamuva welayisensi ofakwe nalo mdidiyeli.
Uma usebenzisa i-MPLAB IDE, qiniseka ukuthi ufaka inguqulo yakamuva ye-MPLAB X IDE engu-5.0 noma eyakamuva ngaphambi kokufaka leli thuluzi. Yeka i-IDE ngaphambi kokufaka isihlanganisi. Qalisa uhlelo lokusebenza lwesifaki se-.exe (Windows), .run (Linux) noma uhlelo lokusebenza (i-macOS), isb XC8-1.00.11403-windows.exe bese ulandela izikhombisi-ndlela ezisesikrinini.
Kunconywa ukufakwa kwemibhalo okuzenzakalelayo. Uma usebenzisa i-Linux, kufanele ufake i-compiler usebenzisa i-terminal kanye ne-akhawunti yezimpande. Faka usebenzisa i-akhawunti ye-macOS enamalungelo omlawuli.

Ukwenza kusebenze manje kwenziwa ngokwehlukana ukuze kufakwe. Bheka idokhumenti Yesiphathi Selayisensi ye-MPLAB® XC C Compilers (DS52059) ukuze uthole ulwazi olwengeziwe.

Uma ukhetha ukusebenzisa isihlanganisi ngaphansi kwelayisensi yokuhlola, manje uzothola isexwayiso ngesikhathi sokuhlanganiswa lapho ungaphakathi kwezinsuku eziyi-14 zokuphela kwesikhathi sakho sokuhlola. Isexwayiso esifanayo sikhishwa uma ungaphakathi kwezinsuku eziyi-14 zokuphela kokubhalisile kwe-HPA.

Iseva Yelayisensi Yenethiwekhi ye-XC iyisifaki esihlukile futhi asifakiwe kusifaki esihlanganisayo somsebenzisi oyedwa.

Umphathi Welayisensi ye-XC manje usekela ukuzulazula kwamalayisensi enethiwekhi antantayo. Iqondiswe kubasebenzisi beselula, lesi sici sivumela ilayisense elintantayo ukuthi liphume kunethiwekhi isikhathi esifushane. Ngokusebenzisa lesi sici, unganqamula kunethiwekhi futhi usebenzise isihlanganisi sakho se-MPLAB XC. Bona ifolda yedokhumenti yokufakwa kwe-XCLM ukuze uthole okwengeziwe ngalesi sici. I-MPLAB X IDE ihlanganisa iwindi Lamalayisensi (Amathuluzi > Amalayisense) ukuze ulawule ukuzulazula ngokubonakalayo.

Ukuxazulula Izinkinga Zokufaka

Uma uhlangabezana nobunzima bokufaka isihlanganisi ngaphansi kwanoma yiziphi izinhlelo zokusebenza ze-Windows, zama iziphakamiso ezilandelayo.

  • Qalisa ukufaka njengomlawuli.
  • Setha izimvume zohlelo lokusebenza zibe 'Ukulawula Okugcwele'. (Chofoza kwesokudla i- file, khetha Izakhiwo, Ithebhu yokuphepha, khetha umsebenzisi, hlela.)
  • Setha izimvume zefolda yesikhashana zibe “Ukulawula Okugcwele!

Ukuze unqume indawo yefolda yesikhashana, thayipha %temp% kumyalo we-Run (ukhiye welogo yeWindows + R). Lokhu kuzovula a file ibhokisi lokuhlola elibonisa lolo hlu lwemibhalo futhi lizokuvumela ukuthi unqume indlela yaleyo folda.

Imibhalo Yokuhlanganisa

Imihlahlandlela yomsebenzisi womdidiyeli ingavulwa ekhasini le-HTML elivuleka esipheqululini sakho uma uchofoza inkinobho yosizo eluhlaza okwesibhakabhaka kudeshibhodi ye-MPLAB X IDE, njengoba kukhonjisiwe kusithombe-skrini.

Imibhalo Yokuhlanganisa
Uma wakhela okuqondiwe kwe-8-bit AVR, Umhlahlandlela Womsebenzisi Wokuhlanganisa we-MPLAB® XC8 C we-AVR® MCU uqukethe ulwazi ngalezo zinketho ze-compiler nezici ezisebenza kule zakhiwo.

Ukwesekwa Kwamakhasimende

I-Microchip yamukela imibiko yesiphazamisi, iziphakamiso noma ukuphawula mayelana nale nguqulo yomdidiyeli. Sicela uqondise noma yimiphi imibiko yesiphazamisi noma izicelo zesici ngohlelo Lokusekela.

Ukubuyekezwa Kwemibhalo

Ukuze uthole izinguqulo eziku-inthanethi nezibuyekeziwe zemibhalo ye-MPLAB XC8, sicela uvakashele Umbhalo Wezobuchwepheshe We-Microchip webindawo.

Amadokhumenti e-AVR amasha noma abuyekeziwe kulokhu kukhishwa:

  • Isaziso se-copyright ye-MUSL
  • Ukufaka Nokunika Amalayisense I-MPLAB XC C Compilers (ukubuyekeza M)
  • I-MPLAB XC8 User!s Guide for Embedded Engineers – AVR MCUs (ukubuyekeza A)
  • Umhlahlandlela Womsebenzisi Wokuhlanganisa we-MPLAB XC8 C we-AVR MCU (ukubuyekeza F)
  • I-Microchip Unified Standard Library Reference Guide (inguqulo B)

I-Microchip Unified Standard Reference Guide ichaza indlela yokuziphatha nesixhumi esibonakalayo semisebenzi echazwe yi-Microchip Unified Standard Library, kanye nokusetshenziswa okuhlosiwe kwezinhlobo zamalabhulali nama-macros. Olunye lwalolu lwazi ngaphambilini lwaluqukethwe ku-MPLAB® XC8 C Compiler User!s Guide ye-AVR® MCU. Ulwazi lwelabhulali eqondene nedivayisi lusaqukethwe kulo mhlahlandlela wokuhlanganisa.

Uma usanda kuqala ngamadivaysi angu-8-bit kanye ne-MPLAB XC8 C Compiler, Umhlahlandlela Womsebenzisi we-MPLAB® XC8 Wonjiniyela Abashumekiwe - i-AVR® MCUs (DS50003108) inolwazi lokusetha amaphrojekthi ku-MPLAB X IDE kanye nekhodi yokubhala. ngephrojekthi yakho yokuqala ye-MPLAB XC8 C. Lo mhlahlandlela manje usatshalaliswa nomdidiyeli.

I-Hamate User's Guide ifakiwe kuhla lwemibhalo kulokhu kukhululwa. Lo mhlahlandlela uhloselwe labo abasebenzisa i-Hamate njengohlelo lokusebenza oluzimele lodwa.

Yini entsha

Okulandelayo yizici ezintsha eziqondiswe ku-AVR umdidiyeli manje azisekelayo. Inombolo yenguqulo ezihlokweni ezingezansi ibonisa inguqulo yokuqala yokuhlanganisa ukuze isekele izici ezilandelayo.

Inguqulo 2.40

Usekelo lwedivayisi entsha Usekelo seluyatholakala ezingxenyeni ezilandelayo ze-AVR: AT90PWM3, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR64EA28, AVR64EA32, AVR64EA48, AVRXNUMXEAXNUMX, AVRXNUMXEAXNUMX kanye ne-AVRXNUMXDDXNUMX
Ukufinyezwa kwenqubo okuthuthukisiwe Ithuluzi lokuthuthukisa i-procedural abstraction (PA) lithuthukisiwe ukuze ikhodi equkethe umyalo wokushaya ( call recall ) ) ingachazwa. Lokhu kuzokwenzeka kuphela uma isitaki singasetshenziselwa ukudlulisa izimpikiswano noma ukuthola inani lokubuyisela emsebenzini. Isitaki sisetshenziswa lapho kubizwa umsebenzi ngohlu lwezimpikiswano eziguquguqukayo noma lapho kubizwa umsebenzi othatha izimpikiswano eziningi kunamarejista aklanyelwe le njongo. Lesi sici singacishwa kusetshenziswa inketho ye-monk-pa-outline-calls, noma ukukhipha kwenqubo kungakhutshazwa ngokuphelele entweni. file noma usebenze ngokusebenzisa i-monk-pa-on-file kanye -mo.-pa-on-function ngokulandelanayo, noma ngokusebenzisa isibaluli se-nipa ( i-nipa specifier) ​​ngokukhetha kanye nemisebenzi

I-macro enekhodi Umdidiyeli manje uchaza i-macro __CODECOV uma inketho evumelekile ye-mcodecov icacisiwe.

Inketho yokubhuka inkumbulo Umshayeli we-xc8-cc manje usezokwamukela inketho ethi -mreserve=space@start: uma yakhela okuqondiwe kwe-AVR. Le nketho igodla ububanzi bememori obushiwo endaweni yedatha noma yememori yohlelo, ivimbela isixhumi ukuthi sigcwale ikhodi noma izinto ezikule ndawo.

Smarter smart IO Ukuthuthukiswa okuningana kwenziwe emisebenzini ye-Smart IO, okuhlanganisa ukulungiswa okuvamile kwekhodi eyinhloko ye-printf, ukuphatha isicacisi sokuguqulwa esingu-%n njengento ehlukile ehlukile, exhunyaniswa ne-varrg pop routines ngokufunwa, kusetshenziswa izinhlobo zedatha ezimfushane lapho kungenzeka khona ukuphatha izimpikiswano zomsebenzi we-IO. , kanye nokufaka ikhodi evamile kububanzi bensimu nokuphatha ngokunemba. Lokhu kungaholela ekongeni kwekhodi ebalulekile nokongiwa kwedatha, kanye nokwenyusa isivinini sokwenza se-IO.

Inguqulo 2.39 (Ukukhishwa Kokuphepha Okusebenzayo)

Ilayisense Yeseva Yenethiwekhi Lokhu kukhishwa kwe-MPLAB XC8 Functional Safety Compiler kusekela Ilayisense Yeseva Yenethiwekhi.

Inguqulo 2.36

Lutho.

Inguqulo 2.35

Usekelo lwedivayisi entsha Usekelo luyatholakala ezingxenyeni ezilandelayo ze-AVR: ATTINY3224, ATTINY3226, ATTINY3227, AVR64DD14, AVR64DD20, AVR64DD28, kanye ne-AVR64DD32.

Ukushintsha kokuqukethwe okuthuthukisiwe Inketho entsha ye-mcall-isr-prologues ishintsha ukuthi ukuphazamisa imisebenzi igcina kanjani amarejista ekungeneni nokuthi lawo marejista abuyiselwa kanjani lapho inqubo yokuphazamisa iphela. Isebenza ngendlela efanayo kunketho ye -mcall-prologues, kodwa ithinta kuphela ukuphazamisa imisebenzi (ISRs).

Ukushintsha kokuqukethwe okuthuthukisiwe nakakhulu Inketho entsha ye-mgas-isr-prologues ilawula ikhodi yokuluma ekhiqizwe kuzinqubo zesevisi zokuphazamiseka okuncane. Uma sinikwe amandla, lesi sici sizoba nomhlanganisi askene i-ISR ukuze asetshenziswe irejista futhi alondoloze lawa marejista asetshenzisiwe kuphela uma kudingeka.

Imephu ye-flash elungisekayo Amanye amadivaysi kumndeni we-AVR DA kanye ne-AVR DB ane-SFR (isb. FLMAP) ecacisa ukuthi iyiphi ingxenye engu-32k yememori yohlelo ezofakwa kumemori yedatha. Inketho entsha - ye-mconst-data-in-config-mapped-proem ingasetshenziswa ukwenza isixhumanisi sibeke yonke idatha efanelekile engxenyeni eyodwa ye-32k futhi kuqalwe ngokuzenzakalelayo irejista ye-SFR efanele ukuze kuqinisekiswe ukuthi le datha ifakwe kumephu endaweni yememori yedatha. , lapho izofinyelelwa khona ngokuphumelelayo.

I-Microchip Unified Standard Libraries Bonke abahlanganisi be-MPLAB XC bazokwabelana nge-Microchip Unified Standard Library, manje etholakala ngalokhu kukhishwa kwe-MPLAB XC8. I-MPLAB® XC8 C Compiler User's Guide/noma i-AVR® MCU ayisawafaki amadokhumenti ale misebenzi evamile. Lolu lwazi manje lungatholakala ku-Microchip Unified Standard Library Reference Guide. Qaphela ukuthi okunye ukusebenza okuchazwe ngaphambilini yi-avr-libc akusatholakali. (Bheka Umtapo wolwazi):'. ukusebenzaY…)

I-Smart IO Njengengxenye yemitapo yolwazi emisha ehlanganisiwe, imisebenzi ye-IO emindenini yokuphrinta neskena manje isikhiqizwa ngokwezifiso esakhiweni ngasinye, ngokusekelwe endleleni le misebenzi esetshenziswa ngayo ohlelweni. Lokhu kunganciphisa kakhulu izinsiza ezisetshenziswa uhlelo.
Inketho yosizo ye-Smart IO Lapho uhlaziya izingcingo eziya kumisebenzi ehlakaniphile ye-IO (efana ne-printf () noma i-scaf () ), umhlanganisi akakwazi njalo ukunquma kusukela kuyunithi yezinhlamvu yefomethi noma acabangele kusuka kuma-agumenti lezo zicacisi zokuguqulwa ezidingwa ucingo. Ngaphambilini, umdidiyeli ubengahlali eqagela futhi aqinisekise ukuthi imisebenzi ye-IO esebenza ngokugcwele ixhunywe esithombeni sohlelo lokugcina. Inketho entsha - msmart-io-format=fmt yengeziwe ukuze umhlanganisi aziswe umsebenzisi ngezicacisi zokuguqulwa ezisetshenziswa imisebenzi ehlakaniphile ye-IO ukusetshenziswa kwayo okungaqondakali, okuvimbela izindlela ezinde ngokweqile ze-IO ukuthi zingaxhunywa. (Bona Inketho ye-smart-io-format ukuze uthole imininingwane eyengeziwe.)

Ukubeka izigaba zangokwezifiso Ngaphambilini, inketho ethi -Wl, -section-start ibeka kuphela isigaba esishiwo ekhelini eliceliwe lapho umbhalo wokuxhumanisa uchaza ingxenye yokuphumayo enegama elifanayo. Lapho kungenjalo, isigaba sabekwa ekhelini elikhethwe umxhumanisi futhi inketho ayizange indiva. Manje inketho izohlonishwa kuzo zonke izigaba zangokwezifiso, noma ngabe iskripthi sokuxhumanisa singasichazi isigaba. Qaphela, nokho, ukuthi ezigabeni ezijwayelekile, ezifana . umbhalo, . bss noma. idatha, isinikezeli esilingana kahle kakhulu sisazoba nokulawula okuphelele ekubekweni kwaso, futhi inketho ngeke ibe nomthelela. Sebenzisa inketho ethi -Wl, -Tsection=add, njengoba kuchazwe kumhlahlandlela wabasebenzisi.

Inguqulo 2.32

Isiqondiso sesitaki Itholakala ngelayisense yeqoqo le-PRO, isici sokuqondisa isitaki singasetshenziselwa ukulinganisa ukujula okukhulu kwanoma yisiphi isitaki esisetshenziswa uhlelo. Yakha futhi ihlaziye igrafu yocingo yohlelo, inquma ukusetshenziswa kwesitaki somsebenzi ngamunye, futhi ikhiqize umbiko, lapho ukujula kwezitaki ezisetshenziswa uhlelo kungachazwa. Lesi sici sinikwe amandla ngenketho yomugqa womyalo -mchp-stack-usage. Isifinyezo sokusetshenziswa kwesitaki siphrintwa ngemva kokwenza. Umbiko wesitaki onemininingwane uyatholakala kumephu file, engacelwa ngendlela evamile.

Usekelo olusha lwedivayisi itholakalela izingxenye ze-AVR ezilandelayo: ATTINY 427, ATTINY 424, ATTINY 426, ATTINY827, ATTINY824, ATTINY826, AVR32DB32, AVR64DB48, AVR64DB64, AVR64DB28, AVR32DB28, AVR64DB32, AVR32DB, AVR48DBXNUMX, AVRXNUMXDBXNUMX

Ukusekela idivayisi ehoxisiwe ayisatholakali ezingxenyeni ezilandelayo ze-AVR: AVR16DA28, AVR16DA32 kanye, AVR16DA48.

Inguqulo 2.31

Lutho.

Inguqulo 2.30

Inketho entsha yokuvimbela ukuqaliswa kwedatha Inketho yomshayeli -mno-data-ini t entsha ivimbela ukuqaliswa kwedatha kanye nokusulwa kwezigaba ze-bss. Isebenza ngokucindezela ukuphuma kwedatha ye-do_ copy_ kanye nezimpawu ze-d o_ clear_ bss ekuhlanganiseni files, okuzophinde kuvimbele ukufakwa kwaleyo nqubo yi-linker.

Ukulungiselelwa okuthuthukisiwe Inqwaba yentuthuko yokuthuthukisa yenziwe, okuhlanganisa ukususwa kwemiyalelo yokubuyisela engasasebenzi, ukususwa kokunye ukweqa kulandela umyalo we-skip-if-bit-is, kanye nokukhipha inqubo okuthuthukisiwe kanye nekhono lokuphinda le nqubo.

Izinketho ezengeziwe manje seziyatholakala ukulawula okunye kwalokhu kulungiselelwa, ikakhulukazi -f amahange esigaba, okuvumela ukufinyelela kwezinto ezimile ukuze kwenziwe ngokuhlobene nophawu olulodwa; -mpai derations=n, okuvumela inani lokuphindaphinda kwenqubo ukuthi lishintshwe lisuka kokumisiwe elingu-2; futhi, -mpa- call cost- shortcall, eyenza i-aggressive procedural abstraction, ngethemba lokuthi oxhumanisa angaphumuza izingcingo ezinde. Le nketho yokugcina ingakhuphula usayizi wekhodi uma ukuqagela okuyisisekelo kungenzeki.

Usekelo lwedivayisi entsha Usekelo luyatholakala ngezingxenye ezilandelayo ze-AVR: AVR16DA28, AVR16DA32,
AVR16DA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR128DB28, AVR128DB32, AVR128DB48, kanye ne-AVR128DB64, kanye ne-AVRXNUMXDB.

Usekelo lwedivayisi ehoxisiwe Ukusekelwa akusatholakali ezingxenyeni ezilandelayo ze-AVR: ATA5272, ATA5790, ATA5790N, ATA5791, ATA5795, ATA6285, ATA6286, ATA6612C, ATA6613C, ATA6614Q, ATA6616C, ATA6617C, 664251, kanye ne-XNUMX

Inguqulo 2.29 (Ukukhishwa Kokuphepha Okusebenzayo)

Unhlokweni file okwakhelwe ngaphakathi komhlanganisi Ukuqinisekisa ukuthi umdidiyeli angakwazi ukuhambisana nokucaciswa kolimi njenge-MISRA, i unhlokweni file, efakwe ngokuzenzakalelayo ngu , ibuyekeziwe. Lesi sihloko siqukethe ama-prototypes ayo yonke imisebenzi eyakhelwe ngaphakathi, efana nemijikelezo ethi _buil tin _avrnop () kanye _nobuil tin_ avr delay_ () . Okunye okwakhelwe ngaphakathi kungase kungahambisani ne-MISRA; lezi zingashiywa ngokwengeza i-define _Xe_ STRICT_ MISRA emugqeni womyalo womhlanganisi. Okwakhelwe ngaphakathi kanye nezimemezelo zabo kubuyekeziwe ukuze kusetshenziswe izinhlobo zobubanzi obugxilile.

Inguqulo 2.20

Usekelo lwedivayisi entsha Usekelo luyatholakala ezingxenyeni ezilandelayo ze-AVR: ATTINY1624, ATTINY1626, kanye ne-ATTINY1627.

Isabelo esingcono kakhulu sokulingana I-best fit fit allocator (BFA) kumdidiyeli ithuthukisiwe ukuze izigaba zabiwe ngokulandelana okuvumela ukulungiselelwa okungcono. I-BFA manje isekela izikhala zamakheli futhi isingatha kangcono ukuqaliswa kwedatha.

Ukufinyezwa kwenqubo okuthuthukisiwe Ukulungiselelwa kokukhipha kwenqubo manje kwenziwa ekulandeleni okuningi kwamakhodi. Izimo zangaphambilini lapho lokhu kulungiselelwa kungase kunyuse usayizi wekhodi kuye kwasingathwa ngokwenza ikhodi yokuthuthukisa yazi ngenqubo yokuqoqa udoti yomxhumanisi.

Ukungabikho kwe-AVR Assembler I-AVR Assembler ayisafakiwe kulokhu kusatshalaliswa.

Inguqulo 2.19 (Ukukhishwa Kokuphepha Okusebenzayo)

Lutho.

Inguqulo 2.10

Ukufakwa Kwekhodi Lokhu kukhishwa kuhlanganisa isici sokufakwa kwekhodi esisiza ukuhlaziya izinga ikhodi yomthombo wephrojekthi esetshenziswe ngayo. Sebenzisa inketho -mcodecov=ram ukuyinika amandla. Ngemva kokwenziwa kohlelo ku-hardware yakho, imininingwane yekhodi izohlanganiswa kudivayisi, futhi lokhu kungadluliswa futhi kuboniswe yi-MPLAB X IDE nge-plugin ehlanganisa ikhodi. Bona imibhalo ye-IDE ukuze uthole ulwazi ngale plugin ingatholakala. I-#pragma mcodecov ingase isetshenziselwe ukukhipha imisebenzi elandelayo ekuhlaziyweni kwekhava. Ngokufanelekile i-pragma kufanele yengezwe ekuqaleni kwe- file ukukhipha konke lokho file kusukela ekuhlaziyweni okuhlanganisayo. Okunye, isibaluli ( ( (mcodecov) ) singase sisetshenziselwe ukukhipha umsebenzi othile ekuhlaziyweni kwekhava.

Incazelo yedivayisi files Idivayisi entsha file ebizwa ngokuthi i-avr chipinfo. html itholakala kuhla lwemibhalo lwamadokhumenti lokusatshalaliswa komqambi. Lokhu file ibala wonke amadivaysi asekelwa umdidiyeli. Chofoza egameni ledivayisi, futhi lizovula ikhasi elibonisa zonke izilungiselelo ezivumelekile zokucushwa/amapheya enani laleyo divayisi, ne-ex.ampLes.

Ukukhishwa kwenqubo Ukulungiselelwa kokukhipha kwenqubo, okushintsha amabhulokhi avamile ekhodi yokuhlanganisa amakholi aya ekhophini ekhishiwe yalelo bhulokhi, kwengezwe kumhlanganisi. Lokhu kwenziwa uhlelo lokusebenza oluhlukile, olucelwa ngokuzenzakalelayo umhlanganisi lapho ekhetha ukulungiselelwa kweleveli 2, 3 noma. Lokhu kulungiselelwa kunciphisa usayizi wekhodi, kodwa kungase kunciphise isivinini sokwenza kanye nokususa iphutha kwekhodi.
Ukukhishwa kwenqubo kungakhutshazwa emazingeni aphezulu okuthuthukisa kusetshenziswa inketho -mno-pa, noma kungenziwa kunikwe amandla emazingeni aphansi okwenza kahle (ngokuya ngelayisensi yakho) ngokusebenzisa -mpa. Ingavinjelwa into file usebenzisa -mno-pa-on-file=fileigama, noma kuvalwe umsebenzi ngokusebenzisa -mno-pa ku-function= function.
Ngaphakathi kwekhodi yakho yomthombo, ukukhipha kwenqubo kungase kukhutshazwe emsebenzini ngokusebenzisa _attribute_ ( (nopa)) ngencazelo yomsebenzi, noma ngokusebenzisa _nopa, enweba ukuze ibe isibaluli ( (nopa, noinline)) futhi ngaleyo ndlela ivimbele umsebenzi ophakathi nendawo ukuthi wenzeke. futhi kuba khona ukuhunyushwa kwekhodi engaphakathi.
Khiya ukwesekwa kwebhithi ku-pragma Ukulungiselelwa kwe-#pragma manje kungasetshenziswa ukucacisa izingcezu zokukhiya ze-AVR kanye nezinye izingcezu zokumisa. Hlola ulwazi lwe-avr chip. html file (okukhulunywe ngenhla) kokupheya kwesilungiselelo/inani okuzosetshenziswa nale pragma.
Usekelo lwedivayisi entsha Ukusekelwa kuyatholakala ngezingxenye ezilandelayo: AVR28DA128, AVR64DA128,AVR32DA128, kanye ne-AVR48DA128.

Inguqulo 2.05

Izingcezu eziningi zemali yakho Inguqulo ye-macOS yalo mhlanganisi kanye nomphathi welayisensi manje isiwuhlelo lwe-64-bit. Lokhu kuzoqinisekisa ukuthi umdidiyeli uzofaka futhi asebenze ngaphandle kwezixwayiso ezinguqulweni zakamuva ze-macOS.
Izinto ze-Const kumemori yohlelo Umhlanganisi manje usengakwazi ukubeka izinto ezifanelekile ohlelweni lwememori ye-Flash, kunokuba lezi zibekwe ku-RAM. Umhlanganisi ushintshiwe ukuze idatha yomhlaba wonke efanelekile igcinwe kumemori ye-flash yohlelo futhi le datha ingafinyelelwa ngokuqondile nangokungaqondile kusetshenziswa imiyalelo efanele yenkumbulo yohlelo. Lesi sici esisha sinikwe amandla ngokuzenzakalela kodwa singakhutshazwa kusetshenziswa inketho -mno-const-data-in-progmem. Ngezakhiwo ze-avrxmega3 kanye ne-avrtiny, lesi sici asidingeki futhi sihlala sikhutshaziwe, njengoba inkumbulo yohlelo ifakwe kumephu endaweni yekheli ledatha yalawa madivayisi.
Okujwayelekile mahhala Izinguqulo ezingenalayisense (Zamahhala) zalesi sihlanganisi manje zivumela ukuthuthukiswa kuze kufike futhi kufaka phakathi ileveli 2. Lokhu kuzovumela okukhiphayo okufanayo, nakuba kungafani, kulokho obekungenzeka ngaphambilini kusetshenziswa ilayisensi Ejwayelekile.
Siyakwamukela i-AVRASM2 Isihlanganisi se-AVRASM2 samadivayisi we-8-bit manje sesifakiwe kusifaki se-XC8 compiler. Lesi sihlanganisi asisetshenziswa umdidiyeli we-XC8, kodwa sitholakala kumaphrojekthi asekelwe emthonjeni womhlangano obhalwe ngesandla.
Usekelo lwedivayisi entsha Ukusekelwa kuyatholakala ngezingxenye ezilandelayo: ATMEGA1608, ATMEGA1609, ATMEGA808, kanye ne-ATMEGA809.

Inguqulo 2.00

Umshayeli wezinga eliphezulu Umshayeli omusha, obizwa nge-xc8-cc, manje uhlezi ngaphezu komshayeli we-avr-gcc odlule kanye nomshayeli we-xc8, futhi angabiza umhlanganisi ofanelekile ngokusekelwe ekukhethweni kwedivayisi eqondiwe. Lo mshayeli wamukela izinketho zesitayela se-GCC, okungenzeka ukuthi zihunyushwe noma zidlulele kusihlanganisi esisetshenziswayo. Lo mshayeli uvumela isethi efanayo yezinketho ezine-semantics efanayo ukuthi isetshenziswe nanoma iyiphi i-AVR noma i-PIC target futhi ngaleyo ndlela iyindlela enconyiwe yokucela isihlanganisi. Uma kudingekile, umshayeli we-avr-gcc omdala angabizwa ngokuqondile kusetshenziswa izinketho zesitayela esidala ezamukele ezinguqulweni zabadidiyeli zangaphambili.

I-Common C Interface Lo mdidiyeli manje usengakwazi ukuhambisana ne-MPLAB Common C Interface, okuvumela ikhodi yomthombo ukuthi ithuthwe kalula kubo bonke abahlanganisi be-MPLAB XC. Inketho ethi -mext=cci icela lesi sici, ivumela enye i-syntax yezandiso zolimi eziningi.

Umshayeli omusha womtapo wolwazi Umshayeli omusha womtapo wolwazi ubekwe ngaphezu kwesisebenzi saselabhulali se-PIC sangaphambilini kanye nomsebenzi waselabhulali we-AVR avr-ar. Lo mshayeli wamukela izinketho zesitayela sokufaka kungobo yomlando ye-GCC, okungenzeka ukuthi zihunyushwe noma zidlulele kusisebenzi saselabhulali esisetshenziswa. Umshayeli omusha uvumela isethi yezinketho ezifanayo ezinama-semantics afanayo ukuthi asetshenziselwe ukudala noma ukukhohlisa noma yimuphi umtapo wezincwadi we-PIC noma we-AVR. file futhi ngaleyo ndlela iyindlela enconyiwe yokucela umsebenzi waselabhulali. Uma kudingeka kumaphrojekthi wefa, isisebenzi sangaphambilini singabizwa ngokuqondile kusetshenziswa izinketho zesitayela esidala ezamukele ezinguqulweni zabadidiyeli zangaphambili.

Izinkinga Zokufuduka

Okulandelayo yizici manje esezisingathwa ngendlela ehlukile umdidiyeli. Lezi zinguquko zingase zidinge ukuguqulwa kwekhodi yakho yomthombo uma ikhodi yokuthutha kule nguqulo yesihlanganisi. Inombolo yenguqulo ezihlokweni ezingezansi ibonisa inguqulo yokuqala yokuhlanganisa ukuze isekele izinguquko ezilandelayo.

Inguqulo 2.40

Lutho.

Inguqulo 2.39 (Ukukhishwa Kokuphepha Okusebenzayo)

Lutho.

Inguqulo 2.36

Lutho.

Inguqulo 2.35

Ukuphathwa kwe-string-to bases (XCS-2420) Ukuze kuqinisekiswe ukufana nabanye abahlanganisi be-XC, imisebenzi ye-XC8 yeyunithi yezinhlamvu, njenge-strtol () njll., ngeke isazama ukuguqula iyunithi yezinhlamvu yokokufaka uma isisekelo esishiwo sikhulu kuno-36 futhi esikhundleni salokho sizosetha i-errno ibe yi-EINVAL. Izinga elingu-C alikucacisi ukuziphatha kwemisebenzi uma leli nani eliyisisekelo leqiwa.

Ukulungiselelwa kwesivinini okungafanelekile Ukulungiselelwa kokukhipha kwenqubo bekunikwa amandla uma kukhethwa ukulungiselelwa kweleveli 3 (-03). Lokhu kulungiselelwa kunciphisa usayizi wekhodi ngenani lejubane lekhodi, ngakho bekungafanele kwenziwe. Amaphrojekthi asebenzisa leli zinga lokuthuthukisa angabona umehluko kusayizi wekhodi nesivinini sokwenza uma akhiwe ngalokhu kukhishwa.

Ukusebenza kwelabhulali Ikhodi yemisebenzi eminingi evamile yomtapo wezincwadi we-C manje iphuma Emtatsheni Ojwayelekile Ohlanganisiwe we-Microchip, ongabonisa ukuziphatha okuhlukile kwezinye izimo uma kuqhathaniswa naleyo eyanikezwa umtapo wezincwadi we-avr-libc wangaphambili. Okwesiboneloampfuthi, akusadingeki ukuxhuma kulabhulali ye-lprintf_flt (-print _flt option) ukuze uvule usekelo olufomethiwe lwe-IO lwezicacisi zefomethi ye-float. Izici ezihlakaniphile ze-IO ze-Microchip Unified Standard Library zenza le nketho ingadingeki. Ukwengeza, ukusetshenziswa kwe-_p yezinqubo ezinamathiselwe zeyunithi yezinhlamvu nemisebenzi yenkumbulo (isb. strcpy_P () njll .. ) esebenza kuyunithi yezinhlamvu ze-const ku-flash ayisadingeki. Izindlela ezijwayelekile ze-C (isb. i-strcpy ()) zizosebenza kahle nedatha enjalo uma isici se-const-data-in-program-memory sinikwe amandla.

Inguqulo 2.32

Lutho.

Inguqulo 2.31

Lutho.

Inguqulo 2.30

Lutho.

Inguqulo 2.29 (Ukukhishwa Kokuphepha Okusebenzayo)

Lutho.

Inguqulo 2.20

Kushintshwe isakhiwo se-DFP Umhlanganisi manje uthatha isakhiwo esihlukile esisetshenziswa ama-DFP (Amaphekhi Omndeni Wedivayisi). Lokhu kuzosho ukuthi i-DFP endala ingase ingasebenzi ngalokhu kukhululwa, futhi abahlanganisi abadala ngeke bakwazi ukusebenzisa ama-DFP akamuva.

Inguqulo 2.19 (Ukukhishwa Kokuphepha Okusebenzayo)

Lutho.

Inguqulo 2.10

Lutho

Inguqulo 2.05

Const izinto kumemori yohlelo Qaphela ukuthi ngokuzenzakalelayo, izinto ezifanelekile zizobekwa futhi zifinyelelwe kumemori yohlelo (njengoba kuchazwe lapha) . Lokhu kuzothinta usayizi nesivinini sokwenza sephrojekthi yakho, kodwa kufanele kunciphise ukusetshenziswa kwe-RAM. Lesi sici singacishwa, uma kudingekile, kusetshenziswa inketho ye -mnoconst- da ta-in-progmem.

Inguqulo 2.00

Amafuse okucupha Amafuse okucushwa kwedivayisi manje angahlelwa kusetshenziswa i-config pragma elandelwa ukusetha-velu ngamapheya ukuze kucaciswe isimo se-fuse, isb.
#pragma config WDT0N = SET
#pragma config B0DLEVEL = B0DLEVEL_4V3
Izinto eziphelele nemisebenzi Izinto nemisebenzi manje ingabekwa ekhelini elithile enkumbulweni kusetshenziswa i-CCI _at (ikheli) elicacisayo, ngokwesibonelo.ample: #faka int foobar ku-(Ox800100); char at(Ox250) get ID(int offset) { … } Ukuphikisana kulesi sishicileli kumelwe kube ukungaguquki okumelela ikheli okuzobekwa kulo ibhayithi yokuqala noma umyalelo. Amakheli e-RAM aboniswa ngokusebenzisa i-offset engu-0x800000. Nika amandla i-CCI ukusebenzisa lesi sici.
I-syntax yomsebenzi wokuphazamisa entsha Umhlanganisi manje wamukela isicaciso sokuphazamiseka kwe-CCI (num) ukuze sibonise ukuthi imisebenzi engu-C izibambi eziphazamisayo. Isicacisi sithatha inombolo yokuphazamiseka, isiboneloample: #faka isiphazamiso esingenalutho(SPI STC_ vect _num) spi Isr(engenalutho) { … }

Izinkinga Ezilungisiwe

Okulandelayo yizilungiso ezenziwe kumdidiyeli. Lezi zingase zilungise iziphazamisi kukhodi ekhiqiziwe noma ziguqule ukusebenza komhlanganisi kulokho obekuhlosiwe noma okucaciswe umhlahlandlela womsebenzisi. Inombolo yenguqulo ezihlokweni ezingezansi ibonisa inguqulo yokuqala yesihlanganisi ukuthi iqukethe izilungiso zezinkinga ezilandelayo. Amalebula akubakaki esihlokweni awukuhlonza leyo nkinga kusizindalwazi sokulandelela. Lokhu kungase kube usizo uma udinga ukuxhumana nosekelo.

Qaphela ukuthi ezinye izinkinga eziqondene nedivayisi ziyalungiswa ku-Device Family Pack (DFP) ehlotshaniswa nedivayisi. Bheka Umphathi Wephekhi we-MPLAB ukuze uthole ulwazi ngezinguquko ezenziwe kuma-DFP kanye nokulanda amaphekhi akamuva.

Inguqulo 2.40

Ikhululeke kakhulu (XCS-2876) Lapho usebenzisa inketho ye--mrelax, umhlanganisi wayengabeleki izingxenye ezithile ndawonye, ​​okuholela kumasayizi amakhodi angalungile. Lokhu kungenzeka ukuthi kwenzeke ngekhodi esebenzise amalabhulali amasha e-MUSL noma enezimpawu ezibuthakathaka.
Isici semephu asikhutshaziwe njengoba kushiwo kusixwayiso (XCS-2875) Isici se-cost-data-in-config mappedprogmem sincike esicini se-cost-data-in-proem esinikwa amandla. Uma ngabe isici sedatha yedatha ye-ipconfig- mapped-proem sinikwe amandla ngokusobala kusetshenziswa inketho futhi isici sedatha yedatha-inprogmem sikhutshaziwe, isinyathelo sokuxhumanisa sihlulekile, naphezu komlayezo oyisixwayiso othi idatha ye-cons- in-config-mapped- isici se-proem sikhutshazwe ngokuzenzakalela, obekungalungile ngokuphelele. Isici se-const-data-in-config-mapped-proem manje sikhutshazwe ngokugcwele kulesi simo.
I-DFP iyashintsha ukuze ifinyelele ngendlela efanele i-NVMCTRL (XCS-2848) Ikhodi yokuqalisa yesikhathi sokusebenza esetshenziswa amadivayisi e-AVR64EA ayizange icabangele ukuthi irejista ye-NVMCTRL yayingaphansi Kokuvikeleka Kokushintsha Kokucushwa (CCP) futhi ayikwazanga ukusetha i-IO SFR ekhasini elisetshenziswa i-const-data-in configmapped- proem compiler. isici. Izinguquko ezenziwe kunguqulo ye-AVR-Ex_DFP engu-2.2.55 zizovumela ikhodi yokuqala yesikhathi sokusebenza ukuthi ibhale kahle kule rejista.
Izinguquko ze-DFP ukuze kugwenywe imephu ye-flash (XCS-2847) Umsebenzi ozungeze inkinga ngesici sedivayisi yokwenza imephu ye-flash ebikwe ku-AVR128DA28/32/48/64 Silicon Errata (DS80000882) isetshenzisiwe. Isici se-const-data-in-config-mapped-proem ngeke sisetshenziswe ngokuzenzakalela kumadivayisi athintekile, futhi lolu shintsho luzovela kunguqulo ye-AVR-Ex_DFP engu-2.2.160.
Yakha iphutha nge-sinhf noma i-coshf (XCS-2834) Imizamo yokusebenzisa i-sinhf () noma i-coshf () imisebenzi yelabhulali ibangele iphutha lesixhumanisi, elichaza ireferensi engachaziwe. Umsebenzi ongekho okubhekiselwe kuwo manje usufakiwe ekusabalaliseni komhlanganisi.
Yakha amaphutha nge-nopa (XCS-2833) Ukusebenzisa isibaluli se-nopa ngomsebenzi okuye kwacaciswa igama lesihlanganisi kusetshenziswa ngokuthi () kucuphe imilayezo yephutha evela kumhlanganisi. Le nhlanganisela ayinakwenzeka.
Ukwehluleka kokusebenza okuhlukile okunama-agumenti esikhombi (XCS-2755, XCS-2731) Imisebenzi enenombolo eguquguqukayo yama-agumenti ilindele ukuthi izikhombi ezingu-24-bit (_memo type) ziphasiswe ohlwini lwe-agumenti oluguquguqukayo lapho isici se-cost-data-in-proem sinikwe amandla. Izimpikiswano ezaziyizinkomba zenkumbulo yedatha zazidluliswa njengezinto ze-16-bit, okubangela ukwehluleka kwekhodi lapho zifundwa ekugcineni. Uma isici sedatha ye-cons-in-proem sinikwe amandla, wonke ama-agumenti ezinkomba ze-16-bit manje aguqulwa abe izikhombi ezingama-24-bit. Imisebenzi yelabhulali ye-strtoxxx iyehluleka (XCS-2620) Lapho isici se-const-data-in-proem sinikwe amandla, ipharamitha yokufaka emisebenzini yelabhulali ye-strtoxxx ayizange ibuyekezwe kahle kuma-agumenti eyunithi yezinhlamvu zomthombo engekho kumemori yohlelo.
Izaziso zabalingisi abangavumelekile (XCS-2612) Umdidiyeli manje uzokhipha iphutha uma isici se-cost-in-proem sinikwe amandla futhi ikheli leyunithi yezinhlamvu ezingokoqobo lifakwa ngokucacile esikhaleni sekheli ledatha (kwehlisa i-const qualifier), ngokwesibonelo.ample, (uint8 t *) “Sawubona Mhlaba!”. Isexwayiso siyinkinga uma ikheli lingase lingavumelekile uma i-const data pointer isakazwa ngokucacile esikhaleni sekheli ledatha.
Ukubekwa kwezinto ze-const ezingasetshenzisiwe (XCS-2408) Izinto ezingaqalisiwe ze-const kanye ne-const v olatile bezingafakwa kumemori yohlelo kumadivayisi afaka imephu yonke noma ingxenye yememori yawo yohlelo endaweni yekheli ledatha. Kulezi zisetshenziswa, izinto ezinjalo manje sezibekwe kumemori yohlelo, okwenza ukusebenza kwazo kuhambisane nezinye izisetshenziswa .

Inguqulo 2.39 (Ukukhishwa Kokuphepha Okusebenzayo)

Lutho.

Inguqulo 2.36

Iphutha ngenkathi ibambezeleka (XCS-2774) Izinguquko ezincane ekulungiselelweni kwemodi yamahhala ezizenzakalelayo zivimbele ukugoqeka okuqhubekayo kwezinkulumo ze-operand ekubambezelekeni kwemisebenzi eyakhelwe ngaphakathi, okuholele ekutheni ithathwe njengabantu abangaxhumene nabo futhi icuphe iphutha: _buil tin avr delay_ cycles expect ac ompile. inombolo ephelele yesikhathi.

Inguqulo 2.35

Ukunikezwa okuhambisanayo kusetshenziswa i-_at (XCS-2653) Ukwabiwa okuhambisanayo kwezinto eziningi ezindaweni esigabeni esinegama elifanayo nokusebenzisa kokuthi () akusebenzanga kahle. Okwesiboneloample: constchararrl [ ] at tri butte ((sect on(“.misses”)))) ngo (Ox50 0 ) = {Oxo , Ox CD} ; cost char arr2[ ] at tri butte ((isigaba(“.my s eke”))) = {Izinkabi, I-Ox FE }; bekufanele ngabe ubeke i-arr2 ngokushesha ngemuva kwe-aril.
Icacisa amakheli okuqala esigaba (XCS-2650) Inketho ethi -Wal, -section-start ibihluleka buthule ukubeka izingxenye ekhelini lokuqala eliqokiwe. Lolu daba lulungisiwe kunoma yiziphi izigaba eziqanjwe ngokwezifiso; nokho, ngeke isebenze kunoma yiziphi izigaba ezijwayelekile, njenge. umbhalo noma . bss, okumele ibekwe kusetshenziswa inketho -Wl, -T.
I-Linker iyaphahlazeka uma uziphumulele (XCS-2647) Lapho i--relax optimization inikwe amandla futhi kukhona ikhodi noma izigaba zedatha ezingangeni kumemori etholakalayo, isixhumanisi siphahlazekile. Manje, esimweni esinjalo, imilayezo yephutha ikhishwa esikhundleni.
Ukufinyelela okubi kwe-EEPROM (XCS-2629) I-leproma _read_ block routine ayizange isebenze kahle kumadivayisi e-Mega lapho inketho -monist-data-in-proem inikwe amandla (okuyisimo esizenzakalelayo), okubangele ukuthi inkumbulo ye-EEPROM ingafundiwe kahle.
Ukunikezwa kwenkumbulo okungavumelekile (XCS-2593, XCS-2651) Lapho inketho yokuxhumanisa -Text noma -Tata (isibample idlule ngokusebenzisa inketho yomshayeli -Wl) icacisiwe, umbhalo ohambisanayo/umsuka wesifunda sedatha wabuyekezwa; nokho, ikheli lokugcina alilungiswanga ngokufanele, obekungaholela esifundeni seqe ibanga lememori yedivayisi eqondiwe.
Ikhodi yokuphazamisa ye-ATtiny engavumelekile (XCS-2465) Lapho kwakhiwe amadivayisi e-Tatin nokulungiselelwa kukhutshaziwe (-00), ukuphazamisa ukusebenza kungenzeka kucuphe u-operand ngaphandle kobubanzi bemilayezo.
Izinketho azidluliswanga (XCS-2452) Uma usebenzisa inketho ethi -Wl enezinketho eziningi zokuxhumanisa ezihlukaniswe ngokhefana, akuzona zonke izinketho zokuxhumanisa ezidluliselwe kusixhumi.
Iphutha lokufunda ngokungaqondile inkumbulo yohlelo (XCS-2450) Kwezinye izimo, umhlanganisi ukhiqize iphutha langaphakathi (insn engabonakali) lapho ufunda inani lamabhayithi amabili ukusuka kunkomba kuya kumemori yohlelo.

Inguqulo 2.32

Ukufinyelela kwesibili kwelabhulali kwehlulekile (XCS-2381) Icela inguqulo ye-Windows ye-xc8-ar. exe isilondolozi selabhulali okwesibili ukufinyelela ingobo yomlando ekhona yelabhulali kungenzeka yehlulekile ngenxa yokungakwazi ukuqamba kabusha umlayezo wephutha.

Inguqulo 2.31

Ukwehluleka komqambi okungachazwanga (XCS-2367) Ngenkathi isebenza kumapulatifomu e-Windows ayenohla lwemibhalo lwesikhashana lwesistimu olubekwe endleleni ehlanganisa ichashazi'.' uhlamvu, umhlanganisi kungenzeka wehlulekile ukuwenza.

Inguqulo 2.30

Amalebula omhlaba abekwe kabi ngemva kokuchaza (XCS-2299) Ikhodi yokuhlanganisa ebhalwe ngesandla ebeka amalebula omhlaba wonke phakathi kokulandelana komhlangano akhishwa ngokukhipha inqubo kungenzeka ukuthi awamiswanga kabusha ngendlela efanele.
Ukuphahlazeka okuphumuzayo (XCS-2287) Ukusebenzisa inketho ye--merlad kungenzeka kubangele ukuthi isixhumi siphahlazeke lapho ukulungiselelwa kokukhululeka kweqa umsila kuzama ukususa imiyalelo ye-ret ebingekho ekupheleni kwesigaba.
Ukuphahlazeka lapho kulungiselelwa amalebula njengamanani (XCS-2282) Ikhodi esebenzisa "Amalebula njengamavelu" isandiso solimi se-GNU C kungenzeka sibangele ukulungiselelwa kokukhipha kwenqubo ukuthi kuphahlazeke, ngephutha lokulungisa ububanzi obubekiwe be-VMA.
Not so const (XCS-2271) Ama-prototypes wesiqalo () neminye imisebenzi evela awusacacisi ofanelekela izindleko ezingajwayelekile ezikhombi zeyunithi yezinhlamvu ezibuyisiwe uma isici se- -monist-data inprogmem sikhutshaziwe. Qaphela ukuthi nge-avrxmega3 kanye namadivayisi e-avertin, lesi sici sinikwe amandla unaphakade.
Iziqalisi ezilahlekile (XCS-2269) Lapho okuguquguqukayo okungaphezu kokukodwa kuyunithi yokuhumusha kubekwe esigabeni (kusetshenziswa isigaba noma isibaluli ((isigaba))), futhi okuguquguqukayo kokuqala okunjalo kwaqaliswa uziro noma kungenayo isiqalisi, iziqalisi zezinye eziguquguqukayo kuyunithi efanayo yokuhumusha. ezazibekwe esigabeni esifanayo zalahleka.

Inguqulo 2.29 (Ukukhishwa Kokuphepha Okusebenzayo)

Lutho.

Inguqulo 2.20

Iphutha ngemiyalo emide (XCS-1983) Uma usebenzisa i-AVR target, umhlanganisi kungenzeka ukuthi umise nge- file iphutha elingatholakali, uma umugqa womyalo wawumkhulu kakhulu futhi uqukethe izinhlamvu ezikhethekile ezifana nezingcaphuno, ama-backslash, njll.
Isigaba se-rodata esingabelwe (XCS-1920) Isixhumanisi se-AVR sihlulekile ukunikeza inkumbulo yezigaba ze-rodata yangokwezifiso ngenkathi yakhela i-avrxmega3 ne-avrtiny architectures, okungenzeka ikhiqize amaphutha okugqagqana kwenkumbulo.

Inguqulo 2.19 (Ukukhishwa Kokuphepha Okusebenzayo)

Lutho.

Inguqulo 2.10

Ukwehluleka kokuthuthela kwenye indawo (XCS-1891) I-allocator elingana kahle kakhulu ibishiya 'izimbobo' zenkumbulo phakathi kwezigaba ngemva kokuphumula kwesixhumanisi. Ngaphandle kokuhlukana kwenkumbulo, lokhu kwandisa amathuba okuba kube khona ukwehluleka kokuthuthwa kwesixhumanisi okuhlobene nokweqa okuhlobene ne-PC noma izingcingo eziphuma ebangeni.
Imiyalo ayiguqulwanga ngokukhululeka (XCS-1889) Ukunethezeka kwesixhumanisi akwenzekanga ekugxumeni noma eziqondisweni zekholi okuhlosiwe okufinyelelekayo uma kuxegisiwe.
Akukho ukusebenza (XCSE-388) Izincazelo eziningana ezivela , njenge-clock_ div_ t ne-clock_prescale_set (), azizange zichazwe kumadivayisi, okuhlanganisa i-ATmega324PB, ATmega328PB, ATtiny441, ne-ATtiny841.
Amamakhro angekho Ama-preprocessor macros_ xcs _MODE_, _xcs VERSION, _xc, nama-xcs awazange achazwe ngokuzenzakalelayo umdidiyeli. Lezi seziyatholakala.

Inguqulo 2.05

Iphutha lokuhlanganisa langaphakathi (XCS-1822) Lapho wakha ngaphansi kwe-Windows, kungenzeka iphutha langaphakathi le-compiler likhiqizwe lapho kulungiswa ikhodi.
Ukuchichima kwe-RAM akutholwanga (XCS-1800, XCS-1796) Izinhlelo ezeqa i-RAM etholakalayo azizange zibonwe umdidiyeli kwezinye izimo, okuholele ekuhlulekeni kwekhodi yesikhathi sokusebenza.
Imemori ye-flash eyeqiwe (XCS-1792) Kumadivayisi e-avrxmega3 kanye ne-avrtiny, izingxenye zememori ye-flash kungenzeka zishiywe zingahlelwanga yi-MPLAB X IDE.
Ukwehluleka ukwenza okuyinhloko (XCS-1788) Kwezinye izimo lapho uhlelo lungenakho okuguquguqukayo komhlaba okuchaziwe, ikhodi yokuqalisa yesikhathi sokusebenza ayizange iphume futhi umsebenzi oyinhloko () awuzange ufinyelelwe.
Ulwazi lwenkumbulo olungalungile (XCS-1787) Kumadivayisi e-avrxmega3 nawe-avrtiny, uhlelo losayizi we-avr belubika ukuthi idatha yokufunda kuphela ibidla i-RAM esikhundleni sememori yohlelo.
Inkumbulo yohlelo engalungile ifundiwe (XCS-1783) Amaphrojekthi ahlanganiselwe amadivayisi anememori yohlelo efakwe kumephu endaweni yekheli ledatha futhi echaza izinto ezisebenzisa i-PROGMEM macro/isibaluli kungenzeka zifunde lezi zinto ekhelini elingalungile.
Iphutha langaphakathi elinezimfanelo (XCS-1773) Kwenzeke iphutha langaphakathi uma uchaza izinto zesikhombi nge-
_at () noma isibaluli() amathokheni phakathi kwegama lesikhomba kanye nohlobo oluhoxisiwe, ngokwesiboneloample, char *
_ku ( 0x80015 0) cp; Isexwayiso sesikhishiwe uma ikhodi enjalo itholwa.
Ukwehluleka ukwenza okuyinhloko (XCS-1780, XCS-1767, XCS-1754) Ukusebenzisa okuguquguqukayo kwe-EEPROM noma ukuchaza amafuse kusetshenziswa i-config pragma kungase kubangele ukuqaliswa okungalungile kwedatha kanye/noma kuvalwe ukusebenza kohlelo kukhodi yokuqalisa yesikhathi sokusebenza, ngaphambi kokufinyelela okuyinhloko () .
Iphutha le-Fuse ngamadivayisi amancane (XCS-1778, XCS-1742) Amadivayisi e-attiny4/5/9/10/20/40 abenobude befuse obungalungile obucaciswe kunhlokweni wawo. files eziholela emaphutheni esixhumanisi uma uzama ukwakha ikhodi echaza amafuse.
Iphutha lesegmentation (XCS-1777) Iphutha lokuhlukanisa ngezikhathi ezithile lilungisiwe.
Ukuphahlazeka kwe-Assembler (XCS-1761) Umhlanganisi we-avr-as kungenzeka ukuthi uphahlazekile ngenkathi i-compiler iqhutshwa ngaphansi kwe-Ubuntu 18.
Izinto azisuliwe (XCS-1752) Izinto zobude besikhathi sesitoreji esimile ezingakaqaliswa kungenzeka azisulwanga yikhodi yokuqala yesikhathi sokusebenza.
Ukucaciswa kwedivayisi okushayisanayo kuzitshiwe (XCS-1749) Umhlanganisi ubengadali iphutha lapho kusetshenziswa izinketho eziningi zokucaciswa kwedivayisi futhi kukhombisa amadivayisi ahlukile.
Ukonakala kwenkumbulo ngenqwaba (XCS-1748) Uphawu lwe-heap_ start belusethwa ngokungalungile, okuholele ekutheni kube khona okuguquguqukayo okujwayelekile konakaliswe yinqwaba.
Iphutha lokuthutha isixhumanisi (XCS-1739) Iphutha lokuthutha isixhumanisi kungenzeka ukuthi likhishiwe lapho ikhodi iqukethe i-rjmp noma i-rcall enomgomo oqondile wamabhayithi angu-4k.

Inguqulo 2.00

Lutho.

Izinkinga ezaziwayo

Okulandelayo yimikhawulo ekusebenzeni komhlanganisi. Lokhu kungase kube imikhawulo evamile yokubhala ikhodi, noma
ukuchezuka kulwazi oluqukethwe kubhukwana lomsebenzisi. Amalebula akubakaki esihlokweni awukuhlonza leyo nkinga kusizindalwazi sokulandelela. Lokhu kungase kube yinzuzo uma udinga ukuxhumana nosekelo. Lezo zinto ezingenawo amalebula ziyimikhawulo echaza indlela yokusebenza futhi okungenzeka zihlale zisebenza unomphela.

Ukuhlanganiswa kwe-MPLAB X IDE

Ukuhlanganiswa kwe-MPLAB IDE Uma I-Compiler izosetshenziswa ku-MPLAB IDE, kufanele ufake i-MPLAB IDE ngaphambi kokufaka I-Compiler.

Ukwenziwa Kwekhodi

Ukuhluleka kokwabiwa kwenkumbulo ye-PA (XCS-2881) Uma usebenzisa izilungiseleli zokukhipha izinqubo, isixhumi singase sibike amaphutha okunikezwa kwememori lapho usayizi wekhodi useduze nenani lememori yohlelo etholakalayo kudivayisi, noma uhlelo kufanele lukwazi ukulingana isikhala esitholakalayo.
Akuhlakaniphile kangako i-Smart-IO (XCS-2872) Isici somdidiyeli we-smart-io sizokhiqiza ikhodi evumelekile kodwa ephansi kakhulu yomsebenzi we-sprint uma isici se-data-in-proem sikhutshaziwe noma uma idivayisi inakho konke ukukhanya kwayo okufakwe kumemori yedatha.
I-Smart-IO encane kakhulu (XCS-2869) Isici somdidiyeli we-smart-io sizokhiqiza ikhodi evumelekile kodwa engaphansi uma izinketho ze- -floe kanye -fno-buil tin zisetshenziswa zombili.
Ukubekwa kwedatha efundwayo kuphela (XCS-2849) Isixhumi okwamanje akazazi izingxenye zenkumbulo ze-APPCODE ne-APPDATA, noma izingxenye ze-[No-]Read-While-Write kumephu yememori. Ngenxa yalokho, kunethuba elincane lokuthi isixhumi singanikeza idatha yokufunda kuphela endaweni engafanele yenkumbulo. Amathuba wedatha ebekwe kabi ayanda uma isici se-coast-data-in-pragma sinikwe amandla, ikakhulukazi uma isici se-coast-data-in-config-mapped-proem sinikwe amandla. Lezi zici zingakhutshazwa uma kudingeka.
Into file i-oda lokucubungula (XCS-2863) Ukuhleleka kwezinto files izocutshungulwa ngumxhumanisi ingase ihluke ngokusekelwe ekusetshenzisweni kwenqubo yokukhipha ngokugcwele (inketho ye-mpa). Lokhu kuzothinta kuphela ikhodi echaza imisebenzi ebuthakathaka kuwo wonke amamojula amaningi.
Iphutha lokuxhumanisa elino-absolute (XCS-2777) Uma into yenziwe ngokuphelele ekhelini ekuqaleni kwe-RAM futhi izinto ezingaqaliswanga nazo sezichaziwe, iphutha lokuxhuma lingase licushwe.
Ama-ID okuvuka amafushane (XCS-2775) Kumadivayisi we-ATA5700/2, amarejista e-PHID0/1 achazwa kuphela njengamabhithi angu-16 ububanzi, kunokuba amabhithi angu-32 ububanzi.
Ukuphahlazeka kwesixhumanisi lapho kushaya uphawu (XCS-2758) Isixhumanisi singaphahlazeka uma inketho yomshayeli -merlad isetshenziswa lapho ikhodi yomthombo ibiza uphawu oluchazwe kusetshenziswa inketho yokuxhumanisa -Wl, -defsym.
Ukuqaliswa okungalungile (XCS-2679) Kunokwehluka phakathi kwalapho amanani okuqala ezinto ezilingana nebhayithi yomhlaba jikelele/emile abekwe kumemori yedatha nalapho okuguquguqukayo kuzofinyelelwa khona ngesikhathi sokusebenza.
iqale ngokungalungile imisa ingenalutho (XCS-2652) Ezimweni lapho uchungechunge lwesihloko lokuguqulwa ngokuthi () luqukethe okubonakala kuyinombolo yephoyinti elintantayo ngefomethi yokuchayeka futhi kukhona uhlamvu olungalindelekile ngemva kohlamvu luka-e, ikheli elingenalutho, uma linikeziwe, lizokhomba uhlamvu ngemva kwalokho. u-e hhayi u-e uqobo. Okwesiboneloample: lithe (“hooey”, elingenalutho); kuzoholela ekukhombeni okungenalutho kuhlamvu luka-x.
Izingcingo ezingaqondile ezingalungile (XCS-2628) Kwezinye izimo, izingcingo ezisebenzayo ezenziwe ngesikhombisi sokusebenza esigcinwe njengengxenye yesakhiwo zingase zehluleke.
I-strtof ibuyisela iqanda ku-hexadecimal floats (XCS-2626) Imisebenzi yelabhulali ethi strtof () et al kanye ne-scaf () et al, iyohlala iguqula inombolo yephoyinti elintantayo eliyi-hexadecimal elingacacisi i-eksponenti kuyo.
uziro. Okwesiboneloample: stator(“Isikhova”, &akunalutho); izobuyisela inani elingu-0, hhayi u-1.
Imilayezo enganembile yomeluleki wesitaki (XCS-2542, XCS-2541) Kwezinye izimo, isexwayiso someluleki wesitaki esiphathelene nokuphindaphinda noma isitaki esinganqunyiwe esisetshenzisiwe (mhlawumbe ngokusetshenziswa kwe-alloca()) asikhishwa.
Ukuhluleka ngekhodi yokuphazamisa eyimpinda (XCS-2421) Lapho umsebenzi wokuphazamisa ongaphezu kowodwa unomzimba ofanayo, isihlanganisi singase sibe nokuphumayo komsebenzi owodwa wokuphazamisa shayela omunye. Lokhu kuzoholela ekutheni wonke amarejista avaliwe agcinwe ngokungenasidingo, futhi iziphazamiso zizovulwa ngisho nangaphambi kokuthi i-epilogue yesibambi sokuphazamisa samanje siqalise, okungase kuholele ekuhlulekeni kwekhodi.
Const izinto ezingekho kumemori yohlelo (XCS-2408) Kumaphrojekthi we-avrxmega3 kanye ne-avertins izinto ezingasebenzanga ze-const zifakwa kumemori yedatha, nakuba isexwayiso sibonisa ukuthi zifakwe kumemori yohlelo. Lokhu ngeke kuthinte amadivayisi angenayo inkumbulo yohlelo efakwe kumephu yesikhala sememori yedatha, futhi ngeke kuthinte noma iyiphi into eqaliswayo.
Okukhiphayo okubi ngendlela ye-DFP engavumelekile (XCS-2376) Uma isihlanganisi sicelwa ngendlela ye-DFP engavumelekile kanye 'ne-spec' file ikhona kudivayisi ekhethiwe, umhlanganisi akabiki iphakethe lomndeni ledivayisi elilahlekile futhi esikhundleni salokho ukhetha 'i-spec' file, okungase kuholele ekukhishweni okungavumelekile. I-'spec' files kungenzeka angabi sesikhathini samanje ngama-DFP asabalalisiwe futhi ayehloselwe ukusetshenziswa nokuhlola kwangaphakathi komhlanganisi kuphela.
Ukugqagqana kwenkumbulo akubonwa (XCS-1966) Umhlanganisi akaboni ukugqagqana kwenkumbulo yezinto ezenziwe zaphelela ekhelini (nge-()) nezinye izinto zisebenzisa isigaba () isicacisi futhi ezixhunywe ekhelini elifanayo.
Ukuhluleka ngemisebenzi yelabhulali kanye ne-_meme (XCS-1763) Okubizwa ngokuthi imisebenzi ye-limbic float enengxabano esikhaleni sekheli elithi _memo ingase yehluleke. Qaphela ukuthi izindlela zelabhulali zibizwa kwabanye opharetha be-C, ngakho-ke, isiboneloample, ikhodi elandelayo iyathinteka: buyisela i-regFloatVar > memxFloatVar;
Ukuqaliswa okulinganiselwe kwe-Limbic (AVRTC-731) Ngemikhiqizo ye-ATTiny4/5/9/10/20/40, ukusetshenziswa kwelabhulali ye-C/Math evamile ku-limbic kulinganiselwe kakhulu noma akukho.
Imikhawulo yenkumbulo yohlelo (AVRTC-732) Izithombe zenkumbulo yohlelo ezingaphezu kuka-128 kb zisekelwa uchungechunge lwamathuluzi; Nokho, kunezimo ezaziwayo zokuhushulwa kwe-linker ngaphandle kokuphumula futhi ngaphandle komlayezo wephutha owusizo kunokukhiqiza ama-stubs okusebenza adingekayo lapho kusetshenziswa inketho ye--relax.
Qamba imikhawulo yesikhala (AVRTC-733) Izikhala zamakheli eziqanjiwe zisekelwa uchungechunge lwamathuluzi, ngaphansi kwemikhawulo eshiwo esigabeni somhlahlandlela somsebenzisi Izimfanelo Zohlobo Olukhethekile.
Izindawo zesikhathi I imisebenzi yelabhulali ithatha i-GMT futhi ayisekeli izindawo zesikhathi zasendaweni, ngaleyo ndlela isikhathi sendawo () sizobuya ngesikhathi esifanayo nese-gummite (), ngokwesibonelo.ample.

USEKELO LWEKHASIMENDE

file:///Izinhlelo zokusebenza/microehip/xc8/v 2 .40/docs/Read me_X C 8_ nge-A VR. htm

Amadokhumenti / Izinsiza

I-MICROCHIP MPLAB XC8 C Compiler Software [pdf] Incwadi Yomnikazi
I-MPLAB XC8 C, i-MPLAB XC8 C Compiler Software, i-Compiler Software, i-Software

Izithenjwa

Shiya amazwana

Ikheli lakho le-imeyili ngeke lishicilelwe. Izinkambu ezidingekayo zimakiwe *