MPLAB XC8 C Compiler Version 2.39 Nòt lage pou AVR MCU
Gid itilizatè
DOKIMAN SA A GENYEN ENFÒMASYON ENPÒTAN KI GENYEN AK KONPILÈ MPLAB XC8 C A LÈ YO YO VIZE APARÈY MICROCHIP AVR. TANPRI LI LI AVAN KOURI LOGICIEL SA A.
GADE NÒT PUBLIKE MPLAB XC8 C KONPILÈ A POU DOKIMAN PIC SI W AP ITILIZE KONPILÈ A POU APARÈY PIC 8-BIT.
Plis paseview
1.1. Entwodiksyon
Version sa a Microchip MPLAB® XC8 C du se yon fonksyonèl sekirite du, ki baze sou v2.36 version du sa a e ki kounye a sipòte lisans sèvè rezo a.
1.2. Dat lage
Dat ofisyèl lage vèsyon konpilatè sa a se 27 janvye 2022.
1.3. Vèsyon Previous
Vèsyon konpilatè MPLAB XC8 C anvan an te 2.36, ki te pibliye 25 janvye 2022.
1.4. Manyèl sekirite fonksyonèl
Yon Manyèl Sekirite Fonksyonèl pou konpilatè MPLAB XC yo disponib nan pake dokiman an lè ou achte yon lisans sekirite fonksyonèl.
1.5. Lisans konpozan ak vèsyon® li MPLAB
Zouti XC8 C Compiler pou AVR MCU yo ekri epi distribye anba Lisans Piblik Jeneral GNU (GPL) ki vle di kòd sous li yo distribye gratis epi yo disponib pou piblik la.
Kòd sous la pou zouti anba GNU GPL ka telechaje separeman ak Microchip la websit. Ou gendwa li GNU GPL nan fichye ki nonmen ki sitiye sou-anyè enstalasyon license.txt avr/doc. Ou ka jwenn yon diskisyon jeneral sou prensip ki kache nan GPL la.
Kòd sipò yo bay pou fichye header yo, scripts linker yo, ak bibliyotèk egzekite yo se kòd propriétaires epi yo pa kouvri anba GPL la.
Konpilateur sa a se yon aplikasyon GCC vèsyon 5.4.0, binutils vèsyon 2.26, epi li sèvi ak avr-libc vèsyon 2.0.0.
1.6. Kondisyon sistèm
Konpilateur MPLAB XC8 C a ak lojisyèl lisans li itilize yo disponib pou yon varyete sistèm operasyon, ki gen ladan vèsyon 64-bit sa ki annapre yo: Edisyon pwofesyonèl Microsoft Windows 10; Ubuntu 18.04; ak macOS 10.15.5. Binè pou Windows yo te siyen kòd. Binè pou macOS yo te siyen kòd ak notarye.
Si w ap kouri yon sèvè lisans rezo, sèlman òdinatè ki gen sistèm opere ki sipòte pa konpilateur yo ka itilize pou òganize sèvè lisans lan. Apati vèsyon xclm 2.0, sèvè lisans rezo a ka enstale sou yon platfòm Microsoft Windows Server, men sèvè lisans lan pa bezwen kouri sou yon vèsyon sèvè nan sistèm operasyon an.
1.7. Aparèy sipòte
Konpilateur sa a sipòte tout aparèy AVR MCU 8-bit li te ye nan moman yo pibliye. Gade (nan du a avr_chipinfo.html anyè) pou yon lis tout aparèy ki sipòte. Fichye sa yo lis tou paramèt bit doc konfigirasyon pou chak aparèy.
1.8. Edisyon ak Amelyorasyon Lisans
Konpilateur MPLAB XC8 ka aktive kòm yon pwodwi ki gen lisans (PRO) oswa ki pa gen lisans (gratis). Ou bezwen achte yon kle deklanchman pou lisansye du ou. Yon lisans pèmèt pou yon pi wo nivo optimize konpare ak pwodwi gratis la. Yon konpilatè ki pa gen lisans ka opere endefiniman san yon lisans.
Yo dwe aktive yon konpilatè MPLAB XC8 pou sekirite fonksyonèl ak yon lisans sekirite fonksyonèl ki te achte nan men Microchip. Konpilateur a pa pral opere san lisans sa a. Yon fwa aktive, ou ka chwazi nenpòt nivo optimize epi sèvi ak tout karakteristik du yo. Version sa a MPLAB XC fonksyonèl sekirite
Konpilateur sipòte lisans sèvè rezo a.
Gade dokiman Enstalasyon ak Lisans MPLAB XC C Compilers (DS50002059) pou enfòmasyon sou kalite lisans ak enstalasyon konpilatè a ak yon lisans.
1.9. Enstalasyon ak Aktivasyon
Gade tou seksyon Pwoblèm ak Limitasyon Migrasyon yo pou jwenn enfòmasyon enpòtan sou dènye manadjè lisans ki enkli nan du sa a.
Si w ap itilize MPLAB IDE, asire w ou enstale dènye MPLAB X IDE vèsyon 5.0 oswa pita anvan ou enstale zouti sa a. Kite IDE a anvan ou enstale du a. Kouri (Windows), (Linux) oswa (macOS) .exe .run .app aplikasyon enstalasyon konpilatè a, pa egzanp epi swiv enstriksyon ki sou ekran an.
XC8-1.00.11403-windows.exe
Anyè enstalasyon default la rekòmande. Si w ap itilize Linux, ou dwe enstale du a lè l sèvi avèk yon tèminal ak soti nan yon kont rasin. Enstale lè l sèvi avèk yon kont macOS ak privilèj administratè.
Aktivasyon kounye a fèt separeman nan enstalasyon an. Gade dokiman License Manager for MPLAB® XC C Compilers (DS52059) pou plis enfòmasyon.
Si w chwazi pou w kouri konpilatè a anba lisans evalyasyon an, w ap resevwa yon avètisman kounye a pandan konpilasyon lè w nan 14 jou apre fen peryòd evalyasyon w la. Yo bay menm avètisman an si w rive nan 14 jou apre abònman HPA w fini.
XC Network License Server se yon enstalatè separe epi li pa enkli nan enstalasyon konpilatè a pou yon sèl itilizatè.
Manadjè Lisans XC kounye a sipòte itinérance lisans rezo k ap flote. Vize pou itilizatè mobil, karakteristik sa a pèmèt yon lisans k ap flote ale nan rezo a pou yon kout peryòd de tan. Sèvi ak karakteristik sa a, ou ka dekonekte nan rezo a epi toujou sèvi ak konpilatè MPLAB XC ou a. Gade dosye doc enstalasyon XCLM pou plis enfòmasyon sou karakteristik sa a.
MPLAB X IDE gen ladann yon fenèt Lisans (Zouti > Lisans) pou jere itinérance vizyèlman.
1.9.1. Rezoud Pwoblèm Enstalasyon
Si w gen difikilte pou w enstale konpilatè a anba nenpòt nan sistèm operasyon Windows yo, eseye sijesyon sa yo.
- Kouri enstale a kòm yon administratè.
- Mete otorizasyon aplikasyon enstale a nan 'Kontwòl konplè'. (Dwa klike sou fichye a, chwazi Pwopriyete, tab Sekirite, chwazi itilizatè, edite.)
- Mete otorizasyon katab tanporè a nan "Kontwòl konplè!.
- Pou detèmine ki kote katab tanporatè a, tape nan lòd Kouri a (Kle logo Windows + R). %temp% Sa a pral louvri yon dyalòg eksploratè fichye ki montre anyè sa a epi li pral pèmèt ou detèmine chemen katab sa a.
1.10. Dokimantasyon konpilatè
Gid itilizatè yo ka louvri nan paj HTML ki louvri nan navigatè w la lè w klike sou bouton èd ble a nan tablodbò MPLAB X IDE, jan sa endike nan ekran an.
Si w ap bati pou objektif AVR 8-bit, MPLAB® XC8 C Compiler User's Guide for AVR
MCU gen enfòmasyon sou opsyon konpilatè sa yo ak karakteristik ki aplikab pou achitekti sa a.
1.11. Sipò pou Kliyan
Microchip akeyi rapò sou ensèk, sijesyon oswa kòmantè konsènan vèsyon konpilatè sa a. Tanpri dirije nenpòt rapò ensèk oswa demann karakteristik atravè Sistèm Sipò.
Mizajou Dokimantasyon yo
Pou vèsyon sou entènèt ak ajou nan dokiman MPLAB XC8, tanpri vizite sou entènèt Microchip a.
Dokimantasyon teknik websit.
Nouvo dokiman AVR oswa mete ajou nan vèsyon sa a:
Enstale ak Lisans MPLAB® XC C Compilers (DS50002059) revizyon L
Gid Referans Bibliyotèk Inifye Microchip la dekri konpòtman ak koòdone ak fonksyon Bibliyotèk Estanda Microchip Inified la defini, ansanm ak itilizasyon kalite bibliyotèk yo ak makro yo. Kèk nan enfòmasyon sa yo te genyen anvan nan MPLA® XC8 C Compiler User!s Guide® for AVR
MCU. Enfòmasyon bibliyotèk ki espesifik pou aparèy yo toujou genyen nan gid konpilatè sa a.
Gid Itilizatè Hexmate a te enkli nan anyè a nan vèsyon sa a. Gid sa a fèt pou docs moun k ap kouri Hexmate kòm yon aplikasyon otonòm.
Seksyon sa yo bay koreksyon ak enfòmasyon adisyonèl ak sa yo jwenn nan gid itilizatè a ki te voye ak konpilatè a.
2.1. Smart-io-format Opsyon
Opsyon-msmart-io-format=fmt fmt, kote se yon kòd ki gen fòma spesifikasyon konvèsyon IO, fè konpilatè a konnen spesifikasyon ki nan lis yo itilize pa fonksyon IO entelijan.
Pou diminye gwosè kòd, konpilatè a pèrsonalize kòd bibliyotèk ki asosye ak fanmi enprime ak eskanè fonksyon IO entelijan, dapre spesifikasyon konvèsyon ki prezan nan seri fòma yo rasanble nan tout apèl nan fonksyon sa yo. Karakteristik sa a konplètman otomatik epi yo pa ka enfim.
Nan kèk sitiyasyon, konpilatè a pa kapab detèmine enfòmasyon sou itilizasyon ki soti nan apèl fonksyon IO fòma. Si yo te itilize opsyon a, yo jwenn spesifikasyon konvèsyon ki nesesè pou fonksyon sa yo nan fisèl la; otreman, konpilatè a pa fè okenn sipozisyon sou fason yo itilize -msmart-io-format=fmt fmt fonksyon yo epi asire ke fonksyon IO ki gen fòma yo lye nan imaj pwogram final la.
Pou egzanpample, konsidere apèl sa yo nan fonksyon IO entelijan.
vscanf ("%d:%li", va_list1);
vprintf ("%-s%d", va_list2);
vprintf (fmt1, va_list3);// itilizasyon anbigwi
vscanf (fmt2, va_list4);// itilizasyon anbigwi
Lè w ap trete de dènye apèl yo, konpilatè a pa ka dedwi okenn enfòmasyon sou itilizasyon swa nan fòma yo, ni nan agiman yo. Nan ka sa yo, opsyon -msmart-io-format yo ka itilize epi yo pral potansyèlman pèmèt plis fonksyon I0 fòma optimal yo dwe pwodwi, kidonk diminye gwosè kòd pwogram nan. Pou egzanpample, si fòma fisèl yo montre pa fmtl ak fmt2 ansanm itilize sèlman "%d", "%i" ak "% s" konvèsyon espesifikasyon yo, -msmart-io-format=fmt="%d%i%s ” opsyon yo ta dwe bay.
Fisèl tente a ka genyen nenpòt spesifikasyon konvèsyon ki valab, ki gen ladan drapo ak modifye (pa egzanpample "% -13. 91s"), epi yo ta dwe reflete egzakteman sa yo itilize pa fonksyon yo ki gen itilizasyon anbigwi. Si w pa mete yon spesifikasyon nan la ti jan agiman kote li te itilize pa fonksyon yo fòma I0 ka lakòz echèk kòd.
Si fmt se yon fisèl vid oswa oswa pa gen okenn espesifikasyon konvèsyon ki disène, yo pral bay yon avètisman epi fonksyon fòma I0 fonksyonèl yo lye nan imaj final pwogram lan.
Opsyon sa a ka itilize plizyè fwa sou liy lòd la. Espesifikasyon konvèsyon yo itilize ak chak opsyon yo akimile.
2.2. omit-frame-pointer Opsyon
Opsyon –f omit-frame-pointer la bay konpilatè a enstriksyon pou l sèvi ak pwentè pil la dirèkteman pou jwenn aksè nan objè ki sou pil la epi, si sa posib, kite kòd ki sove, inisyalize, ak restore rejis ankadreman an. Li aktive otomatikman nan tout nivo optimize ki pa zewo.
Negasyon opsyon an, lè l sèvi avèk -fno-omit- frame-pointer, ta ka ede debogaj optimize kòd; sepandan, opsyon sa a pa garanti ke w ap toujou itilize konsèy ankadreman an.
2.3. Unroll-loops Opsyon
– Funrol I-loops ak -(opsyon unroll-all-loops kontwole optimize vitès oryante ki eseye retire reta branch nan bouk yo. Bouk dewoule anjeneral ogmante vitès ekzekisyon kòd la jenere, nan depans lan nan pi gwo gwosè kòd.
Opsyon – funrol I-loops dewoule bouk kote yo ka detèmine kantite iterasyon nan moman konpile oswa lè kòd antre nan bouk la. Opsyon -funroll-all-loops la pi agresif, li dewoule tout bouk yo, menm lè kantite iterasyon yo pa konnen. Li se tipikman mwens efikas nan amelyore vitès ekzekisyon pase opsyon nan - funrol 1-bouk.
2.4. grès-Ito-objè Opsyon
Opsyon –f fat-1 to-obj ects mande pou konpilatè a jenere objè grès files, ki genyen tou de
kòd objè ak GIMPLE (youn nan reprezantasyon entèn GCC), ekri nan seksyon ELF inik. Objè sa yo files yo itil pou kòd bibliyotèk ki ta ka lye ak pwojè ki fè epi ki pa sèvi ak estanda optimisateur link-time, kontwole pa opsyon nan -flto.
Fno-fno-fat-lto-objects fòm opsyon sa a, ki se default si pa gen okenn opsyon espesifye, siprime enklizyon kòd objè a nan objè. files, sa ki lakòz bati pi vit. Sepandan, objè sa yo files dwe toujou lye lè l sèvi avèk estanda lyen-tan optimize a.
2.5. Ito-patisyon Opsyon
A – flto-partiti sou=a Igo ri thm opsyon kontwole algorithm yo itilize pou patisyon objè files lè w ap kouri optimiseur lyen-tan. Agiman an pa enfim patisyon nèt epi egzekite etap optimize lyen-tan dirèkteman nan faz analiz pwogram antye (WPA). Mòd operasyon sa a pral pwodwi rezilta ki pi optimal yo, nan depans lan nan pi gwo kondisyon memwa konpilatè ak pi long tan bati, byenke sa a se fasil yo dwe yon pwoblèm ak ti pwogram yo. Patisyon objè a files ka amelyore pèfòmans bati. Agiman youn espesifye ke egzakteman yon patisyon ta dwe itilize, ak agiman lto1 la presize patisyon ki reflete ki dikte pa sous orijinal la. files. Agiman default la ekilibre, ki espesifye patisyon an nan moso egal gwosè, lè sa posib.
2.6. Anplis de Seksyon 3.6.11 Opsyon Linker Map
-wl la, -seksyon-kòmanse = sec tion=addr Li manke nan tablo opsyon linker yo itilize souvan, aksesib lè l sèvi avèk opsyon chofè -wl du. Opsyon sa a pèmèt plasman seksyon ki gen non koutim nan adrès espesifye a. Li pa ka itilize pou mete seksyon estanda, tankou ( . done, . bss, . tèks), ki dwe mete lè l sèvi avèk yon opsyon -wl, -'r.
2.7. Amannman nan Seksyon 4.14.2 Chanjman ak Lyen Seksyon Alocated la
Remake byen ke kontrèman ak enfòmasyon ki nan seksyon sa a nan gid itilizatè a, chanjman ki fèt nan konpilatè a nan lage sa a kounye a vle di ke seksyon koutim yo ka lye lè l sèvi avèk -w1, -sèk ion- kòmanse=seksyon=acicir opsyon epi san yo pa oblije modifye script linker la.
Ki Nouvo
Sa ki annapre yo se nouvo AVR-sib karakteristik konpilatè a kounye a sipòte. Nimewo vèsyon an nan soutit yo endike premye vèsyon an pou sipòte karakteristik ki swiv yo.
3.1. Version 2.39 (Fonksyonèl Sekirite Release)
Lisans Sèvè Rezo Version sa a MPLAB XC8 Functional Safety Compiler sipòte Lisans Sèvè Rezo a.
3.2. Vèsyon 2.36
Okenn.
3.3. Vèsyon 2.35
Nouvo sipò sipò disponib pou pati AVR sa yo: ATTINY3224, ATTINY3226, ATTINY3227, AVR64DD14, AVR64DD20, AVR64DD28, ak AVR64DD32.
Amelyore chanje kontèks Nouvo opsyon -mcall-isr-prologues chanje fason fonksyon entèwonp yo sove rejis yo sou antre ak fason rejis sa yo retabli lè woutin entèwonp la fini. Li travay nan yon fason ki sanble ak opsyon -mcall-prologues, men sèlman afekte fonksyon entèwonp (ISRs).
Menm plis amelyore kontèks chanje Nouvo a -mgas-isr-prologues opsyon kontwole kòd switch kontèks la ki te pwodwi pou ti woutin sèvis entèwonp. Lè yo aktive, karakteristik sa a pral fè moun k ap asanble a eskane ISR pou itilizasyon enskri epi sove rejis yo itilize sa yo sèlman si sa nesesè.
Kat konfigirasyon flash Gen kèk aparèy nan fanmi AVR DA ak AVR DB gen yon SFR (eg FLMAP) ki espesifye ki seksyon 32k memwa pwogram yo pral trase nan memwa done yo. Nouvo - mconst-data-in-config-mapped-progmem opsyon an ka itilize pou fè linker la mete tout done ki kalifye yo nan yon seksyon 32k epi otomatikman inisyalize rejis SFR ki enpòtan an pou asire ke done sa yo trase nan done yo. espas memwa, kote li pral jwenn aksè pi efikas.
Microchip Inifye Standard Bibliyotèk Tout MPLAB Konpilateur XC pral pataje yon Bibliyotèk Estanda Inifye Microchip, ki disponib kounye a ak lage MPLAB XC8 sa a. La MPLAB® XC8 C konpilatè
Gid itilizatè pou AVR® MCU pa gen ladan dokimantasyon pou fonksyon estanda sa yo ankò. Kounye a ou ka jwenn enfòmasyon sa yo nan la Microchip Gid referans estanda bibliyotèk inifye. Remake byen ke kèk fonksyonalite avr-libc te defini deja pa disponib ankò. (Gade Fonksyonalite bibliyotèk.)
Smart I0 Kòm yon pati nan nouvo bibliyotèk inifye yo, fonksyon JO nan fanmi printf ak scanf yo kounye a fèt sou fason pou chak bati, dapre fason yo itilize fonksyon sa yo nan pwogram nan. Sa a ka redwi anpil resous yo itilize pa yon pwogram.
Opsyon asistans Smart I0 Lè w ap analize apèl nan fonksyon I0 entelijan (tankou printf () oswa scanf ()), konpilatè a pa ka toujou detèmine apati fòma a oswa dedui nan agiman sa yo spesifye konvèsyon yo mande pou apèl la. Précédemment, du a toujou pa fè okenn sipozisyon epi asire ke 10 fonksyon konplètman fonksyonèl yo te lye nan imaj pwogram final la. Yo te ajoute yon nouvo opsyon - msma rt-io- format=fmt pou itilizatè a ka enfòme konpilatè a sou spesè konvèsyon yo itilize pa fonksyon I0 entelijan ki gen itilizasyon anbigwi, sa ki anpeche 10 woutin ki twò long yo te lye. (Gade smart-io-fòma Opsyon pou plis detay.)
Mete seksyon koutim Anvan sa, opsyon -W1, –section-start te sèlman mete seksyon espesifye a nan adrès yo mande a lè script linker la te defini yon seksyon pwodiksyon ak menm non an. Lè sa a pa t 'ka a, seksyon an te plase nan yon adrès ki te chwazi pa Linker la ak opsyon an te esansyèlman inyore. Koulye a, opsyon a pral onore pou tout seksyon koutim, menm si script linker la pa defini seksyon an. Remake byen, sepandan, ke pou seksyon estanda, tankou . tèks,. bss oswa . done, alokatè ki pi bon an ap toujou gen kontwòl konplè sou plasman yo, epi opsyon a pa pral gen okenn efè. Sèvi ak -wl la, -Tsection=adr opsyon, jan sa dekri nan gid itilizatè a.
3.4. Vèsyon 2.32
Stack Guidance Disponib avèk yon lisans konpilateur PRO, yo ka itilize karakteristik pile konpilatè a pou estime pwofondè maksimòm nenpòt pil itilize pa yon pwogram. Li konstwi ak analize graf apèl yon pwogram, detèmine itilizasyon pil chak fonksyon, epi li pwodui yon rapò, kote yo ka dedwi pwofondè pil pwogram lan itilize.
Karakteristik sa a aktive atravè opsyon liy kòmand -mchp-stack-usage. Yon rezime sou itilizasyon pil yo enprime apre ekzekisyon. Yon rapò detaye pile disponib nan kat la file, ki ka mande nan fason nòmal la.
Nouvo sipò sipò disponib pou pati AVR sa yo: ATTINY427, ATTINY424, ATTINY426, ATTINY827, ATTNY824, ATTINY826, AVR32DB32, AVR64DB48, AVR64DB64, AVR64DB28, AVR32DB28, AVR64DB32, AVR32
Sipò pou aparèy ki retire sipò pa disponib ankò pou pati AVR sa yo: AVR 16DA28, AVR16DA32 ak, AVR16DA48.
3.5. Version 2.31 Okenn.
3.6. Vèsyon 2.30
Nouvo opsyon pou anpeche inisyalizasyon done Yon nouvo opsyon chofè -mno-data-init anpeche inisyalizasyon done ak netwaye seksyon bss yo. Li travay pa siprime pwodiksyon an nan senbòl do_copy_data ak do_clear_bss nan asanble. files, ki pral nan vire anpeche enklizyon de woutin sa yo pa Linker la.
Optimize amelyore Yo te fè yon kantite amelyorasyon optimize, tankou retire enstriksyon retounen redondants, retire kèk so apre yon enstriksyon sote-si-bit-is, ak amelyore abstraksyon pwosedi ak kapasite pou repete pwosesis sa a.
Opsyon adisyonèl disponib kounye a pou kontwole kèk nan optimize sa yo, espesyalman -fsection-anchors, ki pèmèt aksè nan objè estatik yo dwe fèt parapò ak yon senbòl; -mpa-iterasyon =n, ki pèmèt kantite iterasyon abstraksyon pwosedi yo dwe chanje soti nan default nan 2; ak, -mpa-callcost-shortcal 1, ki fè abstraksyon pwosedi pi agresif, nan espwa ke linker a ka detann apèl long. Dènye opsyon sa a ka ogmante gwosè kòd si sipozisyon ki kache yo pa reyalize.
Nouvo sipò aparèy Sipò ki disponib pou pati AVR sa yo: AVR16DA28, AVR16DA32, AVR16DA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR128DB28, AVR128DB32, AVR128, AVR 48DB128.
Sipò pou aparèy retrè Sipò pa disponib ankò pou pati AVR sa yo: ATA5272, ATA5790, ATA5790N, ATA5791, ATA5795, ATA6285, ATA6286, ATA6612C, ATA6613C, ATA6614Q, ATA6616C, ATA6617, ak ATA664251.
3.7. Version 2.29 (Fonksyonèl Sekirite Release)
Header file pou du bunt-ins Pou asire ke du a ka konfòme yo ak espesifikasyon lang tankou MISRA, la header file, ki otomatikman enkli pa , te mete ajou. Tèt sa a gen pwototip yo pou tout fonksyon ki entegre yo, tankou built in_avr_nop ( ) ak _builtin_avr_delay_cycles () . Gen kèk entegre yo ka pa konfòme MISRA; sa yo ka omisyon lè w ajoute defini XC_STRICT MISRA nan liy lòd konpilatè a. Konstriksyon yo ak deklarasyon yo te mete ajou pou itilize kalite lajè fiks yo.
3.8. Vèsyon 2.20
Nouvo sipò aparèy Gen sipò ki disponib pou pati AVR sa yo: ATTINY 1624, ATTINY1626, ak ATTINY 1 627.
Pi bon alokasyon anfòm Yo te amelyore alokasyon ki pi bon an (BFA) nan konpilatè a pou ke seksyon yo resevwa lajan nan yon lòd ki pèmèt pi bon optimize. BFA a kounye a sipòte espas adrès ki gen non ak pi byen okipe inisyalizasyon done yo.
Amelyore abstrè pwosedi Optimizasyon yo abstraksyon pwosedi yo kounye a fèt sou plis sekans kòd. Sitiyasyon anvan yo kote optimize sa a te ka ogmante gwosè kòd yo te adrese lè yo fè kòd optimize a okouran de pwosesis koleksyon fatra linker la.
Absans AVR Assembler AVR Assembler la pa enkli nan distribisyon sa a ankò. 3.9. Vèsyon 2.19 (Sekirite Fonksyonèl Lage)
Okenn.
3.10. Vèsyon 2.10
Kouvèti Kòd Version sa a gen ladann yon karakteristik kouvèti kòd ki fasilite analiz nan ki pwen kòd sous yon pwojè yo te egzekite. Sèvi ak opsyon -mcodecov=ram pou pèmèt li. Apre ekzekisyon pwogram nan sou pyès ki nan konpitè ou, enfòmasyon sou kouvèti kòd yo pral rasanble nan aparèy la, epi sa a ka transfere ak parèt pa MPLAB X IDE a atravè yon plugin kouvèti kòd. Gade dokiman IDE pou jwenn enfòmasyon sou plugin sa a.
Yo ka itilize #pragma nocodecov pou eskli fonksyon ki vin apre yo nan analiz kouvèti asirans lan. Idealman pragma a ta dwe ajoute nan kòmansman an file pou ekskli tout sa file soti nan analiz kouvèti asirans lan. Altènativman, _attribute_ ((nocodecov)) ka itilize pou eskli yon fonksyon espesifik nan analiz kouvèti asirans lan.
Deskripsyon aparèy files Yon nouvo aparèy file yo rele avr_chipinfo.html sitiye nan anyè docs nan
distribisyon an konpilatè. Sa a file lis tout aparèy ki sipòte pa du a. Klike sou non yon aparèy, epi li pral ouvri yon paj ki montre tout konfigirasyon bit ki pèmèt/pèrè valè pou aparèy sa a, ak ansyen.amples.
Abstraksyon pwosedi Optimisasyon pwosedi abstrè, ki ranplase blòk komen nan kòd asanble ak apèl nan yon kopi ekstrè nan blòk sa a, yo te ajoute nan du a. Sa yo fèt pa yon aplikasyon separe, ki se otomatikman envoke pa du a lè w ap chwazi nivo 2, 3 oswa s optimize. Optimize sa yo diminye gwosè kòd, men yo ka diminye vitès ekzekisyon ak debogaj kòd.
Abstraksyon pwosedi yo ka enfim nan pi wo nivo optimize lè l sèvi avèk opsyon -mno-pa, oswa yo ka aktive nan nivo optimize ki pi ba (sijè a lisans ou) lè l sèvi avèk -mpa. Li ka enfim pou yon objè file lè l sèvi avèk -mno-pa-on-f ile=filenon, oswa enfim pou yon fonksyon lè l sèvi avèk -mno-pa-onfunotion=f onksyon.
Anndan kòd sous ou a, abstraksyon pwosedi ka enfim pou yon fonksyon lè w itilize attribute_ ( (nopa) ) ak definisyon fonksyon an, oswa lè w itilize nopa, ki elaji nan _attribute_ ((nopa, noinline) ) epi konsa anpeche fonksyon inlining pran plas. epi gen abstraksyon nan kòd inline.
Lock bit sipò nan pragma Konfigirasyon #pragma a kapab kounye a itilize pou presize Bits fèmen AVR yo ansanm ak lòt Bits konfigirasyon yo. Tcheke avr_chipinfo.html la file (mansyone pi wo a) pou pè anviwònman/valè yo itilize ak pragma sa a.
Nouvo sipò aparèy Sipò disponib pou pati sa yo: AVR28DAl28, AVR64DAl28, AVR32DAl28, ak AVR48DAl28.
3.11. Vèsyon 2.05
Plis Bits pou lajan ou Vèsyon macOS konpilateur ak manadjè lisans sa a se kounye a yon aplikasyon 64-bit. Sa a pral asire ke du a pral enstale ak kouri san avètisman sou dènye vèsyon macOS.
Objè Const nan memwa pwogram lan Konpilatè a kapab kounye a mete objè konst-kalifye nan memwa Flash pwogram nan, olye ke yo gen sa yo ki sitiye nan RAM. Konpilatè a te modifye pou done mondyal ki kalifye yo estoke nan memwa flash pwogram yo epi yo ka jwenn aksè dirèk ak endirèkteman done sa yo lè l sèvi avèk enstriksyon memwa pwogram ki apwopriye yo. Nouvo karakteristik sa a aktive pa default men yo ka enfim lè l sèvi avèk opsyon -mno-const-data-in-progmem. Pou achitekti avrxmega3 ak avrtiny, karakteristik sa a pa obligatwa epi li toujou enfim, paske memwa pwogram nan trase nan espas adrès done pou aparèy sa yo.
Standard pou gratis Vèsyon ki pa gen lisans (gratis) nan du sa a kounye a pèmèt optimize jiska e ki gen ladan nivo 2. Sa a pral pèmèt yon pwodiksyon ki sanble, byenke pa idantik, ak sa ki te deja posib lè l sèvi avèk yon lisans Creole.
Byenveni AVRASM2 Asanble AVRASM2 pou aparèy 8-bit yo enkli kounye a nan enstalasyon konpilatè XC8 la. Asanble sa a pa itilize pa konpilatè XC8 la, men li disponib pou pwojè ki baze sou sous asanble ekri alamen.
Nouvo sipò aparèy Sipò ki disponib pou pati sa yo: ATMEGA1608, ATMEGA 1609, ATMEGA808, ak ATMEGA809.
3.12. Vèsyon 2.00
Chofè tèt-nivo Yon nouvo chofè, ki rele xc8 -cc, chita kounye a pi wo pase avr-gcc chofè a ak chofè xc8 la, epi li ka rele du apwopriye a ki baze sou seleksyon an nan aparèy la sib. Chofè sa a aksepte opsyon GCC-style, ki swa tradui pou oswa pase nan konpilatè a ke yo te egzekite. Chofè sa a pèmèt yon seri opsyon ki sanble ak semantik ki sanble yo dwe itilize ak nenpòt ki sib AVR oswa PIC e konsa se fason ki rekòmande yo envoke du a. Si sa nesesè, yo ka rele ansyen chofè avr-gcc la dirèkteman lè l sèvi avèk opsyon ansyen style li te aksepte nan vèsyon pi bonè yo.
Entèfas C komen Konpilateur sa a kapab kounye a konfòme yo ak MPLAB Common C Interface, sa ki pèmèt kòd sous yo dwe pi fasil transfè atravè tout konpilateur MPLAB XC. Opsyon -mext=cci mande karakteristik sa a, ki pèmèt lòt sentaks pou anpil ekstansyon lang.
Nouvo chofè bibliyotekè A Nouvo chofè bibliyotekè pozisyone pi wo pase ansyen bibliyotekè PIC libr ak AVR avr-ar bibliyotekè a. Chofè sa a aksepte opsyon GCC-achiv-style, ki swa tradui pou oswa pase nan bibliyotekè ke yo te egzekite a. Nouvo chofè a pèmèt yon seri opsyon ki sanble ak semantik ki sanble yo dwe itilize pou kreye oswa manipile nenpòt bibliyotèk PIC oswa AVR. file e se konsa fason rekòmande pou envoke bibliyotekè a. Si sa nesesè pou pwojè eritaj, yo ka rele bibliyotekè anvan an dirèkteman lè l sèvi avèk opsyon ansyen style li te aksepte nan vèsyon pi bonè yo.
Pwoblèm Migrasyon
Sa ki annapre yo am karakteristik ki kounye a okipe yon fason diferan pa du a. Chanjman sa yo ka mande pou modifikasyon nan kòd sous ou a si pòtaj kòd nan vèsyon sa a du. Nimewo vèsyon an nan soutit yo endike premye vèsyon an pou sipòte chanjman ki vin apre yo.
4.1. Version 2.39 (Fonksyonèl Sekirite Release)
Okenn.
4.2. Vèsyon 2.36 Okenn.
4.3. Version 2.35
Manyen nan baz fisèl-a (XC8-2420) Pou asire konsistans ak lòt konpilatè XC, XC8 fil-a. fonksyon, tankou strtol () elatriye, p ap eseye konvèti yon fisèl antre ankò si baz espesifye a pi gwo pase 36 epi yo pral pito mete errno nan EINVAL. Estanda C a pa presize konpòtman an fonksyon yo lè valè baz sa a depase.
Optimize vitès ki pa apwopriye Optimizasyon abstrè pwosedi yo te pèmèt lè w ap chwazi optimize nivo 3 (-03). Optimize sa yo redwi gwosè kòd nan depans lan nan vitès kòd, kidonk pa ta dwe fèt. Pwojè ki sèvi ak nivo optimize sa a ta ka wè diferans ki genyen nan gwosè kòd ak vitès ekzekisyon lè yo bati ak lage sa a.
Fonksyonalite bibliyotèk Kòd pou anpil nan fonksyon bibliyotèk estanda C yo kounye a soti nan Bibliyotèk Estanda Inifye Microchip a, ki ka montre yon konpòtman diferan nan kèk sikonstans konpare ak sa ansyen bibliyotèk avr-libc te bay la. Pou egzanpample, li pa nesesè ankò pou lyen nan bibliyotèk 1printf flt (-1printf_flt opsyon) pou vire sou fòma sipò I0 pou spécificateurs float-format. 10 karakteristik entelijan Microchip Unified Standard Library fè opsyon sa a redondants. Anplis de sa, itilizasyon woutin sifiks _P pou fonksyon fisèl ak memwa (egzanp strcpy_P ( ) elatriye.) ki opere sou fisèl konst nan flash pa nesesè ankò. Woutin estanda C yo (egzanp strcpy 0 ) ap travay kòrèkteman ak done sa yo lè karakteristik konst-data-in-program-memory la aktive.
4.4. Vèsyon 2.32
Okenn.
4.5. Vèsyon 2.31
Okenn.
4.6. Vèsyon 2.30
Okenn.
4.1. Version 2.29 (Fonksyonèl Sekirite Release)
Okenn.
4.2. Vèsyon 2.20
Chanje Layout DFP Konpilatè a sipoze kounye a yon Layout diferan DFP yo itilize (Pake Fanmi Aparèy). Sa a pral vle di ke yon DFP ki pi gran ta ka pa travay ak lage sa a, ak konpilatè ki pi ansyen yo pa pral kapab sèvi ak dènye DFP yo.
4.3. Version 2.19 (Fonksyonèl Sekirite Release)
Okenn.
4.4. Version 2.10 Okenn
4.5. Vèsyon 2.05
Objè konst nan memwa pwogram Remake byen ke yo pral plase objè ki kalifye pa defo ak aksè nan memwa pwogram (jan sa dekri pa li). Sa a pral afekte gwosè ak vitès ekzekisyon pwojè ou a, men li ta dwe diminye itilizasyon RAM. Karakteristik sa a ka enfim, si sa nesesè, lè l sèvi avèk -mnocons t-data-in-pr ogmem opsyon.
4.6. Vèsyon 2.00
Fyouz konfigirasyon Fyouz konfigirasyon aparèy yo kapab kounye a pwograme lè l sèvi avèk yon pragma konfigirasyon ki te swiv pa pè mete-valè pou presize eta a fuse, pa egzanp #pragma config WDTON = SET #pragma config BODLEVEL = BODLEVEL_4V3
Objè absoli ak fonksyon Kounye a ka mete objè ak fonksyon yo nan adrès espesifik nan memwa lè l sèvi avèk CCI _ la.at (adrès) spesifye, pou egzanpample:
ifinclude
int foobar nan (0)0300100);
char at(0x250) getID(int offset) (Agiman pou spesifikatè sa a dwe yon konstan ki reprezante adrès kote yo pral plase premye byte oswa enstriksyon an. Adrès RAM yo endike lè yo itilize yon konpanse Ox800000. Pèmèt CCI a sèvi ak karakteristik sa a.
Nouvo sentaks fonksyon entèwonp Konpilatè a kounye a aksepte CCI _interrupt (nimewo) spesifikatè pou endike ke fonksyon C yo se moun kap okipe entèwonp. Espesifikatè a pran yon nimewo entèwonp, pou egzanpample:
Pwoblèm fiks yo
Sa ki annapre yo se koreksyon yo te fè nan konpilatè a. Sa yo ta ka ranje ensèk nan kòd la pwodwi oswa chanje operasyon an nan konpilatè a sa ki te gen entansyon oswa espesifye nan gid itilizatè a. Nimewo vèsyon an nan soutit yo endike premye vèsyon konpilatè a ki genyen koreksyon pou pwoblèm ki swiv yo. Etikèt ki mete parantèz yo nan tit la se idantifikasyon pwoblèm sa a nan baz done swiv la. Sa yo ka itil si ou bezwen kontakte sipò.
Remake byen ke kèk pwoblèm espesifik aparèy yo korije nan Pake Fanmi Aparèy la (DR)) ki asosye ak aparèy la. Gade Manadjè pake MPLAB la pou jwenn enfòmasyon sou chanjman ki fèt nan DFP yo epi pou telechaje dènye pake yo.
5.1. Version 2.39 (Fonksyonèl Sekirite Release)
Okenn.
5.2. Vèsyon 2.36
Erè lè w ap retade (XCS–2774) Chanjman minè nan optimize mòd gratis yo te anpeche konstan plisman ekspresyon operand nan fonksyon reta entegre yo, sa ki lakòz yo te trete kòm ki pa konstan ak deklanche erè a. built in_avr_delay_cycles espere yon konstan nonb antye relatif tan konpile.
5.3. Vèsyon 2.35
Kontigu alokasyon lè l sèvi avèk _at (XCS–2653) Alokasyon kontigu nan plizyè kote objè nan yon seksyon ki gen menm non ak lè l sèvi avèk _at () pa t travay kòrèkteman. Pou egzanpample:
const char arrl[ ] atribi (seksyon (".mysec") nan (0x500) = (OxAB, OxCD);
const char arr2[ ] atribi (sectionr.mysec”)= (OxEF, OxFE);
ta dwe mete arr2 imedyatman apre arri.
Espesifye adrès kòmansman seksyon yo (XCS–2650) la Opsyon -wl, -section-start te an silans echwe pou mete seksyon yo nan adrès kòmanse nominasyon an. Pwoblèm sa a te fikse pou nenpòt seksyon ki gen non koutim; sepandan, li p ap travay pou okenn seksyon estanda, tankou . tèks oswa . bss, ki dwe mete lè l sèvi avèk yon -wl, -T opsyon.
Linker aksidan lè ap detann (XCS–2647) Lè optimize -mrelax la te pèmèt epi yo te kòd oswa seksyon done ki pa t 'anfòm nan memwa ki disponib, linker a te fè aksidan. Koulye a, nan yon sikonstans konsa, mesaj erè yo bay pito.
Non non–tonbe–tounen (XCS–2646) la –Opsyon nofallback pa te kòrèkteman aplike, ni dokimante. Sa a kapab kounye a dwe chwazi asire ke du a pa pral tonbe tounen nan yon anviwònman optimize pi ba si konpilatè a pa gen lisans, epi li pral olye bay yon erè.
Optimize vitès ki pa apwopriye (XCS–2637) Optimizasyon abstrè pwosedi yo te pèmèt lè w ap chwazi optimize nivo 3 (-03). Optimize sa yo redwi gwosè kòd nan depans lan nan vitès kòd, kidonk pa ta dwe fèt.
Move aksè EEPROM (XCS–2629) Woutin eeprom_read_block la pa t travay kòrèkteman sou aparèy Xmega lè yo te aktive opsyon -mconst-data-in-progmem (ki se eta default), sa ki lakòz memwa EEPROM pa t li kòrèkteman.
Alokasyon memwa envalid (X03-2593, XC8-2651) Lè opsyon linker -Ttext oswa -Tdata (pa egzanpample te pase nan lè l sèvi avèk yon opsyon chofè -wl) espesifye, orijin ki koresponn tèks / done rejyon an te mete ajou; sepandan, adrès la fen pa te ajiste kòmsadwa, ki te kapab mennen nan rejyon an depase ranje memwa aparèy sib la.
Aksidan ak fonksyon twòp atribiye (XC8-2580) Konpilatè a te fè aksidan si yo te deklare yon fonksyon lè l sèvi avèk plis pase youn nan atribi entèwonp, siyal oswa nmi, pa egzanp, _attribute_ (( signal , enterrupt ) ).
Kòd entèwonp ATtiny ki pa valab (XC8-2465) Lè bati pou aparèy ATtiny ak optimize yo te enfim (-00), fonksyon entèwonp yo ka te deklanche operatand soti nan mesaj asanblaj.
Opsyon yo pa pase nan (XC8-2452) Lè w ap itilize a -wl opsyon ki gen plizyè opsyon linker ki separe ak vigil, se pa tout opsyon linker yo te pase nan linker la.
Erè endirèkteman lecture pwogram memwa (X03-2450) Nan kèk ka, du a te pwodwi yon erè entèn (insn ki pa rekonèt) lè w ap li yon valè de byte ki soti nan yon konsèy nan memwa pwogram.
5.4. Vèsyon 2.32
Dezyèm aksè nan bibliyotèk echwe (X03-2381) Envoke vèsyon Windows la nan achiv bibliyotèk xc8-ar.exe yon dezyèm fwa pou jwenn aksè nan yon achiv bibliyotèk ki egziste deja ka echwe ak yon pa kapab chanje non mesaj erè.
5.5. Vèsyon 2.31
San eksplike echèk konpilatè (XC8-2367) Lè kouri sou Windows platfòm ki te gen anyè tanporè sistèm lan mete sou yon chemen ki enkli yon pwen '.' karaktè, konpilatè a ka echwe pou pou egzekite.
5.6. Vèsyon 2.30
Etikèt mondyal yo pa plase apre yo fin dekri (XC8-2299) Kòd asanble ekri alamen ki mete etikèt ki nan sekans asanble ke yo dekonpoze pa abstrè pwosedi yo ta ka pa te kòrèkteman repositionne.
Yon aksidan ap detann (XC8-2287) Sèvi ak la -mrelax opsyon ta ka lakòz linker a aksidan lè ke so detant optimize yo te eseye retire ret enstriksyon ki pa t 'nan fen a seksyon.
Aksidan lè optimize etikèt kòm valè (XC8-2282) Kòd lè l sèvi avèk "Etikèt kòm valè" GNU C ekstansyon lang ta ka lakòz optimize abstraksyon pwosedi yo aksidan, ak yon seri VMA deskripsyon ki kouvri erè repare.
Se pa konsa const (XC8-2271) Pwototip yo pou strstr () ak lòt fonksyon soti nan pa presize kalifikasyon konst ki pa estanda a sou pwent fisèl yo retounen lè karakteristik -mconst-data- inprogmem dezaktive. Remake byen ke ak aparèy avrxmega3 ak avrtiny, karakteristik sa a aktive pou tout tan.
Inisyalizasyon pèdi (XC8-2269) Lè plis pase yon varyab nan yon tradiksyon inite a te plase nan yon seksyon (itilize seksyon or atribi ( (seksyon) )), ak premye varyab sa yo te inisyalize zewo oswa pa t gen yon inisyalize, inisyalisateur pou lòt varyab nan menm inite tradiksyon an ki te mete nan menm seksyon an te pèdi.
5.1. Version 2.2 9 (Fonksyonèl Sekirite Release) Okenn.
5.2. Vèsyon 2.20
Erè ak kòmandman long (XC8-1983) Lè w ap itilize yon sib AVR, konpilatè a ka sispann ak yon erè lit pa jwenn, si liy lòd la te trè gwo epi li te genyen karaktè espesyal tankou quotes, backslash, elatriye.
Seksyon rodata ki pa asiyen (XC8-1920) Linker AVR a echwe pou pou bay memwa pou seksyon rodata koutim lè bati pou achitekti avrxmega3 ak avrtiny, ki kapab lakòz erè sipèpoze memwa.
5.3. Version 2.19 (Fonksyonèl Sekirite Release)
Okenn.
5.4. Vèsyon 2.10
Echèk demenajman (XC8-1891) Allocator ki pi bon an te kite 'twou' memwa nan ant seksyon apre detant linker. Akote de fragmentation memwa, sa a te ogmante posiblite pou gen echèk demenajman linker ki gen rapò ak so PC-relatif oswa apèl vin soti nan ranje.
Enstriksyon ki pa transfòme pa detant (XC8-1889) Linker detant pa t rive pou enstriksyon so oswa apèl ki gen sib yo vin rive si yo rilaks.
Manke fonksyonalite (XC8E-3) Plizyè definisyon soti nan , tankou clock_div_t ak clock_presc ale_s et () , pa te defini pou aparèy, tankou ATmega324PB, ATmega328PB, ATtiny441, ak ATtiny841.
Makro ki manke Makro preprosesè _XC 8_MODE_, XC 8 VERS ION, XC, ak xc8 pa te defini otomatikman pa konpilatè a. Sa yo disponib kounye a.
5.5. Vèsyon 2.05
Erè konpilatè entèn (XC8-1822) Lè w ap bati anba Windows, yo ka gen yon erè konpilatè entèn lè w ap optimize kòd.
RAM debòde pa detekte (XC8-1800, XC8-1796) Pwogram ki depase RAM disponib pa te detekte pa du a nan kèk sitiyasyon, sa ki lakòz yon echèk kòd ègzekutabl.
Memwa flash omisyon (XC8-1792) Pou aparèy avrxmega3 ak avrtiny, pati nan memwa flash la ta ka pa pwograme pa MPLAB X IDE la.
Echèk pou egzekite prensipal (XC8-1788) Nan kèk sitiyasyon kote pwogram nan pa te gen okenn varyab mondyal defini, kòd la demaraj ègzekutabl pa t 'soti ak fonksyon prensipal () pa janm rive jwenn.
Enfòmasyon sou memwa ki pa kòrèk (XC8-1787) Pou aparèy avrxmega3 ak avrtiny, pwogram avr-size la te rapòte ke done fache sèlman te konsome RAM olye pou yo memwa pwogram.
Lekti memwa pwogram ki pa kòrèk (XC8-1783) Pwojè konpile pou aparèy ki gen memwa pwogram trase nan espas adrès done yo epi ki defini objè lè l sèvi avèk makro/atribi PROGMEM yo te ka li objè sa yo nan move adrès la.
Erè entèn ak atribi (XC8-1773) Yon erè entèn ki te fèt si ou te defini objè pointeur ak siy _at 0 oswa atribi() ant non pointeur a ak kalite dereferans, pa egzanp.ample, char * _at (0x800150) cp; Kounye a gen yon avètisman si yo jwenn kòd sa a.
Si w pa egzekite prensipal (XC8-1780, XC8-1767, XC8-1754) Sèvi ak varyab EEPROM oswa defini fyouz lè l sèvi avèk pragma konfigirasyon an ta ka lakòz inisyalizasyon done kòrèk ak / oswa fèmen ekzekisyon pwogram nan nan kòd la demaraj ègzekutabl, anvan yo rive nan prensipal 0 .
Fuse erè ak aparèy ti (XC8-1778, XC8-1742) Aparèy attiny4/5/9/10120140 yo te gen yon longè fuzib ki pa kòrèk espesifye nan header yo. files ki mennen nan erè linker lè w ap eseye bati kòd ki defini fusibles.
Segmantasyon fay (XC8-1777) Yon fay segmentation tanzantan te korije.
Asanble aksidan (XC8-1761) Avr -as assembler a ta ka fè aksidan lè konpilatè a te kouri anba Ubuntu 18.
Objè yo pa netwaye (XC8-1752) Objè ki dire depo estatik ki pa inisyalize yo ta ka pa te otorize pa kòd demaraj la ègzekutabl.
Konfli spesifikasyon aparèy inyore (XC8-1749) The konpilatè pa t 'genere yon erè lè yo te itilize opsyon spesifikasyon aparèy miltip ak endike aparèy diferan.
Koripsyon memwa pa pil (XC8-1748) The _heap_start senbòl yo te mete mal, sa ki lakòz posiblite pou varyab òdinè yo te pèvèti pa pil la.
Erè deplasman Linker (XC8-1739) Yon erè demenajman linker ta ka emèt lè kòd te genyen yon rjmn oswa rcall ak yon sib egzakteman 4k byte lwen.
5.6. Version 2.00 Okenn.
Pwoblèm li te ye
Sa ki anba la yo se limit nan operasyon konpilatè a. Sa yo ka restriksyon jeneral kodaj, oswa devyasyon nan enfòmasyon ki nan manyèl itilizatè a. Etikèt ki mete parantèz yo nan mare a se idantifikasyon pwoblèm sa a nan baz done swiv la. Sa a ka benefisye si ou bezwen kontakte sipò. Atik sa yo ki pa gen etikèt yo se limit ki dekri modi operandi e ki gen anpil chans pou yo rete an vigè pou tout tan.
6.1. MPLAB X IDE Entegrasyon
MPLAB Entegrasyon IDE Si yo dwe itilize Konpilateur nan MPLAB IDE, Lè sa a, ou dwe enstale MPLAB IDE anvan ou enstale Konpilateur.
6.2. Jenerasyon Kòd
Pa kòrèk inisyalizasyon (XC8-2679) Gen yon diferans ki genyen ant kote valè inisyal yo pou kèk objè mondyal/estatik ki gwosè byte yo mete nan memwa done ak kote yo pral jwenn aksè nan varyab yo nan tan an.
strtod mal mete endptr (XC8-2652) Nan ka kote yon fisèl sijè pou konvèsyon pa strtod () gen sa ki parèt yon nimewo k ap flote nan fòma eksponansyèl epi gen yon karaktè inatandi apre yon karaktè e, Lè sa a, adrès endptr la, si li bay, pral montre karaktè a apre. e a epi li pa e li menm. Pou egzanpample: strtod ("100exy", endptr) ;
pral lakòz endptr lonje dwèt sou karaktè x la.
Move apèl fonksyon endirèk (X03-2628) Nan kèk ka, apèl fonksyon ki fèt atravè yon pwent fonksyon ki estoke kòm yon pati nan yon estrikti ka echwe.
strtof retounen zewo pou flote egzadesimal (XC8-2626) Fonksyon bibliyotèk strtof () et al ak scanf () et al, ap toujou konvèti yon nimewo ègzadesimal k ap flote ki pa presize yon ekspozan a zewo. Pou egzanpample: strtof ("Oxl", &endptr); pral retounen valè a 0, pa 1.
Mesaj konseye pile ki pa kòrèk (XC8-2542, XC8-2541) Nan kèk ka, avètisman konseye pile a konsènan repetisyon oswa pil endetèmine yo itilize (petèt atravè itilizasyon alloca()) pa emèt.
Echèk ak kòd entèwonp kopi (XC8-2421) Kote plis pase yon fonksyon entèwonp gen menm kò a, du a ta ka gen pwodiksyon an pou yon fonksyon entèwonp rele lòt la. Sa a pral lakòz tout rejis apèl yo te sove san nesesite, epi entèwonp yo pral pèmèt menm anvan epilòg la nan moun k ap okipe entèwonp aktyèl la te kouri, ki ta ka mennen nan echèk kòd.
Konst objè ki pa nan memwa pwogram (XC8-2408) Pou pwojè avrxmega3 ak avrtiny, objè const unitialized yo mete nan memwa done, menm si yon avètisman sijere ke yo te mete yo nan memwa pwogram. Sa a pa pral afekte aparèy ki pa gen memwa pwogram trase nan espas memwa done a, ni li pral afekte nenpòt objè ki inisyalize.
Move pwodiksyon ak chemen DFP ki pa valab (XCS-2376) Si yo envoke konpilatè a ak yon chemen DFP ki pa valab ak yon 'spec' file egziste pou aparèy la chwazi a, konpilatè a pa rapòte pake fanmi aparèy ki manke a epi olye li chwazi 'espèks' la. file, ki ta ka mennen nan yon pwodiksyon envalid. 'Espèk la' files ta ka pa ajou ak DFP distribye yo epi yo te fèt pou itilize ak tès konpilatè entèn yo sèlman.
Sipèpoze memwa pa detekte (XC8-1966) Konpilateur a pa detekte sipèpoze memwa objè ki fèt absoli nan yon adrès (via _at 0 ) ak lòt objè lè l sèvi avèk _ la.sektion () spesifikatè ak ki lye nan menm adrès la.
Echèk ak fonksyon bibliyotèk ak _memx (XC8-1763) Yo rele fonksyon flote libgcc ak yon agiman nan espas adrès la _memx ka echwe. Remake byen ke woutin bibliyotèk yo rele nan kèk operatè C, kidonk, pou egzanpample, kòd sa a afekte: retounen regFloatVar > memxFloatVar;
Limite aplikasyon libgcc (AVRTC-731) Pou la ATTiny4/5/9/10/20/40 pwodwi, aplikasyon estanda bibliyotèk C / Matematik nan libgcc trè limite oswa pa prezan.
Limit memwa pwogram (AVRTC-732) Chèn zouti a sipòte imaj memwa pwogram ki depase 128 kb; sepandan, gen kèk ka avòtman linker san detant ak san yon mesaj erè itil olye ke jenere souch fonksyon obligatwa yo lè yo itilize opsyon -mrelax la.
Limit espas non (AVRTC-733) Chèn zouti a sipòte espas adrès yo nonmen, sijè a limit ki mansyone nan seksyon gid itilizatè a Kalifikasyon Espesyal Kalite.
Zòn tan yo fonksyon bibliyotèk yo asime GMT epi yo pa sipòte zòn lè lokal yo, kidonk lokalize Ime 0 ap retounen menm lè ak gmtime ( ) , pa egzanp.ample.
Dokiman / Resous
![]() |
MICROCHIP MPLAB XC8 C Compiler Version 2.39 Nòt lage pou AVR MCU [pdfGid Itilizatè MPLAB XC8 C Compilateur Version 2.39 Nòt lage pou AVR MCU, MPLAB XC8 C, Konpilateur Version 2.39 Nòt lage pou AVR MCU, Nòt lage pou AVR MCU |
![]() |
MICROCHIP MPLAB XC8 C Compiler Version 2.39 Nòt lage pou AVR MCU [pdfGid Itilizatè MPLAB XC8 C Compiler Version 2.39 Nòt lage pou AVR MCU, MPLAB XC8 C, Konpilateur Version 2.39 Nòt lage pou AVR MCU, Nòt pou AVR MCU |
![]() |
MICROCHIP MPLAB XC8 C konpilateur [pdfGid Itilizatè MPLAB XC8 C du, MPLAB XC8 C, du |






