MICROCHIP - logoMPLAB XC8 C Compiler Version 2.39 Hoʻokuʻu memo no AVR MCU
Ke alakaʻi hoʻohana

LOA I KEIA PALAPALA KA ʻike koʻikoʻi e pili ana i ka MPLAB XC8 C COMPILER i ka wā e hoʻopaʻa ana i nā polokalamu AVR MICROCHIP. E HELULU MA mua o ka holo ʻana i kēia polokalamu.
E ʻike i ka MPLAB XC8 C COMPILER Hoʻokuʻu i nā memo no ka PIC PIC inā ʻoe e hoʻohana ana i ka mea hoʻopili no 8-BIT PIC DEVICES.

Pauview

1.1. Hoʻolauna
ʻO kēia hoʻokuʻu ʻana o ka Microchip MPLAB® XC8 C compiler he mea hoʻopili palekana hana, e pili ana i ka v2.36 hoʻokuʻu o kēia mea hoʻohui a kākoʻo i kēia manawa i ka Laikini Pūnaewele Pūnaewele.
1.2. Lā Hoʻokuʻu
ʻO ka lā hoʻokuʻu kūhelu o kēia mana compiler ʻo 27 Ianuali 2022.
1.3. Manao mua
ʻO ka mana MPLAB XC8 C compiler mua he 2.36, i hoʻokuʻu ʻia 25 Ianuali 2022.
1.4. Manual Palekana Hana
Loaʻa kahi Manual Palekana Hana no ka MPLAB XC compilers i loko o ka waihona palapala ke kūʻai ʻoe i kahi laikini palekana hana.
1.5. Nā Laikini Component and Versions® he MPLAB
Ua kākau ʻia a māhele ʻia ka XC8 C Compiler no nā mea hana AVR MCU ma lalo o ka GNU General Public License (GPL) ʻo ia hoʻi, ua hāʻawi manuahi ʻia kāna kumu kumu a loaʻa i ka lehulehu.
Hiki ke hoʻoiho ʻia ke kumu kumu no nā mea hana ma lalo o ka GNU GPL mai ka Microchip's webpaena. Hiki iā ʻoe ke heluhelu i ka GNU GPL ma ka waihona i kapa ʻia aia ka papa kuhikuhi o kāu papa kuhikuhi license.txt avr/doc. Hiki ke ʻike ʻia ma aneʻi kahi kūkākūkā nui o nā loina e pili ana i ka GPL.
ʻO ke code kākoʻo i hāʻawi ʻia no nā faila poʻomanaʻo, nā palapala linker, a me nā hale waihona puke holo manawa he code proprietary a ʻaʻole i uhi ʻia ma lalo o ka GPL.
He hoʻokō kēia mea hōʻuluʻulu o GCC mana 5.4.0, binutils version 2.26, a hoʻohana avr-libc version 2.0.0.
1.6. Pono Pūnaewele
Loaʻa ka MPLAB XC8 C compiler a me ka polokalamu laikini e hoʻohana ai no nā ʻōnaehana hana like ʻole, me nā mana 64-bit o kēia mau mea: Nā paʻi ʻoihana o Microsoft Windows 10; Ubuntu 18.04; a me ka macOS 10.15.5. Ua kau inoa ʻia nā binaries no Windows. ʻO nā binaries no macOS ua kau inoa ʻia a hoʻopaʻa inoa ʻia.
Inā ʻoe e holo nei i kahi kikowaena laikini pūnaewele, hiki ke hoʻohana ʻia nā kamepiula me nā ʻōnaehana hana i kākoʻo ʻia e nā mea hoʻopili e hoʻokipa i ka kikowaena laikini. E like me ka xclm version 2.0, hiki ke hoʻokomo ʻia ke kikowaena laikini pūnaewele ma kahi kahua kikowaena Microsoft Windows Server, akā ʻaʻole pono ke kikowaena laikini e holo ma kahi kikowaena kikowaena o ka ʻōnaehana hana.
1.7. Kākoʻo ʻia nā mea hana
Kākoʻo kēia mea hōʻuluʻulu i nā polokalamu 8-bit AVR MCU i ʻike ʻia i ka manawa o ka hoʻokuʻu ʻana. E ʻike (ma ka compiler's avr_chiinfo.html papa kuhikuhi) no ka papa inoa o nā mea i kākoʻo ʻia. Hoʻopili pū kēia mau faila i nā hoʻonohonoho bit doc configuration no kēlā me kēia hāmeʻa.
1.8. Nā Hoʻopuka a me nā Hoʻonui Laikini
Hiki ke hoʻohana ʻia ka mea hoʻopili MPLAB XC8 ma ke ʻano he huahana laikini (PRO) a i ʻole laikini ʻole (Free). Pono ʻoe e kūʻai i kahi kī hoʻāla e laikini i kāu compiler. Hiki i kahi laikini ke kiʻekiʻe kiʻekiʻe o ka hoʻohālikelike ʻana i ka huahana Free. Hiki ke hoʻohana mau ʻia ka mea hoʻopili laikini ʻole me ka laikini ʻole.
Pono e ho'āla ʻia kahi MPLAB XC8 Functional Safety compiler me kahi laikini palekana hana i kūʻai ʻia mai Microchip. ʻAʻole e hana ka mea hoʻopili me ka ʻole o kēia laikini. Ke ho'ā ʻia, hiki iā ʻoe ke koho i kekahi pae optimization a hoʻohana i nā hiʻohiʻona compiler āpau. ʻO kēia hoʻokuʻu ʻana o ka MPLAB XC Functional Safety
Kākoʻo ʻo Compiler i ka Laikini Pūnaewele Pūnaewele.
E nānā i ka palapala hoʻokomo a me ka laikini ʻana i ka MPLAB XC C Compilers (DS50002059) no ka ʻike e pili ana i nā ʻano laikini a me ka hoʻokomo ʻana o ka mea hōʻuluʻulu me kahi laikini.
1.9. Hoʻokomo a hoʻouka
E ʻike pū i nā ʻāpana Migration Issues and Limitations no ka ʻike koʻikoʻi e pili ana i ka luna laikini hou loa i hoʻokomo pū ʻia me kēia mea hoʻopili.
Inā hoʻohana ʻoe i ka MPLAB IDE, e ʻoluʻolu e hoʻokomo i ka MPLAB X IDE version 5.0 a i ʻole ma hope ma mua o ka hoʻokomo ʻana i kēia hāmeʻa. E haʻalele i ka IDE ma mua o ka hoʻokomo ʻana i ka compiler. Holo i ka (Windows), (Linux) a i ʻole (macOS) .exe .run .app compiler installer application, laʻa, a hahai i nā kuhikuhi ma ka pale.
XC8-1.00.11403-windows.exe
Paipai ʻia ka papa kuhikuhi hoʻonohonoho paʻamau. Inā ʻoe e hoʻohana nei i Linux, pono ʻoe e hoʻokomo i ka compiler me ka hoʻohana ʻana i kahi pahu a mai kahi moʻokāki kumu. E hoʻouka me ka hoʻohana ʻana i kahi moʻokāki macOS me nā kuleana luna.
Hoʻopau ʻia ka hoʻāla ʻana i kēia manawa i ka hoʻonohonoho ʻana. E nānā i ka palapala License Manager for MPLAB® XC C Compilers (DS52059) no ka ʻike hou aku.
Inā koho ʻoe e holo i ka mea hōʻuluʻulu ma lalo o ka laikini loiloi, e loaʻa iā ʻoe kahi ʻōlelo aʻo i ka wā o ka hoʻopili ʻana inā ʻoe i loko o 14 mau lā o ka pau ʻana o kāu manawa loiloi. Hoʻopuka ʻia ka ʻōlelo aʻo like inā ʻoe i loko o 14 mau lā o ka pau ʻana o kāu kau inoa HPA.
ʻO ka XC Network License Server he mea hoʻonohonoho kaʻawale a ʻaʻole i hoʻokomo ʻia i loko o ka mea hoʻonohonoho hoʻonohonoho hoʻohana hoʻokahi.
Kākoʻo ka Luna Hoʻokele Laikini XC i ka holo ʻana o nā laikini pūnaewele lana. Hoʻohana ʻia i nā mea hoʻohana kelepona, hiki i kēia hiʻohiʻona ke hele i kahi laikini lana e hele i waho o ka pūnaewele no kahi manawa pōkole. Ke hoʻohana nei i kēia hiʻohiʻona, hiki iā ʻoe ke wehe i ka pūnaewele a hoʻohana mau i kāu MPLAB XC compiler. E ʻike i ka waihona doc o ka hoʻokomo XCLM no nā mea hou aku ma kēia hiʻohiʻona.
Loaʻa i ka MPLAB X IDE kahi puka makani Laikini (Tools > Licenses) no ka hoʻokele ʻana i ka roaming.

1.9.1. Hoʻoholo i nā pilikia hoʻokomo
Inā pilikia ʻoe i ka hoʻokomo ʻana i ka compiler ma lalo o kekahi o nā ʻōnaehana hana Windows, e hoʻāʻo i kēia mau manaʻo.

  • Holo i ka hoʻouka ʻana ma ke ʻano he luna.
  • E hoʻonoho i nā ʻae o ka polokalamu hoʻonohonoho i 'Full control'. (E kaomi ʻākau i ka faila, koho Properties, Security tab, koho mea hoʻohana, hoʻoponopono.)
  • E hoʻonoho i nā ʻae o ka waihona temp i "Full Control!.
  • No ka hoʻoholo ʻana i kahi o ka waihona temp, e hoʻokomo i ke kauoha Run (kī logo Windows + R). %temp% E wehe kēia i kahi kamaʻilio ʻimi file e hōʻike ana i kēlā papa kuhikuhi a hiki iā ʻoe ke hoʻoholo i ke ala o kēlā waihona.

1.10. Hoʻopili palapala

MICROCHIP MPLAB XC8 C Compiler Version 2.39 Hoʻokuʻu memo no AVR MCU - palapalaHiki ke wehe ʻia nā alakaʻi o ka mea hoʻohana mai ka ʻaoʻao HTML e wehe ana i kāu polokalamu kele i ke kaomi ʻana i ke pihi kōkua polū ma MPLAB X IDE dashboard, e like me ka mea i hōʻike ʻia ma ke kiʻi.
Inā ʻoe e kūkulu nei no nā pahuhopu 8-bit AVR, ʻo ka MPLAB® XC8 C Compiler User's® Guide no AVR
Loaʻa i ka MCU ka ʻike e pili ana i kēlā mau koho compiler a me nā hiʻohiʻona e pili ana i kēia hoʻolālā.

1.11. Kākoʻo mea kūʻai aku
Hoʻokipa ʻo Microchip i nā hōʻike bug, manaʻo a manaʻo paha e pili ana i kēia mana compiler. E ʻoluʻolu e kuhikuhi i nā hōʻike bug a i ʻole nā ​​noi hiʻona ma o ka Pūnaehana Kākoʻo.

Hoʻohou Palapala

No nā mana pūnaewele a me nā mana hou o ka palapala MPLAB XC8, e ʻoluʻolu e kipa i ka Microchip's Online.
Palapala ʻenehana webpaena.
Nā palapala AVR hou a i ʻole hou i kēia hoʻokuʻu:
Ke hoʻouka a me ka laikini ʻana i nā MPLAB® XC C Compilers (DS50002059) hoʻoponopono L
Hōʻike ka Microchip Unified Standard Library Reference Guide i ke ʻano a me ka pilina i nā hana i wehewehe ʻia e ka Microchip Unified Standard Library, a me ka hoʻohana ʻana i nā ʻano waihona a me nā macros. Aia kekahi o kēia ʻike i ka MPLA® XC8 C Compiler User!s Guide® no AVR.
MCU. Aia ka ʻike waihona puke kikoʻī i loko o kēia alakaʻi hōʻuluʻulu.
Ua hoʻokomo ʻia ka Hexmate User's Guide i ka papa kuhikuhi ma kēia hoʻokuʻu. Kuhi ʻia kēia alakaʻi no nā palapala e holo ana i ka Hexmate ma ke ʻano he noi kū hoʻokahi.
Hāʻawi nā ʻāpana aʻe i nā hoʻoponopono a me nā ʻike hou aʻe i loaʻa i nā alakaʻi o ka mea hoʻohana i hoʻouna ʻia me ka mea hoʻopili.

2.1. akamai-io-format Koho
ʻO ke koho-msmart-io-format=fmt fmt, aia kahi kaula i hoʻopaʻa ʻia i nā kikoʻī hoʻololi IO i hoʻohālikelike ʻia, e hōʻike ana i ka mea hōʻuluʻulu e hoʻohana ʻia nā kikoʻī i helu ʻia e nā hana IO akamai.
No ka hōʻemi ʻana i ka nui o nā code, hana ka mea hoʻopili i nā code waihona e pili ana i nā ʻohana paʻi a scan o nā hana IO akamai, ma muli o nā kikoʻī hoʻololi i loaʻa i nā kaula hōʻano i hōʻuluʻulu ʻia ma nā kelepona āpau i kēia mau hana. ʻOkoʻa loa kēia hiʻona a ʻaʻole hiki ke hoʻopau ʻia.
I kekahi mau kūlana, ʻaʻole hiki i ka mea hōʻuluʻulu ke hoʻoholo i ka ʻike hoʻohana mai ke kelepona hana IO formatted. Inā ua hoʻohana ʻia ke koho, loaʻa nā kikoʻī hoʻololi i koi ʻia no kēia mau hana mai ke kaula; a i ʻole, ʻaʻohe manaʻo o ka mea hoʻopili e pili ana i ka hoʻohana ʻia ʻana o nā hana -msmart-io-format=fmt fmt a hōʻoia i ka hoʻopili ʻia ʻana o nā hana IO i hoʻopiha piha ʻia i ke kiʻi papahana hope.
No exampe, e noʻonoʻo i kēia mau kelepona i nā hana IO akamai.

vscanf("%d:%li", va_list1);
vprintf(“%-s%d”, va_list2);
vprintf(fmt1, va_list3); // hoʻohana pohihihi
vscanf(fmt2, va_list4); // hoʻohana pohihihi

I ka hana ʻana i nā kelepona hope ʻelua, ʻaʻole hiki i ka mea hōʻuluʻulu ke unuhi i kekahi ʻike hoʻohana mai nā kaula format, a i ʻole nā ​​hoʻopaʻapaʻa. I kēia mau manawa, hiki ke hoʻohana ʻia ke koho -msmart-io-format a hiki ke ʻae ʻia nā hana I0 i hoʻonohonoho pono ʻia e hana ʻia, pēlā e hōʻemi ai i ka nui o ke code o ka papahana. No exampʻAe, inā e hoʻohana pū nā kaula hōʻano i kuhikuhi ʻia e fmtl a me fmt2 i nā mea hoʻololi "%d", "%i" a me "% s", pono e hoʻopuka ʻia ke koho -msmart-io-format=fmt="%d%i%s".

Loaʻa paha i ka string tint kekahi kikoʻī hoʻololi kūpono, me nā hae a me nā mea hoʻololi (no ka example “%-13. 91s") a pono e noʻonoʻo pono i nā mea i hoʻohana ʻia e nā hana i hoʻohana ʻole ʻia. ʻAʻole hoʻokomo i kahi kikoʻī i ka bit ʻO ka hoʻopaʻapaʻa kahi i hoʻohana ʻia ai e nā hana I0 i hoʻopaʻa ʻia e hopena paha i ka hemahema o ke code.
Inā he kaula ʻole ka fmt a ʻaʻole ʻike ʻia nā kikoʻī hoʻololi, e hoʻopuka ʻia kahi ʻōlelo aʻo a hoʻopili ʻia nā hana I0 i hoʻopiha piha ʻia i ke kiʻi papahana hope loa.
Hiki ke hoʻohana ʻia kēia koho i nā manawa he nui ma ka laina kauoha. Hoʻopili ʻia nā kikoʻī hoʻololi i hoʻohana ʻia me kēlā me kēia koho.

2.2. hoʻokuʻu ʻia-frame-pointer Koho
ʻO ke koho - f omit-frame-pointer e kuhikuhi i ka mea hoʻopili e hoʻohana pololei i ka pointer stack no ke komo ʻana i nā mea ma ka waihona a, inā hiki, e haʻalele i ke code e mālama, hoʻomaka, a hoʻihoʻi i ka papa inoa kiʻi. Hoʻohana ʻia ia ma nā pae hoʻonui ʻole zero.
ʻO ka hōʻole ʻana i ke koho, me ka hoʻohana ʻana -fno-omit- frame-pointer, hiki ke kōkua i ka debugging optimized code; akā naʻe, ʻaʻole hōʻoia kēia koho e hoʻohana mau ʻia ke kuhikuhi kiʻi.

2.3. unroll-loops Koho
ʻO ka - funrol I-loops a me -(unroll-all-loops options control speed-oriented optimizations that ho'āʻo e wehe i nā lālā lohi ma nā puka lou.
ʻO ka koho - funrol I-loops e wehe i nā puka lou kahi e hiki ai ke hoʻoholo i ka helu o nā ʻike i ka manawa hoʻohui a i ʻole ke komo ʻana o ke code i ka loop. ʻOi aku ka ikaika o ka koho -funroll-all-loops, wehe i nā puka lou a pau, ʻoiai ʻaʻole ʻike ʻia ka helu o nā hoʻololi. ʻAʻole ʻoi aku ka maikaʻi o ka hoʻomaikaʻi ʻana i ka wikiwiki hoʻokō ma mua o ke koho - funrol 1-loops.

2.4. momona-Ito-mea Koho
ʻO ke koho - f fat-1 to-obj ects e noi i ka mea hoʻopili e hoʻohua i ka mea momona files, aia nā mea ʻelua
mea code a me GIMPLE (kekahi o ka GCC hōʻike kūloko), i kākau ʻia i nā ʻāpana ELF kū hoʻokahi. ʻO ia mau mea fileHe mea pono ia no ka code waihona i hiki ke hoʻopili ʻia me nā papahana e hana a ʻaʻole hoʻohana i ka mea hoʻohana manawa-link maʻamau, i mālama ʻia e ke koho -flto.
ʻO ke ʻano - fno-fat-lto-objects o kēia koho, ʻo ia ka mea paʻamau inā ʻaʻohe koho i kuhikuhi ʻia, hoʻopau i ka hoʻokomo ʻana i ke code mea i loko o ka mea. files, ka hopena o ke kūkulu wikiwiki ʻana. Eia naʻe, kēlā mea filePono e hoʻopili mau ʻia me ka hoʻohana ʻana i ka mea hoʻoponopono manawa loulou maʻamau.

2.5. ʻO ke koho hoʻokaʻawale Ito
ʻO ka - flto-partiti ma=a Igo ri thm ʻO ke koho e hoʻomalu i ka algorithm i hoʻohana ʻia e hoʻokaʻawale i ka mea files i ka wā e holo ana i ka link-time optimizer. ʻAʻole hoʻopaʻapaʻa ka hoʻopaʻapaʻa i ka hoʻokaʻawale holoʻokoʻa a hoʻokō pololei i ka pae hoʻopaneʻe manawa-link mai ka māhele ʻana o ka papahana holoʻokoʻa (WPA). ʻO kēia ʻano hana e hoʻopuka i nā hopena maikaʻi loa, ma ka uku o nā koi hoʻomanaʻo compiler nui a me nā manawa kūkulu lōʻihi, ʻoiai ʻaʻole paha kēia he pilikia me nā polokalamu liʻiliʻi. Hoʻokaʻawale i ka mea fileHiki iā s ke hoʻomaikaʻi i ka hana kūkulu. ʻO ka hoʻopaʻapaʻa ʻōlelo hoʻokahi e hoʻohana pono i hoʻokahi ʻāpana, a ʻo ka hoʻopaʻapaʻa lto1 e wehewehe i ka hoʻokaʻawale ʻana i nā aniani i kuhikuhi ʻia e ke kumu kumu. files. Kaulike ka hoʻopaʻapaʻa paʻamau, e wehewehe ana i ka hoʻokaʻawale ʻana i nā ʻāpana like like, ke hiki.

2.6. Hoʻohui i ka Māhele 3.6.11 Nā Koho Linker Mapped
Ka -wl, – ʻāpana-hoʻomaka =sec tion=addr ua nalowale mai ka papa o nā koho linker maʻamau, hiki ke loaʻa me ka hoʻohana ʻana i ke koho hoʻokele -wl compiler. Hiki i kēia koho ke hoʻokomo i nā ʻāpana i kapa ʻia ma ka helu wahi i kuhikuhi ʻia. ʻAʻole hiki ke hoʻohana ʻia e kau i nā ʻāpana maʻamau, e like me ( . data, . bss, . kikokikona), pono e kau ʻia me kahi koho -wl, -'r.

2.7. Hoʻololi i ka Pauku 4.14.2 Hoʻololi a Hoʻohui i ka ʻāpana i hoʻokaʻawale ʻia
E hoʻomaopopo he kūʻē i ka ʻike i loko o kēia ʻāpana o ke alakaʻi a ka mea hoʻohana, nā hoʻololi i hana ʻia i ka mea hoʻopili i kēia hoʻokuʻu i kēia manawa, hiki ke hoʻopili ʻia nā ʻāpana maʻamau me ka hoʻohana ʻana i ka -w1, –sect ion- hoʻomaka= ʻāpana = acicir koho a me ka ʻole e hoʻololi i ka palapala linker.

He aha ka mea hou

ʻO nā hiʻohiʻona AVR-target hou e kākoʻo nei i kēia manawa. Hōʻike ka helu mana ma nā poʻomanaʻo i ka mana hōʻuluʻulu mua e kākoʻo i nā hiʻohiʻona e hiki mai ana.

3.1. Mana 2.39 (Hoʻokuʻu Palekana Hana)
Kākoʻo kēia hoʻokuʻu ʻana o ka MPLAB XC8 Functional Safety Compiler i ka Laikini Pūnaewele Pūnaewele.

3.2. Helu 2.36 
ʻAʻohe.
3.3. Helu 2.35 
Loaʻa ke kākoʻo kākoʻo mea hou no nā ʻāpana AVR penei: ATTINY3224, ATTINY3226, ATTINY3227, AVR64DD14, AVR64DD20, AVR64DD28, a me AVR64DD32.
Hoʻololi ʻia ka pōʻaiapili Hoʻololi ka koho hou -mcall-isr-prologues pehea e mālama ai nā hana interrupt i nā papa inoa ma ke komo ʻana a pehea e hoʻihoʻi ʻia ai kēlā mau papa inoa ke hoʻopau ʻia ka hana maʻamau. Hana like ia me ke koho -mcall-prologues, akā pili wale i nā hana interrupt (ISRs).
ʻOi aku ka maikaʻi o ka hoʻololi pōʻaiapili ʻO ka mea hou -mgas-isr-prologues ʻO ke koho e hoʻomalu i ke code hoʻololi pōʻaiapili i hana ʻia no nā hana maʻamau lawelawe hoʻopau liʻiliʻi. Ke hoʻohana ʻia, hiki i kēia hiʻohiʻona ke nānā i ka ISR no ka hoʻohana inoa ʻana a mālama wale i kēia mau papa inoa i hoʻohana ʻia inā pono.
Ka palapala 'ana uila hiki ke ho'onohonoho 'ia kekahi mau mea ma ka 'ohana AVR DA a me AVR DB he SFR (e la'a me FLMAP) e kuhikuhi ana i ka pauku 32k o ka ho'omana'o papahana e pa'i 'ia i loko o ka ho'omana'o 'ikepili. Hiki ke hoʻohana ʻia ke koho hou - mconst-data-in-config-mapped-progmem i mea e hoʻokomo ai ka mea hoʻohui i nā ʻikepili i kūpono ʻia i ka ʻāpana 32k hoʻokahi a hoʻomaka koke i ka papa inoa SFR kūpono e hōʻoia i ka palapala ʻana i kēia ʻikepili i loko o ka wahi hoʻomanaʻo ʻikepili, kahi e komo pono ai.

Microchip Unified Libraries All MPLAB E kaʻana like nā mea hui XC i kahi Microchip Unified Standard Library, i loaʻa i kēia manawa me kēia hoʻokuʻu ʻana o MPLAB XC8. ʻO ka MPLAB® XC8 C Mea Hoʻopili
Ke alakaʻi o ka mea hoʻohana no AVR® MCU ʻaʻole komo hou i nā palapala no kēia mau hana maʻamau. Hiki ke loaʻa kēia ʻike i kēia manawa ma ka Microchip Unified Standard Library Reference Guide. E hoʻomaopopo ʻaʻole i loaʻa hou kekahi mau hana i wehewehe ʻia e avr-libc. (E nana Nā hana waihona.)
akamai I0 Ma ke ʻano o nā hale waihona puke hoʻohui hou, ua hana maʻamau ʻia nā hana JO i nā ʻohana printf a me scanf i kēlā me kēia hale, e pili ana i ka hoʻohana ʻana o kēia mau hana i ka papahana. Hiki i kēia ke hōʻemi nui i nā kumuwaiwai i hoʻohana ʻia e kahi papahana.
Koho kōkua ʻo Smart I0 I ka nānā ʻana i nā kelepona i nā hana I0 akamai (e like me ka printf () a i ʻole scanf ()), ʻaʻole hiki i ka mea hōʻuluʻulu ke hoʻoholo i nā manawa a pau mai ke kaula hōʻano a i ʻole ke kuhi ʻana mai nā manaʻo i kēlā mau kikoʻī hoʻololi i koi ʻia e ke kelepona. Ma mua, ʻaʻohe manaʻo o ka mea hōʻuluʻulu a hōʻoia i ka hoʻopili ʻana i nā hana 10 holoʻokoʻa i ke kiʻi papahana hope loa. Ua hoʻohui ʻia kahi koho hou – msma rt-io- format=fmt i hiki i ka mea hōʻuluʻulu ke hoʻomaopopo ʻia e ka mea hoʻohana i nā mea kikoʻī hoʻololi i hoʻohana ʻia e nā hana I0 akamai nona ka hoʻohana ʻana he ambiguous, e pale ana i nā hana maʻamau 10 lōʻihi loa mai ka pili ʻana. (E nana akamai-io-format Koho no nā kikoʻī hou aku.)
Ke kau nei i nā ʻāpana maʻamau Ma mua, ua kau ka -W1, -section-start koho i ka ʻāpana i kuhikuhi ʻia ma ka helu i noi ʻia i ka wā i wehewehe ai ka mea loulou i kahi ʻāpana hoʻopuka me ka inoa like. Inā ʻaʻole ia ka hihia, ua waiho ʻia ka ʻāpana ma kahi helu i koho ʻia e ka mea hoʻopili a ua mālama ʻole ʻia ke koho. I kēia manawa e hoʻohanohano ʻia ke koho no nā ʻāpana maʻamau a pau, ʻoiai inā ʻaʻole i wehewehe ka palapala linker i ka ʻāpana. E hoʻomaopopo naʻe, no nā ʻāpana maʻamau, penei . kikokikona, . bss a i ʻole . ʻikepili, ʻO ka mea hoʻokaʻawale maikaʻi loa e loaʻa iā ia ka mana piha ma luna o kā lākou kau ʻana, a ʻaʻohe hopena o ke koho. E hoʻohana i ka -wl, - ʻāpana = addr koho, e like me ia i wehewehe ʻia ma ke alakaʻi o ka mea hoʻohana.

3.4. Helu 2.32
Loaʻa me kahi laikini hoʻopili PRO, hiki ke hoʻohana ʻia ka hiʻohiʻona alakaʻi hoʻopaʻa ʻana no ka hoʻohālikelike ʻana i ka hohonu kiʻekiʻe o kēlā me kēia waihona i hoʻohana ʻia e kahi papahana. Hoʻokumu a kālailai ʻo ia i ka pakuhi kelepona o kahi papahana, hoʻoholo i ka hoʻohana ʻana i ka hoʻohana ʻana o kēlā me kēia hana, a hoʻopuka i kahi hōʻike, kahi e hiki ai ke ʻike i ka hohonu o nā waihona i hoʻohana ʻia e ka papahana.
Hoʻohana ʻia kēia hiʻohiʻona ma o ke koho laina kauoha -mchp-stack- hoʻohana. Paʻi ʻia kahi hōʻuluʻulu o ka hoʻohana ʻana ma hope o ka hoʻokō ʻana. Loaʻa kahi hōʻike kikoʻī kikoʻī ma ka palapala ʻāina file, hiki ke noi ʻia ma ke ʻano maʻamau.
Loaʻa ke kākoʻo kākoʻo mea hou no kēia mau ʻāpana AVR: ATTINY427, ATTINY424, ATTINY426, ATTINY827, ATTNY824, ATTINY826, AVR32DB32, AVR64DB48, AVR64DB64, AVR64DB28, AVR32DB28, AVR64DB32, AVR32DB48, AVRXNUMXDBXNUMX, AVRXNUMXDBXNUMX
ʻAʻole loaʻa hou ke kākoʻo kākoʻo no nā ʻāpana AVR: AVR 16DA28, AVR16DA32 a, AVR16DA48.

3.5. Helu 2.31 ʻAʻole.
3.6. Helu 2.30
Koho hou no ka pale ʻana i ka hoʻomaka ʻana o ka ʻikepili ʻO kahi koho hoʻokele -mno-data-init hou e pale ai i ka hoʻomaka ʻana o ka ʻikepili a me ka holoi ʻana i nā ʻāpana bss. Hana ia ma ke kāohi ʻana i ka puka o ka do_copy_data a me nā hōʻailona do_clear_bss i ka hui files, ʻo ia ka mea e pale ai i ka hoʻokomo ʻana i kēlā mau hana maʻamau e ka mea hoʻopili.
Hoʻonui i ka manaʻo maikaʻi Ua hana ʻia kekahi mau mea hoʻomaikaʻi maikaʻi, me ka wehe ʻana i nā ʻōlelo kuhikuhi hoʻihoʻi hou, ka wehe ʻana i kekahi mau lele ma hope o ke aʻo skip-if-bit-is, a hoʻomaikaʻi i ka abstraction kaʻina hana a me ka hiki ke hoʻololi i kēia kaʻina hana.
Loaʻa nā koho ʻē aʻe i kēia manawa e hoʻomalu i kekahi o kēia mau optimizations, kikoʻī -fsection-anchors, e hiki ai ke komo i nā mea static e hana ʻia e pili ana i hoʻokahi hōʻailona; -mpa-iterations =n, ka mea e hiki ai ke hoololi i ka helu o ke kaʻina hana abstraction mai ka paʻamau o 2; a, -mpa-callcost-shortcal 1, ka mea e hana hou aʻe koʻikoʻi kaʻina hana abstraction, me ka manaolana e hiki i ka mea hoʻopili ke hoʻomaha i nā kelepona lōʻihi. Hiki i kēia koho hope ke hoʻonui i ka nui o ke code inā ʻaʻole ʻike ʻia nā manaʻo kumu.
Hou kākoʻo mea hana Loaʻa ke kākoʻo no nā ʻāpana AVR aʻe: AVR16DA28, AVR16DA32, AVR16DA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR128DA28, AVR128DB32, AVR128DB48 VR128DB64.
Kākoʻo mea hoʻihoʻi ʻia ʻAʻole loaʻa ke kākoʻo no nā ʻāpana AVR penei: ATA5272, ATA5790, ATA5790N, ATA5791, ATA5795, ATA6285, ATA6286, ATA6612C, ATA6613C, ATA6614Q, ATA6616C, ATA6617C, ATA664251C, ATAXNUMXC, ATAXNUMXC, ATAXNUMXC

3.7. Mana 2.29 (Hoʻokuʻu Palekana Hana)
Poʻomanaʻo file no ka mea hoʻopili bunt-ins No ka hōʻoia i hiki i ka mea hōʻuluʻulu ke hoʻokō i nā kikoʻī ʻōlelo e like me MISRA, ka poʻomanaʻo file, i komo 'akomi 'ia e , ua hōʻano hou ʻia. Aia kēia poʻomanaʻo i nā prototypes no nā hana i kūkulu ʻia, e like me ke kūkulu ʻia i_avr_nop ( ) a me _builtin_avr_delay_cycles (). ʻAʻole kūpono paha kekahi mau mea i kūkulu ʻia i ka MISRA; Hiki ke kāpae ʻia kēia mau mea ma ka hoʻohui ʻana i ka wehewehe XC_STRICT MISRA i ka laina kauoha compiler. Ua hōʻano hou ʻia nā mea i kūkulu ʻia a me kā lākou mau ʻōlelo e hoʻohana i nā ʻano ākea paʻa.

3.8. Helu 2.20
Hou kākoʻo mea hana Loaʻa ke kākoʻo no kēia mau ʻāpana AVR: ATTINY 1624, ATTINY1626, a me ATTINY 1.
ʻOi aku ka maikaʻi o ka hoʻokaʻawale kūpono Ua hoʻomaikaʻi ʻia ka mea hoʻokaʻawale kūpono maikaʻi loa (BFA) i ka compiler i hoʻokaʻawale ʻia nā ʻāpana i kahi kauoha e ʻae ai i ka hoʻonui maikaʻi ʻana. Kākoʻo ka BFA i nā wahi kikoʻī i kapa ʻia a ʻoi aku ka maikaʻi o ka hoʻomaka ʻana i ka ʻikepili.
Hoʻomaikaʻi i ke kaʻina hana abstraction Ke hana ʻia nei ka hoʻoponopono abstraction kaʻina hana i nā kaʻina code hou aʻe. ʻO nā kūlana mua kahi i hoʻonui ʻia ai ka nui o ke code ua hoʻopuka ʻia ma ka hoʻomaopopo ʻana i ke code optimization i ke kaʻina ohi ʻōpala o ka mea loulou.
Ka 'ole o ka AVR Assembler ʻAʻole hoʻokomo hou ʻia ka AVR Assembler me kēia māhele. 3.9. Helu 2.19 (Palekele Hana Hoʻokuʻu)
ʻAʻohe.
3.10. Helu 2.10
Hoʻopili Code Loaʻa i kēia hoʻokuʻu kahi hiʻohiʻona uhi code e hoʻomaʻamaʻa ana i ka nānā ʻana i ka nui o ka hoʻokō ʻia ʻana o ke code kumu o kahi papahana. E hoʻohana i ke koho -mcodecov=ram e hiki ai. Ma hope o ka hoʻokō ʻana i ka papahana ma kāu hāmeʻa, e hōʻiliʻili ʻia ka ʻike uhi code i loko o ka hāmeʻa, a hiki ke hoʻololi ʻia a hōʻike ʻia e ka MPLAB X IDE ma o kahi plugin uhi code. E ʻike i ka palapala IDE no ka ʻike e pili ana i kēia plugin hiki ke loaʻa.
Hiki ke hoʻohana ʻia ka #pragma nocodecov no ka wehe ʻana i nā hana ma hope mai ka hoʻopaʻa ʻana. Pono e hoʻohui i ka pragma i ka hoʻomaka o ka file e kāpae i kēlā holoʻokoʻa file mai ka nānā 'ana i ka uhi. ʻO kahi ʻē aʻe, hiki ke hoʻohana ʻia ka _attribute_ ( (nocodecov)) no ka wehe ʻana i kahi hana kikoʻī mai ka loiloi uhi.
Wehewehe mea files Mea hana hou file i kapa ʻia ʻo avr_chipinfo.html aia ma ka papa kuhikuhi docs o

ka puunaue compiler. ʻO kēia file papa inoa i nā mea hana a pau i kākoʻo ʻia e ka mea hoʻopili. Kaomi ma ka inoa o ka mea hana, a e wehe ia i kahi ʻaoʻao e hōʻike ana i nā hoʻonohonoho bit hoʻonohonoho ʻae ʻae ʻia no kēlā hāmeʻa, me ka ex.amples.

Hoʻokaʻawale kaʻina hana Ua hoʻohui ʻia i ka mea hōʻuluʻulu nā ʻōkuhi abstraction kaʻina hana, kahi e pani ai i nā poloka maʻamau o ka code hui me nā kelepona i kahi kope i unuhi ʻia o kēlā poloka. Hana ʻia kēia e kahi noi ʻokoʻa, i kāhea ʻia e ka mea hoʻopili i ke koho ʻana i ka pae 2, 3 a i ʻole. s optimizations. Hoʻemi kēia mau mea hoʻonui i ka nui o ka code, akā hiki ke hōʻemi i ka wikiwiki o ka hoʻokō a me ka debugability code.
Hiki ke hoʻopau ʻia ka abstraction kaʻina hana ma nā pae hoʻonui kiʻekiʻe me ka hoʻohana ʻana i ke koho -mno-pa, a i ʻole hiki ke hoʻohana ʻia ma nā pae haʻahaʻa haʻahaʻa (e pili ana i kāu laikini) me ka hoʻohana ʻana -mpa. Hiki ke pio no kekahi mea file me ka hoʻohana ʻana -mno-pa-on-f ile=fileinoa, a i ʻole ke pio no kahi hana ma ka hoʻohana ʻana -mno-pa-onfunotion=f unction.
I loko o kāu code kumu, hiki ke hoʻopau ʻia ka abstraction kaʻina hana no kahi hana ma ka hoʻohana ʻana i ka attribute_ ( (nopa) ) me ka wehewehe ʻana o ka hana, a i ʻole ma ka hoʻohana ʻana i ka nopa, e hoʻonui ana i _attribute_ ( (nopa, noinline) ) a pēlā e pale ai i ka hana inlining mai ka hana ʻana a ma laila ka abstraction o ke code inlined.
Kākoʻo kī kī ma pragma Hiki ke hoʻohana ʻia ka #pragma config e kuhikuhi i nā ʻāpana laka AVR a me nā ʻāpana hoʻonohonoho ʻē aʻe. E nānā i ka avr_chipinfo.html file (i ʻōlelo ʻia ma luna) no ka hoʻonohonoho ʻana/no ka hoʻohana ʻana me kēia pragma.
Hou kākoʻo mea hana Loaʻa ke kākoʻo no kēia mau ʻāpana: AVR28DAl28, AVR64DAl28, AVR32DAl28, a me AVR48DAl28.

3.11. Helu 2.05
Nā mea hou aku no kāu kālā ʻO ka mana macOS o kēia mea hoʻopili a me ka luna laikini he noi 64-bit i kēia manawa. E hōʻoia kēia e hoʻokomo a holo ka mea hōʻuluʻulu me ka ʻole o nā ʻōlelo aʻo i nā mana hou o macOS.
Const mea i loko o ka hoʻomanaʻo papahana Hiki i ka mea hōʻuluʻulu ke hoʻokomo i nā mea const-qualified i ka polokalamu Flash memory, ma mua o ka loaʻa ʻana o kēia mau mea ma RAM. Ua hoʻololi ʻia ka mea hōʻuluʻulu i mālama ʻia ka ʻikepili cons t-qualified i loko o ka hoʻomanaʻo flash program a hiki ke kiʻi pololei ʻia kēia ʻikepili me ka hoʻohana ʻana i nā ʻōlelo aʻoaʻo hoʻomanaʻo papahana kūpono. Hoʻohana ʻia kēia hiʻohiʻona hou ma ka paʻamau akā hiki ke hoʻopau ʻia me ka hoʻohana ʻana i ke koho -mno-const-data-in-progmem. No avrxmega3 a me avrtiny architectures, ʻaʻole koi ʻia kēia hiʻohiʻona a paʻa mau ʻia, no ka mea, ua paʻi ʻia ka hoʻomanaʻo o ka polokalamu i loko o ka wahi kikoʻī ʻikepili no kēia mau mea hana.
Maʻamau no ka manuahi ʻAe nā mana ʻole (Free) o kēia mea hoʻopili i ka hoʻonui ʻana a hiki i ka pae 2. E ʻae kēia i ka hoʻopuka like, ʻoiai ʻaʻole like, i ka mea i hiki ma mua me ka hoʻohana ʻana i kahi laikini maʻamau.
Welina mai iā AVRASM2 Hoʻokomo ʻia ka AVRASM2 assembler no nā polokalamu 8-bit i ka XC8 compiler installer. ʻAʻole hoʻohana ʻia kēia hui e ka XC8 compiler, akā loaʻa no nā papahana e pili ana i ke kumu o ka hui kākau lima.
Hou kākoʻo mea hana Loaʻa ke kākoʻo no kēia mau ʻāpana: ATMEGA1608, ATMEGA 1609, ATMEGA808, a me ATMEGA809.

3.12. Helu 2.00
Keaukaha kiʻekiʻe ʻO kahi mea hoʻokele hou, i kapa ʻia ʻo xc8 -cc, ke noho nei ma luna o ka mea hoʻokele avr-gcc ma mua a me ka mea hoʻokele xc8, a hiki iā ia ke kāhea i ka compiler kūpono e pili ana i ke koho ʻana o ka mea hoʻohana. Ua ʻae kēia mea hoʻokele i nā koho ʻano GCC, i unuhi ʻia a i ʻole i hāʻawi ʻia i ka mea hōʻuluʻulu e hoʻokō ʻia ana. Hiki i kēia mea hoʻokele ke hoʻohana i nā koho like me nā semantics like me kekahi pahuhopu AVR a i ʻole PIC a no laila ke ala i ʻōlelo ʻia e kāhea ai i ka mea hoʻopili. Inā makemake ʻia, hiki ke kāhea pololei ʻia ka mea hoʻokele avr-gcc kahiko me ka hoʻohana ʻana i nā koho kaila kahiko i ʻae ʻia i nā mana hoʻonohonoho mua.
Kūlike C maʻamau Hiki i kēia mea hōʻuluʻulu ke hoʻohālikelike i ka MPLAB Common C Interface, e ʻae ana i ka code source e maʻalahi i ka ported ma nā MPLAB XC compilers. Ke noi nei ke koho -mext=cci i kēia hiʻona, e hiki ai i ka syntax ʻē aʻe no nā hoʻonui ʻōlelo he nui.
ʻO ka mea hoʻokele hale waihona puke hou ʻo A Ua hoʻonoho ʻia ka mea hoʻokele hale waihona puke hou ma luna o ka hale waihona puke PIC mua a me ka hale waihona puke AVR avr-ar. ʻAe kēia mea hoʻokele i nā koho GCC-archiver-style, i unuhi ʻia a i ʻole i hāʻawi ʻia i ka hale waihona puke e hoʻokō ʻia ana. Hiki i ka mea hoʻokele hou ke hoʻohana i nā koho like me nā semantics like e hana ai a hoʻopololei paha i kekahi waihona PIC a i ʻole AVR. file a ʻo ia ke ala i ʻōlelo ʻia e kāhea aku i ka hale waihona puke. Inā makemake ʻia no nā papahana hoʻoilina, hiki ke kāhea pololei ʻia ka hale waihona puke ma mua me ka hoʻohana ʻana i nā koho kaila kahiko i ʻae ʻia i nā mana hōʻuluʻulu mua.

Nā pilikia o ka neʻe ʻana

ʻO kēia mau hiʻohiʻona aʻu i mālama ʻokoʻa ʻia e ka mea hoʻopili. Pono paha kēia mau hoʻololi i ka hoʻololi ʻana i kāu code kumu inā e lawe ana i ka code i kēia mana hoʻohui. Hōʻike ka helu mana ma nā poʻomanaʻo i ka mana hōʻuluʻulu mua e kākoʻo i nā hoʻololi e hiki mai ana.

4.1. Mana 2.39 (Hoʻokuʻu Palekana Hana)
ʻAʻohe.
4.2. Helu 2.36 ʻAʻohe.
4.3. Manao 2.35
Ka lawelawe ʻana i nā kumu string-to (XC8-2420) No ka hōʻoia ʻana i ka kūlike me nā mea hōʻuluʻulu XC ʻē aʻe, ʻo ka XC8 string-to nā hana, e like me strtol () a me nā mea ʻē aʻe, ʻaʻole e hoʻāʻo hou e hoʻololi i kahi kaula hoʻokomo inā ʻoi aku ka nui o ke kumu i ʻōlelo ʻia ma mua o 36 a e hoʻonoho iā errno iā EINVAL. ʻAʻole kuhikuhi ka maʻamau C i ke ʻano o nā hana ke hoʻonui ʻia kēia kumu waiwai.
ʻAʻole kūpono ka wikiwiki wikiwiki Hoʻohana ʻia nā loiloi abstraction kaʻina hana i ke koho ʻana i nā loiloi pae 3 (-03). Hoʻemi ʻia kēia mau hoʻoponopono ʻana i ka nui o ke code me ka wikiwiki o ka code, no laila ʻaʻole pono e hana ʻia. Hiki ke ʻike ʻia nā ʻokoʻa o ka nui o nā code a me ka wikiwiki o ka hoʻokō ʻana i nā papahana e hoʻohana ana i kēia pae hoʻokō.
Hana waihona ʻO ke code no ka nui o nā hana waihona C maʻamau i kēia manawa mai ka Microchip's Unified Standard Library, hiki ke hōʻike i nā ʻano ʻokoʻa i kekahi mau kūlana i hoʻohālikelike ʻia i ka waihona avr-libc mua. No exampʻaʻole pono e hoʻopili i ka waihona 1printf flt (-1printf_flt koho) e hoʻohuli i ke kākoʻo I0 i hoʻopaʻa ʻia no nā mea kikoʻī o ka float-format. ʻO nā hiʻohiʻona akamai 10 o ka Microchip Unified Standard Library e hoʻololi i kēia koho. Eia hou, ʻaʻole pono ka hoʻohana ʻana i nā hana maʻamau _P no nā string a me nā hana hoʻomanaʻo (e laʻa me strcpy_P ( ) etc..) e hana ana i nā kaula const i ka uila. E hana pololei nā hana maʻamau C (eg strcpy 0 ) me ia ʻikepili ke hoʻohana ʻia ka hiʻohiʻona const-data-in-program-memory.

4.4. Helu 2.32
ʻAʻohe.
4.5. Helu 2.31
ʻAʻohe.
4.6. Helu 2.30
ʻAʻohe.
4.1. Mana 2.29 (Hoʻokuʻu Palekana Hana)
ʻAʻohe.
4.2. Helu 2.20
Hoʻololi ʻia ka hoʻolālā DFP Ua manaʻo ka mea hōʻuluʻulu i kahi hoʻolālā ʻokoʻa i hoʻohana ʻia e DFPs (Device Family Packs). ʻO ke ʻano kēia, ʻaʻole hiki i kahi DFP kahiko ke hana me kēia hoʻokuʻu ʻana, a ʻaʻole hiki i nā mea hōʻuluʻulu kahiko ke hoʻohana i nā DFP hou loa.

4.3. Mana 2.19 (Hoʻokuʻu Palekana Hana)
ʻAʻohe.
4.4. Helu 2.10 ʻAʻole
4.5. Helu 2.05
Nā mea Const i ka hoʻomanaʻo papahana E hoʻomaopopo ʻia e waiho ʻia nā mea const-qualfiied ma ke ʻano maʻamau a komo i ka hoʻomanaʻo papahana (e like me ka mea i wehewehe ʻia nona). Hoʻopilikia kēia i ka nui a me ka wikiwiki o ka hoʻokō ʻana o kāu papahana, akā pono e hōʻemi i ka hoʻohana ʻana i ka RAM. Hiki ke hoʻopau ʻia kēia hiʻohiʻona, inā makemake ʻia, me ka hoʻohana ʻana i ke koho -mnocons t-data-in-pr ogmem.

4.6. Helu 2.00
Nā fuse hoʻonohonoho Hiki ke hoʻolālā ʻia nā fuse hoʻonohonoho hāmeʻa me ka hoʻohana ʻana i kahi pragma config a ukali ʻia e nā hui hoʻonohonoho-waiwai e kuhikuhi i ke kūlana fuse, laʻa #pragma config WDTON = SET #pragma config BODLEVEL = BODLEVEL_4V3
Nā mea āpau a me nā hana Hiki ke waiho ʻia nā mea a me nā hana ma kahi kikoʻī kikoʻī i ka hoʻomanaʻo me ka CCI _at (wahi) specifier, for example:
komo
int foobar ma (0)0300100);
char at(0x250) getID(int offset) ( Pono ka hoʻopaʻapaʻa i kēia mea kikoʻī he mea mau e hōʻike ana i ka helu wahi e kau ʻia ai ka byte mua a i ʻole ke aʻo.
Syntax hana hoʻopau hou ʻO ka compiler ʻae i kēia manawa i ka CCI _interrupt (helu) mea kikoʻī e hōʻike i nā hana C he mau mea hoʻopili. Lawe ka mea kikoʻī i kahi helu hoʻopau, no ka example:

Nā pilikia paʻa

ʻO kēia mau hoʻoponopono i hana ʻia i ka mea hoʻopili. Hiki iā lākou ke hoʻoponopono i nā hewa i loko o ke code i hana ʻia a hoʻololi paha i ka hana o ka mea hoʻopili i ka mea i manaʻo ʻia a i kuhikuhi ʻia e ke alakaʻi o ka mea hoʻohana. Hōʻike ka helu mana ma nā poʻomanaʻo i ka mana hōʻuluʻulu mua i loaʻa nā hoʻoponopono no nā pilikia e hiki mai ana. ʻO ka (mau) lepili i hoʻopaʻa ʻia ma ke poʻo inoa, ʻo ia ka hōʻike ʻana o kēlā pilikia ma ka waihona ʻikepili. Pono paha kēia inā pono ʻoe e hoʻokaʻaʻike i ke kākoʻo.
E hoʻomanaʻo, ua hoʻoponopono ʻia kekahi mau pilikia kikoʻī i ka Device Family Pack (DR)) pili me ka mea hana. E ʻike i ka MPLAB Pack Manager no ka ʻike e pili ana i nā hoʻololi i hana ʻia i nā DFP a e hoʻoiho i nā pūʻolo hou loa.

5.1. Mana 2.39 (Hoʻokuʻu Palekana Hana)
ʻAʻohe.
5.2. Helu 2.36
Hapa i ka wā e lohi ai (XCS2774) ʻO nā hoʻololi liʻiliʻi i ka paʻamau Free mode optimizations ua pale i ka pelu mau ʻana i nā ʻōlelo operand i ka lohi i nā hana i kūkulu ʻia, a no laila e mālama ʻia lākou ma ke ʻano he mau ʻole a hoʻomaka i ka hewa. i kūkulu ʻia i loko o_avr_delay_cycles manaʻo i ka manawa hōʻuluʻulu integer mau.

5.3. Helu 2.35
pili haawina me ka hoʻohana ʻana iā _at (XCS2653) ʻAʻole i holo pololei ka hoʻokaʻawale ʻana o nā mea he nui i ka ʻāpana me ka inoa like a me ka hoʻohana ʻana iā _at (). No example:
const char arrl[ ] attribute ('āpana(".mysec") ma (0x500) = (OxAB, OxCD);
const char arr2[ ] attribute (sectionr.mysec”)= (OxEF, OxFE);
pono e kau i arr2 ma hope koke iho o ka arri.
E wehewehe ana i nā helu hoʻomaka ʻāpana (XCS2650) Ka -wl, -section-start koho ʻaʻole i hoʻokomo i nā ʻāpana i ka helu hoʻomaka i koho ʻia. Ua hoʻoponopono ʻia kēia pilikia no nā ʻāpana i kapa ʻia; akā naʻe, ʻaʻole ia e hana no nā ʻāpana maʻamau, e like me . kikokiko a i ʻole . bss, pono e kau ʻia me ka a -wl, -T koho.
Hāʻule ka Linker i ka wā hoʻomaha (XCS2647) I ka manawa ua hoʻohana ʻia ka -mrelax optimization a he code a i ʻole nā ​​​​ʻāpana ʻikepili i kūpono ʻole i ka hoʻomanaʻo i loaʻa, hāʻule ka loulou. I kēia manawa, i kēlā ʻano kūlana, hoʻopuka ʻia nā memo hewa.
ʻAʻole ʻaʻolehāʻulehope (XCS2646) Ka -ʻaʻole i hoʻokō pololei ʻia ke koho nofallback, ʻaʻole i kākau ʻia. Hiki ke koho ʻia i kēia manawa no ka hōʻoia ʻana ʻaʻole e hāʻule ka mea hōʻuluʻulu i kahi hoʻonohonoho haʻahaʻa haʻahaʻa inā ʻaʻole laikini ka mea hoʻohui, a e hoʻopuka i kahi hewa.
ʻAʻole kūpono ka wikiwiki wikiwiki (XCS2637) Hoʻohana ʻia nā loiloi abstraction kaʻina hana i ke koho ʻana i nā loiloi pae 3 (-03). Hoʻemi ʻia kēia mau hoʻoponopono ʻana i ka nui o ke code me ka wikiwiki o ka code, no laila ʻaʻole pono e hana ʻia.
Loaʻa ʻino i ka EEPROM (XCS2629) ʻAʻole i hana pololei ka eeprom_read_block ma nā polokalamu Xmega i ka wā i hoʻohana ʻia ai ke koho -mconst-data-in-progmem (ʻo ia ke kūlana paʻamau), a laila ʻaʻole heluhelu pololei ʻia ka hoʻomanaʻo EEPROM.
ʻAʻole kūpono ka hoʻokaʻawale hoʻomanaʻo (X03-2593, XC8-2651) I ka manawa ke koho -Ttext a i ʻole -Tdata linker (no ka example i hele ma ka hoʻohana ʻana i kahi koho hoʻokele -wl) ua kuhikuhi ʻia, ua hōʻano hou ʻia ke kumu kikokikona / ʻikepili pili; akā naʻe, ʻaʻole i hoʻoponopono ʻia ka helu hope e like me ka mea i hiki ke alakaʻi i ka ʻāina ma mua o ka laulā hoʻomanaʻo o ka mea hoʻohana.
Hāʻule me ka hana i hoʻohālikelike ʻia (XC8-2580) Ua hāʻule ka mea hōʻuluʻulu inā hoʻolaha ʻia kahi hana me ka hoʻohana ʻana i nā mea hoʻopau, hōʻailona a i ʻole nmi mau ʻano, e laʻa, _attribute_ ( (hōʻailona, ​​interrupt)).
Loaʻa ʻole ke code interrupt ATtiny (XC8-2465) I ka wā e kūkulu ʻia ai nā polokalamu ATtiny a ua pio ka hoʻoponopono ʻana (-00), ua hoʻāla paha nā hana interrupt i ka operand ma waho o nā memo assembler.
ʻAʻole ʻae ʻia nā koho (XC8-2452) Ke hoʻohana nei i ka -wl koho me nā koho linker i hoʻokaʻawale ʻia i ke koma, ʻaʻole i hāʻawi ʻia nā koho loulou a pau i ka loulou.
Ua hewa ka heluhelu ʻole ʻana i ka hoʻomanaʻo polokalamu (X03-2450) I kekahi mau manawa, ua hana ka mea hoʻopili. he hewa i loko (insn ʻike ʻole ʻia) i ka heluhelu ʻana i kahi waiwai paita ʻelua mai kahi kuhikuhi i ka hoʻomanaʻo papahana

5.4. Helu 2.32
ʻAʻole hiki ke komo ʻelua i ka waihona (X03-2381) ʻO ke kāhea ʻana i ka mana Windows o ka waihona waihona waihona xc8-ar.exe i ka lua o ka manawa e komo ai i kahi waihona waihona i loaʻa ʻaʻole hiki ke hoʻololi i ka memo hewa.

5.5. Helu 2.31
ʻAʻole wehewehe hāʻule ka mea hoʻopili (XC8-2367) Ke holo nei Windows nā paepae i hoʻonohonoho ʻia ka papa kuhikuhi no ka manawa pōkole i kahi ala i loaʻa kahi kiko '.' ʻano, ʻaʻole hiki i ka mea hōʻuluʻulu ke hoʻokō.

5.6. Helu 2.30
Ua kuhi hewa ʻia nā lepili honua ma hope o ka wehewehe ʻana (XC8-2299) ka helu hui lima kākau lima e kau ana i ka honua. ʻAʻole paha i hoʻonohonoho hou ʻia nā lepili i loko o nā kaʻina hui i helu ʻia e ke kaʻina hana.
He hoʻomaha hoʻomaha (XC8-2287) Ke hoʻohana nei i ka - hoʻomaha hiki i ke koho ke hāʻule i ka loulou i ka wā ua ho'āʻo ka hoʻomaha hoʻomaha ʻana o ka huelo e wehe i ke aʻo ʻana ʻaʻole i pau ka a pauku.
Hoʻopilikia i ka wā e koho ai i nā lepili ma ke ʻano he waiwai (XC8-2282) Code me ka hoʻohana ʻana i ka "Labels as values" GNU C ʻO ka hoʻonui ʻia ʻana o ka ʻōlelo ua hāʻule paha ke kaʻina hana abstraction optimizations, me ka outlined VMA range spns fixup error.
ʻAʻole pēlā const (XC8-2271) ʻO nā prototypes no strstr () a me nā hana ʻē aʻe mai ʻaʻole e hōʻike hou i ka const qualifier non-standard ma nā kuhikuhi string i hoʻihoʻi ʻia ke pio ka hiʻohiʻona -mconst-data- inprogmem. E hoʻomanaʻo me nā mea avrxmega3 a me avrtiny, hiki ke hoʻohana mau ʻia kēia hiʻohiʻona.
Nalo nā mea hoʻomaka (XC8-2269) Inā ʻoi aku ma mua o hoʻokahi ʻano hoʻololi i kahi unuhi Ua waiho ʻia ka ʻāpana i kahi ʻāpana (hoʻohana pauku or ʻano ʻano ( (ʻāpana) )), a ʻo ka mua o ia ʻano hoʻololi i hoʻomaka ʻia ʻaʻole i loaʻa kahi mea hoʻomaka, ua nalowale nā ​​mea hoʻomaka no nā mea hoʻololi ʻē aʻe ma ka ʻāpana unuhi like i waiho ʻia ma ka ʻāpana like.

5.1. Mana 2.2 9 (Hoʻokuʻu Palekana Hana) ʻAʻohe. 
5.2. Helu 2.20
Hapa me nā kauoha lōʻihi (XC8-1983) I ka hoʻohana ʻana i kahi pahu hopu AVR, ua kū paha ka mea hoʻopili me ka lilt ʻaʻole i ʻike ʻia he hewa, inā he nui loa ka laina kauoha a loaʻa nā huaʻōlelo kūikawā e like me nā huaʻōlelo, backslashes, etc.
ʻAʻole i hāʻawi ʻia ka pauku rodata i hāʻawi ʻole ʻia (XC8-1920) ʻAʻole i hāʻawi ka mea hoʻopili AVR i ka hoʻomanaʻo no nā ʻāpana rodata maʻamau i ka wā e kūkulu ʻia ai no avrxmega3 a me avrtiny architecture, hiki ke hana i nā hewa overlap memory.

5.3. Mana 2.19 (Hoʻokuʻu Palekana Hana)
ʻAʻohe.
5.4. Helu 2.10
Haʻalele ka hoʻoneʻe ʻana (XC8-1891) ʻO ka mea hoʻokaʻawale kūpono maikaʻi loa e waiho ana i nā 'puka' hoʻomanaʻo ma waena o nā ʻāpana ma hope o ka hoʻomaha hoʻomaha. Ma waho aʻe o ka hoʻokaʻawale ʻana i ka hoʻomanaʻo, ua hoʻonui kēia i ka hiki ke loaʻa nā hemahema relocation linker e pili ana i nā lele pili pili pc a i ʻole ke kelepona ʻana i waho.
ʻAʻole i hoʻololi ʻia nā ʻōlelo aʻoaʻo e ka hoʻomaha (XC8-1889) ʻAʻole i loaʻa ka hoʻomaha hoʻohui no ka lele ʻana a i ʻole ke kāhea ʻana i nā ʻōlelo aʻoaʻo e hiki ke loaʻa nā pahuhopu inā hoʻomaha.
Nalo functionality (XC8E-3 ) He mau wehewehena mai , e like me clock_div_t a me clock_presc ale_s et () , ʻaʻole i wehewehe ʻia no nā polokalamu, me ka ATmega324PB, ATmega328PB, ATtiny441, a me ATtiny841.
ʻAʻole i wehewehe ʻokoʻa ʻia nā macros preprocessor _XC 8_MODE_, XC 8 VERS ION, XC, a me xc8 e ka mea hoʻopili. Loaʻa kēia mau mea i kēia manawa.

5.5. Helu 2.05
Kuʻia ka mea hoʻopili koʻikoʻi (XC8-1822) I ka wā e kūkulu ʻia ai ma lalo o Windows, ua hana ʻia paha kahi hewa o ka mea hoʻopili i loko i ka wā e koho ana i nā code.
ʻAʻole i ʻike ʻia ka nui o ka RAM (XC8-1800, XC8-1796) ʻAʻole i ʻike ʻia e ka mea hoʻopili i nā polokalamu i ʻoi aku ma mua o kēlā RAM i loaʻa i kekahi mau kūlana, e hopena i ka hāʻule ʻana o ka code runtime.
Waiho ʻia ka hoʻomanaʻo flash (XC8-1792) No nā polokalamu avrxmega3 a me avrtiny, ua waiho ʻia paha nā ʻāpana o ka hoʻomanaʻo uila me ka polokalamu ʻole e ka MPLAB X IDE.
ʻAʻole i hoʻokō ʻia ka mea nui (XC8-1788) I kekahi mau kūlana i wehewehe ʻole ʻia ka papahana i nā ʻano hoʻololi honua, ʻaʻole i haʻalele ke code hoʻomaka runtime a ʻaʻole i loaʻa ka hana nui ().
ʻO ka ʻike hoʻomanaʻo hewa ʻole (XC8-1787) No nā polokalamu avrxmega3 a me avrtiny, ke hōʻike nei ka papahana avr-size e ʻai ana ka ʻikepili pupule i ka RAM ma kahi o ka hoʻomanaʻo o ka papahana.
Heluhelu ʻia ka hoʻomanaʻo polokalamu hewa (XC8-1783) Nā papahana i hōʻuluʻulu ʻia no nā polokalamu me ka hoʻomanaʻo papahana i palapala ʻia i loko o ka wahi helu helu ʻikepili a e wehewehe ana i nā mea e hoʻohana ana i ka PROGMEM macro/ʻano i heluhelu paha i kēia mau mea mai ka helu kuhi hewa.
Loaʻa ka hewa kūloko me nā ʻano (XC8-1773) Ua loaʻa ka hewa i loko inā ʻoe i wehewehe i nā mea kuhikuhi me nā hōʻailona _at 0 a i ʻole attribute() ma waena o ka inoa kuhikuhi a me ke ʻano i hoʻopaʻa ʻia, no example, char * _at (0x800150) cp; Hoʻopuka ʻia kahi ʻōlelo aʻo inā loaʻa kēlā code.

Hoʻokō ʻole i ka hana nui (XC8-1780, XC8-1767,XC8-1754) ʻO ka hoʻohana ʻana i nā ʻano hoʻololi EEPROM a i ʻole ka wehewehe ʻana i nā fuse me ka hoʻohana ʻana i ka config pragma ua hewa paha ka hoʻomaka ʻana o ka ʻikepili a i ʻole ka laka ʻana i ka hoʻokō ʻana o ka papahana ma ke code hoʻomaka runtime, ma mua o ka hiki ʻana i ka 0 nui.

Kuʻi hewa me nā mea liʻiliʻi (XC8-1778, XC8-1742) Ua hewa ka lōʻihi fuse o nā mea attiny4/5/9/10120140 i ko lākou poʻo. files e alakaʻi i nā hewa linker i ka wā e hoʻāʻo ai e kūkulu i nā code i wehewehe i nā fuses.

ʻO ka hewa ʻāpana (XC8-1777) Ua hoʻoponopono ʻia kahi hewa ʻāpana ʻokoʻa.

Hāʻule ka mea hui (XC8-1761) Ua hāʻule paha ka avr -as assembler i ka wā i holo ai ka compiler ma lalo o Ubuntu 18.

ʻAʻole holoi ʻia nā mea (XC8-1752) ʻAʻole paha i hoʻomaʻemaʻe ʻia nā mea i hoʻomaka ʻole ʻia e ke code hoʻomaka wā holo.

ʻAʻole mālama ʻia ka ʻōlelo kikoʻī o ka mea paʻi (XC8-1749) ʻO ka ʻAʻole i hana hewa ka compiler i ka wā i hoʻohana ʻia ai nā koho kikoʻī he nui a hōʻike i nā mea like ʻole.

ʻO ka pōʻino hoʻomanaʻo ma ka puʻu (XC8-1748) Ka Ua hoʻonohonoho hewa ʻia ka hōʻailona _heap_start, i hiki ai ke hoʻopōʻino ʻia e ka puʻu.

Kuʻia ka hoʻoneʻe ʻana o ka loulou (XC8-1739) Ua hoʻokuʻu ʻia paha kahi hewa hoʻoneʻe linker i ka wā i loaʻa ai i ka code kahi rjmn a i ʻole rcall me kahi pahuhopu he 4k paita ka mamao.

5.6. Helu 2.00 ʻAʻole.

Nā pilikia i ʻike ʻia

Eia nā palena i ka hana a ka mea hoʻopili. ʻO ia paha nā kaohi coding maʻamau, a i ʻole nā ​​haʻalele ʻana mai ka ʻike i loko o ka manual o ka mea hoʻohana. ʻO ka (mau) lepili i hoʻopaʻa ʻia ma ke kai, ʻo ia ka ʻike o kēlā pilikia ma ka waihona ʻikepili. Pono paha kēia inā pono ʻoe e hoʻokaʻaʻike i ke kākoʻo. ʻO kēlā mau mea i loaʻa ʻole nā ​​lepili, he mau palena ia e wehewehe ana i ka modi operandi a e mau ana ka mana mau loa.
6.1. MPLAB X IDE Hoʻohui
MPLAB IDE hoʻohui Inā hoʻohana ʻia ka Compiler mai MPLAB IDE, a laila pono ʻoe e hoʻokomo i ka MPLAB IDE ma mua o ka hoʻokomo ʻana i ka Compiler.
6.2. Hoʻokumu Code
hewahewa hoʻomaka (XC8-2679) Aia kahi ʻokoʻa ma waena o kahi i waiho ʻia ai nā kumu waiwai mua no kekahi mau mea honua / static byte-nui i loko o ka hoʻomanaʻo ʻikepili a kahi e loaʻa ai nā loli i ka wā holo.
Hoʻonohonoho hewa ʻo strtod i ka endptr (XC8-2652) I nā manawa i loaʻa i kahi kaula kumuhana no ka hoʻololi ʻana e strtod () ka mea i ʻike ʻia he helu lana ma ke ʻano exponential a aia kahi ʻano i manaʻo ʻole ʻia ma hope o kahi ʻano e, a laila ka helu endptr, inā hāʻawi ʻia, e kuhikuhi i ke ʻano ma hope o ka e a ʻaʻole ka e ponoʻī. No example: strtod (“100exy”, endptr);

e hopena i ka endptr e kuhikuhi ana i ke ano x.

Nā kelepona hana hewa ʻole (X03-2628) I kekahi mau manawa, hiki ʻole i nā kelepona hana i hana ʻia ma o kahi kuhikuhi hana i mālama ʻia ma ke ʻano o ka hale.

Hoʻihoʻi ʻo strtof i ka ʻole no nā lana hexadecimal (XC8-2626) Ke hana nei ka waihona strtof () et al a me scanf () et al, e hoʻololi mau i ka helu hexadecimal floating-point ʻaʻole i kuhikuhi i ka exponent i ka ʻole. No example: srtof (“Oxl”, &endptr); e hoʻihoʻi i ka waiwai 0, ʻaʻole 1.
Meka ʻōlelo aʻoaʻo hoʻopaʻa pololei ʻole (XC8-2542, XC8-2541) I kekahi mau manawa, ʻaʻole i hoʻokuʻu ʻia ka ʻōlelo aʻoaʻo aʻoaʻo e pili ana i ka hoʻihoʻi ʻana a i ʻole ka hoʻopaʻa paʻa ʻole i hoʻohana ʻia (ma o ka hoʻohana ʻana i alloca()).
ʻAʻole i loaʻa ka helu hoʻopaʻalua pālua (XC8-2421) Inā ʻoi aku ma mua o hoʻokahi hana interrupt i ke kino hoʻokahi, hiki i ka mea hōʻuluʻulu ke loaʻa ka hopena no kahi hana interrupt e kāhea i kekahi. ʻO kēia ka hopena i ka mālama pono ʻole ʻia o nā papa inoa call-clobbered, a hiki ke hoʻopau ʻia nā mea hoʻopau ma mua o ka holo ʻana o ka epilogue o ka mea nāna e hoʻopau i kēia manawa, hiki ke alakaʻi i ka hemahema code.
Ua ʻike ʻo Const nā mea ʻaʻole i ka hoʻomanaʻo polokalamu (XC8-2408) No nā papahana avrxmega3 a me avrtiny ua hoʻokomo ʻia nā mea const i loko o ka hoʻomanaʻo ʻikepili, ʻoiai ke hōʻike ʻia nei kahi ʻōlelo aʻo ua hoʻokomo ʻia lākou i ka hoʻomanaʻo papahana. ʻAʻole pili kēia i nā polokalamu ʻaʻole i hoʻopaʻa ʻia ka hoʻomanaʻo papahana i loko o ka lumi hoʻomanaʻo ʻikepili, ʻaʻole hoʻi e pili i kekahi mea i hoʻomaka ʻia.
Loaʻa ʻino me ke ala DFP kūpono ʻole (XCS-2376) Inā kāhea ʻia ka mea hoʻopili me kahi ala DFP kūpono ʻole a me kahi 'spec' file aia no ka mea i koho ʻia, ʻaʻole hōʻike ka mea hoʻopili i ka pūʻulu ʻohana nalo a ke koho nei i ka 'spec' file, a laila hiki ke alakaʻi i kahi puka kūpono ʻole. ʻO ka 'spec' files ʻaʻole paha i ʻike hou ʻia me nā DFP i puʻunaue ʻia a ua manaʻo ʻia no ka hoʻohana ʻana me ka hoʻāʻo ʻana o ka mea hoʻopili kūloko wale nō.
ʻAʻole ʻike ʻia ka hoʻomanaʻo ʻana (XC8-1966) ʻAʻole ʻike ka mea hōʻuluʻulu i ka hoʻomanaʻo ʻana o nā mea i hoʻopaʻa ʻia ma kahi helu (ma _at 0) a me nā mea ʻē aʻe e hoʻohana ana i ka _sektaion () specifier a pili i ka helu wahi like.
ʻAʻole i loaʻa nā hana waihona a me _memx (XC8-1763) Ua kapa ʻia ʻo libgcc float functions me ka hoʻopaʻapaʻa ma ka _memx address space hiki ʻole ke hāʻule. E hoʻomaopopo ua kāhea ʻia nā hana maʻamau mai kekahi mau mea hana C, no laila, no exampʻAe, pili kēia code: hoʻihoʻi regFloatVar > memxFloatVar;
Hoʻokō libgcc kaupalena (AVRTC-731) No ka ʻO nā huahana ATTiny4/5/9/10/20/40, ʻo ka hoʻokō ʻana o ka waihona waihona C / Math ma libgcc he palena ʻole a ʻaʻole paha.
Nā palena hoʻomanaʻo papahana (AVRTC-732) Kākoʻo ʻia nā kiʻi hoʻomanaʻo papahana ma mua o 128 kb e ke kaulahao mea hana; akā naʻe, aia nā manawa i ʻike ʻia o ka linker aborts me ka hoʻomaha ʻole a me ka ʻole o ka memo hemahema kōkua ma mua o ka hoʻokumu ʻana i nā stubs hana pono ke hoʻohana ʻia ke koho -mrelax.
Ka palena o ka lewa (AVRTC-733) Kākoʻo ʻia nā wahi helu wahi i kapa ʻia e ka mea hana, ma muli o nā palena i ʻōlelo ʻia ma ka ʻāpana alakaʻi o ka mea hoʻohana Special Type Qualifiers.
Nā ʻāpana manawa Ka ʻAʻole kākoʻo nā hana o ka waihona i ka GMT a ʻaʻole kākoʻo i nā ʻāpana manawa kūloko, no laila e hoʻihoʻi ʻo ia ime 0 i ka manawa like me ka gmtime (), no example.

Palapala / Punawai

MICROCHIP MPLAB XC8 C Compiler Version 2.39 Hoʻokuʻu memo no AVR MCU [pdf] Ke alakaʻi hoʻohana
MPLAB XC8 C Compiler Version 2.39 Hoʻokuʻu memo no AVR MCU, MPLAB XC8 C, Compiler Version 2.39 Hoʻokuʻu memo no AVR MCU, Hoʻokuʻu memo no AVR MCU
MICROCHIP MPLAB XC8 C Compiler Version 2.39 Hoʻokuʻu memo no AVR MCU [pdf] Ke alakaʻi hoʻohana
MPLAB XC8 C Compiler Version 2.39 Hoʻokuʻu memo no AVR MCU, MPLAB XC8 C, Compiler Version 2.39 Hoʻokuʻu memo no AVR MCU, Nā memo no AVR MCU
MICROCHIP MPLAB XC8 C Compiler [pdf] Ke alakaʻi hoʻohana
MPLAB XC8 C Compiler, MPLAB XC8 C, Compiler

Nā kuhikuhi

Waiho i kahi manaʻo

ʻAʻole e paʻi ʻia kāu leka uila. Hōʻailona ʻia nā kahua i makemake ʻia *