logo MICROCHIPMPLAB® XC8 C Compiler Version 2.41 Hoʻokuʻu memo no AVR® MCU
Palapala a ka mea nona

ʻO MPLAB XC8 C Compiler Development Software

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 mau hiʻohiʻona hou a me nā hoʻoponopono bug.
1.2. Lā Hana
ʻO ka lā hana mana o kēia mana compiler ʻo 8 Pepeluali 2023.
1.3. Manao mua
ʻO ka mana MPLAB XC8 C compiler mua he 2.40 i kūkulu ʻia ma 3 Iulai 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 Hui
Ua kākau ʻia a māhele ʻia ka MPLAB XC8 C Compiler no nā mea hana AVR MCUs 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 notarized. Loaʻa ka MPLAB XC Network License Server no nā ʻano ʻōnaehana hana 64-bit, me Microsoft Windows 10 a ma luna; ʻO Ubuntu 18.04 a ma luna; a i ʻole macOS 10.15 a i luna. Hiki ke holo ke kikowaena ma nā ʻōnaehana hana ʻē aʻe e like me ka Windows Server, nā māhele Linux, e like me Oracle® Enterprise Linux® a me Red Hate Enterprise Linux a me nā mana kahiko o nā ʻōnaehana hana i kākoʻo ʻia. Eia naʻe, ʻaʻole i hoʻāʻo ʻia ka MPLAB XC Network License Server ma kēia mau ʻōnaehana hana. Hiki ke holo i ka MPLAB XC Network License Server ma Virtual Machines o ka OS i kākoʻo ʻia me ka hoʻohana ʻana i ka laikini mīkini maʻemaʻe no nā laikini pūnaewele (SW006021-VM). Pau nā mana 32-bit o ka MPLAB XC Network Server e hoʻomaka ana mai ka mana 3.00.
Kākoʻo ʻia nā hāmeʻa
Kākoʻo kēia mea hōʻuluʻulu i nā polokalamu 8-bit AVR MCU āpau i ka manawa o ka hoʻokuʻu ʻana. E nānā (ma ka papa kuhikuhi o ka mea hoʻopili) no ka papa inoa o nā mea i kākoʻo ʻia. Ke papa inoa nei kēia mau faila
avr_chipinfo.html doc configuration bit hoʻonohonoho no kēlā me kēia mea hana.

1.7. 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. Ke kākoʻo nei kēia hoʻokuʻu ʻana o ka MPLAB XC Functional Safety 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.8. 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 Manaʻo ʻ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.8.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, ʻano % temp% i loko o ke kauoha Run (Windows logo key + R).
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.9. Hoʻopili palapala
Hiki 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ā pahu hopu 8-bit AVR, aia i ka MPLAB® XC8 C Compiler User's Guide no AVR® 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ā.

MICROCHIP MPLAB XC8 C Compiler Development Software -

1.10. 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 kipa i ka Microchip's Online Technical Documentation. webpaena. Nā palapala AVR hou a i ʻole hou i kēia hoʻokuʻu:

  • MPLAB® XC8 C Compiler User's Guide for AVR® MCU (ho'oponopono G)
  • AVR® GNU Toolchain i MPLAB® XC8 Migration Guide (hoʻoponopono A)
  • Hexmate User's Guide (hooponopono B)

ʻO ka AVR® GNU Toolchain to MPLAB® XC8 Migration Guide e wehewehe ana i nā loli i ka code source a me ke kūkulu ʻana i nā koho e pono ai ke hoʻoholo ʻoe e neʻe i kahi papahana C-based mai ka AVR 8-bit GNU Toolchain i ka Microchip MPLAB XC8 C Compiler. Hōʻike ka Microchip Unified Standard Library Reference Guide i ke ʻano o ka hana a me ka pili 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 MPLAB® XC8 C Compiler User's Guide no AVR® MCU. Aia nō ka ʻike waihona puke kikoʻī i loko o kēia alakaʻi hōʻuluʻulu.
Inā ʻoe e hoʻomaka wale ana me nā polokalamu 8-bit a me ka MPLAB XC8 C Compiler, aia ka MPLAB® XC8 User's Guide for Embedded Engineers - AVR® MCUs (DS50003108) i ka ʻike e pili ana i ka hoʻonohonoho ʻana i nā papahana ma ka MPLAB X IDE a me ke code kākau no kāu. papahana mua MPLAB XC8 C. Hāʻawi ʻia kēia alakaʻi me ka mea hoʻopili.
Hoʻolālā ʻia ka Hexmate User's Guide no ka poʻe e holo ana iā Hexmate ma ke ʻano he noi kū hoʻokahi.

He aha ka mea hou

ʻO kēia nā hiʻohiʻona AVR-target hou i kākoʻo ʻia 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. Helu 2.41
Kākoʻo Bootrow (XC8-3053) E kau ka mea hoʻopili i ka ʻike o nā ʻāpana me kahi prefix at.bootrow address 0x860000 i loko o ka faila HEX. Hoʻohana ʻia kēia mau ʻāpana no ka hoʻomanaʻo BOOTROW, i hoʻolālā ʻia no ka mālama ʻana i nā kī a me nā ʻike palekana ʻē aʻe e hiki ke loaʻa i kahi bootloader.

Hoʻopau hoʻihoʻi hou (XC8-3048) E hoʻopau ka mea hōʻuluʻulu i kēia manawa i nā ʻōlelo aʻoaʻo i nā hana hoʻihoʻi me ka lele ʻana i ka huelo ke hoʻohana ʻia nā palapala hoʻohui maʻamau. He ʻano loiloi like kēia me ka mea i hana ʻia ma mua, akā ua hana ʻia i kēia manawa ma nā ʻāpana makua ʻole a pau, ʻoiai inā hoʻohana ʻia kahi palapala hoʻohui maʻamau a ʻaʻole i pāʻani ʻia ka papahana hoʻokaʻawale kūpono. Hoʻololi ʻano manawa (XC8-2982, 2932) ʻO ke ʻano waihona waihona maʻamau C99, ua hoʻololi ʻia mai kahi time_t i kahi ʻano, e hāʻawi ana i nā hoʻomaikaʻi code-nui i kekahi mau hana lōʻihi e pili ana i ka manawa, e like me. mktime lōʻihi ʻole ()
Nop hou (XC8-2946, 2945) Ua hoʻohui ʻia ka macro i. Hoʻokomo kēia macro i kahi no- NOP() aʻo hana nop i ka puka.
Hoʻohou iā XCLM (XC8-2944) Ua hoʻonui hou ʻia ka luna laikini i hoʻohana ʻia me ka mea hōʻuluʻulu a ʻoi aku ka pane ʻana i kēia manawa i ka nānā ʻana i nā kikoʻī laikini o ka mea hoʻopili.
Trampnā kelepona olined (XC8-2760) Hiki i ka mea hōʻuluʻulu ke hoʻololi i nā ʻōlelo aʻoaʻo kelepona lōʻihi me nā kelepona pili pōkole i ka wā maʻamau nā ʻano pili o nā ʻōlelo aʻo i waho o ko lākou wahi e hele ai. Ma kēia kūlana, e ho'āʻo ka mea hōʻuluʻulu e pani me nā ʻōlelo aʻoaʻo e kāhea i kahi ʻōlelo aʻo e 'trampoline' hoʻokō i ka helu i makemake ʻia, no ka example: jmp
rcall tramp_foo ; was call foo

rcall tramp_foo

tramp_foo:
jmp foo

Hoʻoponopono ʻia kēia hoʻonui ʻana, a me nā ʻano hoʻololi holoʻokoʻa o ka papahana e ka koho -mrelax.

3.2. Helu 2.40
Loaʻa ke kākoʻo kākoʻo mea hou no nā ʻāpana AVR penei: AT90PWM3, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR64EA28, AVR64EA32, AVR64EA48, AVRXNUMXEAXNUMX, AVRXNUMXEAXNUMX, AVRXNUMXEAXNUMX, AVRXNUMXEAXNUMX.
Hoʻomaikaʻi ʻia ke kaʻina hana Ua hoʻomaikaʻi ʻia ka hāmeʻa hoʻomaʻamaʻa ʻana i ke kaʻina hana (PA) i hiki ke hōʻike ʻia ke code i loaʻa kahi ʻōlelo aʻo kelepona (/). E hana wale kēia i ka call rcall inā ʻaʻole i hoʻohana ʻia ka waihona no ka hāʻawi ʻana i nā hoʻopaʻapaʻa a i ʻole e loaʻa ka waiwai hoʻihoʻi mai ka hana. Hoʻohana ʻia ka waihona i ke kāhea ʻana i kahi hana me kahi papa inoa hoʻopaʻapaʻa hoʻololi a i ʻole ke kāhea ʻana i kahi hana e lawe i nā hoʻopaʻapaʻa ʻoi aku ma mua o nā papa inoa i koho ʻia no kēia kumu. Hiki ke hoʻopau ʻia kēia hiʻohiʻona me ka hoʻohana ʻana i ke koho, a i ʻole hiki ke hoʻopau ʻia ka abstraction kaʻina hana no kahi faila a i ʻole hana ma ka hoʻohana ʻana i ka- a, kēlā me kēia, a i ʻole ma ka hoʻohana ʻana i ke ʻano (specifier) ​​koho me nā hana.
mno-pa-outline-calls -mno-pa-on-file -mno-pa-on-function nopa Code coverage macro Ke wehewehe nei ka mea hōʻuluʻulu i ka macro inā he koho kūpono ʻo __nopa __CODECOV -mcodecov i kuhikuhi ʻia.
Koho hoʻopaʻa hoʻomanaʻo E ʻae ka mea hoʻokele i ke koho xc8-cc -mreserve=space@start: hoʻopau i ke kūkulu ʻana no nā pahuhopu AVR. Mālama kēia koho i ka laulā hoʻomanaʻo i ʻike ʻia ma ka ʻikepili a i ʻole ka lumi hoʻomanaʻo papahana, e pale ana i ka mea loulou mai ka hoʻopili ʻana i nā code a i ʻole nā ​​​​mea ma kēia wahi. Smarter smart IO Ua hana ʻia kekahi mau mea hou i nā hana Smart IO, me nā tweaks maʻamau i ka printf core code, e mālama ana i ka %n hoʻololi kikoʻī ma ke ʻano he ʻokoʻa kūʻokoʻa, e hoʻopili ana i nā hana maʻamau vararg pop ma ke koi, me ka hoʻohana ʻana i nā ʻano ʻikepili pōkole inā hiki ke lawelawe. ʻO nā ʻōlelo hoʻopaʻapaʻa hana IO, a me ka helu ʻana i nā code maʻamau i ka laulā ākea a me ka lawelawe pololei. Hiki i kēia ke hopena i nā code koʻikoʻi a me nā mālama ʻikepili, a me ka hoʻonui ʻana i ka wikiwiki hoʻokō o IO.

3.3. 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.4. Helu 2.36
ʻAʻohe.

3.5. 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 ka pōʻaiapili i hoʻomaikaʻi ʻia ʻO ka koho hou -mcall-isr-prologues e hoʻololi i ke ʻano o nā hana interrupt e mālama 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 ke koho -mgas-isr-prologues hou 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 e hoʻokomo i ka mea loulou i nā ʻikepili const-qualified i hoʻokahi ʻāpana 32k a hoʻomaka koke i ka papa inoa SFR kūpono e hōʻoia i ka paʻi ʻia ʻana o kēia ʻikepili i ka hoʻomanaʻo ʻikepili. wahi, kahi e komo pono ai.
Microchip Unified Standard Libraries E kaʻana like nā MPLAB XC compilers i kahi Microchip Unified Standard Library, i loaʻa i kēia manawa me kēia hoʻokuʻu ʻana o MPLAB XC8. ʻAʻole i hoʻokomo hou ʻia nā palapala no kēia mau hana maʻamau i ka MPLA# XC8 C Compiler User's Guide no AVO MCU. Hiki ke ʻike ʻia kēia ʻike 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 nānā i ka hana Lila.)
ʻO Smart I0 Ma ke ʻano o nā hale waihona puke hui hou, ua hana maʻamau nā hana I0 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 ICI I ka nānā ʻana i nā kelepona i nā hana I0 akamai (e like me ka paʻi f () 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 mea 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 - msmart-io-format=fmt i hiki i ka mea hoʻopili 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 nānā i ke koho smart-io-format 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 kūpono maikaʻi loa e loaʻa ka mana piha ma luna o kā lākou kau ʻana, a ʻaʻohe hopena o ke koho. E hoʻohana i ke koho -ton, -Tsection=addr, e like me ka wehewehe ʻana ma ke alakaʻi o ka mea hoʻohana.
3.6. 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-usage. 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 nā ʻāpana AVR penei: ATTINY427, ATTINY424, ATTINY426, ATTINY827, ATTINY824, ATTINY826, AVR32DB32, AVR64DB48, AVR64DB64, AVR64DB28, AVR32DB28, AVR64DB32, AVR32DB48, AVR16DB28, AVR16DB32 ʻAʻole loaʻa hou ke kākoʻo no nā ʻāpana AVR: AVR16DA48, AVRXNUMXDAXNUMX a, AVRXNUMXDAXNUMX.
3.7. Helu 2.31
ʻAʻohe.
3.8. 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 hoʻopuka o ka ʻikepili do kope a hana i nā hōʻailona bss maopopo 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 aʻoaʻo 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 hou aʻe no ka hoʻomalu ʻana i kekahi o kēia mau loiloi, ʻokoʻa -f section-anchors, e hiki ai ke komo i nā mea static e hana ʻia e pili ana i hoʻokahi hōʻailona; -mpa-iterations=n, e hiki ai ke hoʻololi i ka helu o nā kaʻina hana abstraction mai ka paʻamau o 2; a, -mpa-callcost-shortcall, ka mea e hana hou aʻe koʻikoʻi kaʻina hana abstraction, me ka manaolana e hiki i ka linker 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.
Loaʻa ke kākoʻo kākoʻo mea hou no kēia mau ʻāpana AVR: AVR16DA28, AVR16DA32, AVR16DA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR128DB28, AVR128DB, AVR32DA128 VR48DB128. ʻAʻole loaʻa ke kākoʻo kākoʻo mea hoʻihoʻi ʻia no nā ʻāpana AVR penei: ATA64, ATA5272, ATA5790N, ATA5790, ATA5791, ATA5795, ATA6285, ATA6286C, ATA6612C, ATA6613Q, ATA6614Q, ATA6616ATA, ATA6617ATA.
3.9. Mana 2.29 (Hoʻokuʻu Palekana Hana)
Poʻomanaʻo file no ka mea hoʻopili i kūkulu ʻia No ka hōʻoia ʻana e hiki i ka mea hoʻopili 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 builtin_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 defineXCSTRICT_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.10. Helu 2.20
Loaʻa ke kākoʻo kākoʻo mea hou no nā ʻāpana AVR: ATTINY1624, ATTINY1626, a me ATTINY1627.
ʻ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 loko o ka mea hoʻopili i hiki ke hoʻokaʻawale ʻia nā ʻāpana i kahi kauoha e ʻae ai i ka ʻoi aku ka maikaʻi. 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 Ua hana ʻia nā loiloi abstraction kaʻina hana ma 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.
ʻAʻole i loaʻa iā AVR Assembler ʻAʻole i hoʻokomo hou ʻia ka AVR Assembler me kēia māhele.
3.11. Mana 2.19 (Hoʻokuʻu Palekana Hana)
ʻAʻohe.
3.12. Helu 2.10
Hoʻopili Code Aia kēia hoʻokuʻu i kahi hiʻohiʻona uhi code e hoʻomaʻamaʻa 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 He mea hana hou file kapa ʻia ʻo avr_chipinfo . Aia ka html i ka papa kuhikuhi docs o ka puʻunaue 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ā mea āpau i ʻae ʻia i ka hoʻonohonoho bit hoʻonohonoho / ʻeha waiwai 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 mau mea 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 hoʻohana -mno-pa-on-file=fileinoa, a i ʻole ʻia no kahi hana ma ka hoʻohana ʻana -mno-pa-on-function=function. 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 ke ʻano ( (nopa) ) me ka wehewehe ʻana o ka hana, a i ʻole ma ka hoʻohana ʻana i ka nopa, e hoʻonui ana i ke ʻano ( (nopa, noinline) ) a pēlā e pale ai i ka hana inlining mai ka hana ʻana. a aia kahi abstraction o ke code inline.
Kākoʻo ʻāpana laka i ka 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. Loaʻa ke kākoʻo kākoʻo mea hou no kēia mau ʻāpana: AVR28DAl28, AVR64DAl28, AVR32DA 128, a me AVR48DA 128.
3.13. Helu 2.05
ʻOi aku ka nui o nā bits 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.
Nā mea const i ka hoʻomanaʻo papahana Hiki i ka mea hoʻopili 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ā kuhikuhi 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 architecture, ʻ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.
Hiki i nā mana no ka manuahi ʻAʻole i laikini ʻia (Free) o kēia mea hōʻuluʻulu i kēia manawa ke ʻae ʻia 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 laikini maʻamau.
Welina mai AVRASM2 Ua 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.
Loaʻa ke kākoʻo kākoʻo hou no kēia mau ʻāpana: ATMEGA1608, ATMEGA1609, ATMEGA808, a me ATMEGA809.

3.14. Helu 2.00
Keaukaha kiʻekiʻe He mea hoʻokele hou, i kapa ʻia ʻo xc8-cc, ke noho nei ma luna o ka mea hoʻokele avr-gcc mua a me ka mea hoʻokele xc8, a hiki iā ia ke kāhea i ka mea hoʻopili kūpono e pili ana i ke koho ʻana o ka mea i hoʻopaʻa ʻia. 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. Hāʻawi kēia mea hoʻokele i nā koho like me nā semantics like e hoʻohana ʻia 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 maʻalahi o ka hoʻopili ʻana i nā code kumu ma nā mea hoʻopili MPLAB XC āpau. 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.
Keaukaha hale waihona puke hou Ua hoʻonoho ʻia kahi 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

Eia nā hiʻohiʻona 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 ke 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. Helu 2.41
Wehe ʻia nā hana fma kūpono ʻole (XC8-2913) ʻO ka hale waihona puke maʻamau C99 fma 0 -nā hana ʻohana ( ) ʻaʻole i helu i ka multiply-add me ka pololei ʻole i ka pōʻai hoʻokahi, akā ua hōʻiliʻili i nā hewa pōʻai me kēlā me kēia hana. Ua wehe ʻia kēia mau hana mai ka waihona i hoʻolako ʻia.
4.2. Helu 2.40
ʻAʻohe.
4.3. Mana 2.39 (Hoʻokuʻu Palekana Hana)
ʻAʻohe.
4.4. Helu 2.36 ʻAʻole.
4.5. Helu 2.35
Ka lawelawe ʻana i nā kumu string-to (XC8-2420) No ka hoʻopaʻa ʻana me nā mea hōʻuluʻulu XC ʻē aʻe, ʻaʻole e hoʻāʻo hou nā hana XC8 string-to, e like me strtol () etc., e hoʻohuli 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 hōʻike ka maʻamau C i ke ʻano o nā hana ke ʻoi aku 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 exampa, ʻaʻole pono e hoʻopili i ka waihona 1printf flt (-1printf_flt koho) e hoʻāla i ka formatted I0 kākoʻo no nā mea kikoʻī ʻano lana. ʻO ke akamai I0 ʻO nā hiʻohiʻona 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 ke kaula a me nā hana hoʻomanaʻo (e laʻa me strcpy_P ( ) a pēlā aku.) e hana ana ma nā kaula const i ka uila. E hana pono nā hana maʻamau C (eg strcpy ) me ia ʻikepili ke hoʻohana ʻia ka hiʻohiʻona const-data-in-program-memory.

4.6. Helu 2.32
ʻAʻohe.
4.7. Helu 2.31
ʻAʻohe.
4.8. 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 Ke manaʻo nei 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ʻohe
4.5. Helu 2.05
Nā mea Const i loko o ka hoʻomanaʻo papahana E hoʻomaopopo ʻia e waiho ʻia nā mea const-qualfiied ma ka hoʻomanaʻo (e like me ka hue i wehewehe ʻia). 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ā pono, me ka hoʻohana ʻana i ke koho -mnoconst-data-in-progmem.
4.6. Helu 2.00
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, e 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 i kēia manawa ma kahi kikoʻī i ka hoʻomanaʻo me ka hoʻohana ʻana i ka mea kikoʻī CCI (address), no example:
#hoʻokomo
int foobar_at(0x800100);
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 a i ʻole ke aʻo mua. Hōʻike ʻia nā helu RAM ma ka hoʻohana ʻana i kahi offset o 0x800000. E ʻae i ka CCI e hoʻohana i kēia hiʻohiʻona.
Syntax hana keakea hou Ua ʻae ka mea hōʻuluʻulu i kēia manawa i ka CCI _interrupt (num) specifier e hōʻike i nā hana C he mau mea hoʻopili. Lawe ka mea kikoʻī i kahi helu hoʻopau, no ka example:
#hoʻokomo
ʻaʻohe __interrupt(SPI_STC_vect_num) spi_Isr(ʻole) { … }

Nā pilikia paʻa

Eia na hooponopono i hanaia i ka mea houluulu. 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 ʻike o kēlā pilikia i loko o ka waihona ʻikepili. Pono paha kēia inā pono ʻoe e hoʻokaʻaʻike i ke kākoʻo.
E hoʻomaopopo i ka hoʻoponopono ʻia ʻana o kekahi mau pilikia kikoʻī i ka Device Family Pack (DFP) pili me ka hāmeʻa. 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. Helu 2.41
Nā pilikia Dongle ma Ventura (XC8-3088) Dongles ʻAʻole i heluhelu pono ʻia ka mea hoʻopili i nā mea hoʻokipa macOS Ventura, e hopena i ka hāʻule ʻana o ka laikini. Hoʻoponopono nā hoʻololi i ka luna laikini XCLM i kēia pilikia.
Hōʻike hewa ʻole o ka hoʻokaʻawale hoʻomanaʻo (XC8-2925) Ke ho'āʻo nei e hoʻokaʻawale i ka SIZE_MAX bytes (a i ʻole kahi waiwai kokoke i kēia) o ka hoʻomanaʻo me ka hoʻohana ʻana i nā hana hoʻokele hoʻomanaʻo waihona waihona maʻamau (malloc () et al). ʻAʻole ia i noʻonoʻo i ka pono o nā bytes ʻē aʻe me ka poloka i noi ʻia i ka wā e hoʻohana ai i ka hoʻokō hoʻokaʻawale hoʻomanaʻo maʻalahi. E hoʻihoʻi ʻia kahi kuhikuhi NULL a hoʻonohonoho ʻia ʻo ERNO i ENOMEM ma ia mau kūlana.
Wehe ʻia nā hana fma pololei ʻole (XC8-2913) ʻO ka hale waihona puke maʻamau C99 fma ( ) -nā hana ʻohana ( ) ʻaʻole i helu i ka multiply-add me ka pololei ʻole i ka pōʻai hoʻokahi, akā ua hōʻiliʻili i nā hewa pōʻai me kēlā me kēia hana. Ua wehe ʻia kēia mau hana mai ka waihona i hoʻolako ʻia.
Hana maikaʻi ʻole i ka hoʻololi ʻana i ke kaula (XC8-2921, XC8-2652) I ka wā i loaʻa ai i kahi 'kumuhana kumuhana' no ka hoʻololi ʻana e strtod Cr ka mea i ʻike ʻia he helu lana i ka hōʻano exponential a aia kahi ʻano i manaʻo ʻole ʻia ma hope o ke ʻano e/E, a laila ma kahi i hāʻawi ʻia ai ka endptr, ua hāʻawi ʻia i kahi helu wahi. inā paha e kuhikuhi ana i ke ʻano ma hope o ka e/E, ʻoiai ʻo ia ke kuhikuhi ʻana i ke ʻano e/E ponoʻī, ʻoiai ʻaʻole ia i hoʻololi ʻia. No example, strtod ("100exx", &ep) e hoʻihoʻi i 100.00 a hoʻonoho i ka ep e kuhikuhi i ka ʻāpana "exx" o ke kaula, ʻoiai ke hoʻihoʻi nei ka hana i ka waiwai kūpono akā e hoʻonohonoho i ka ep e kuhikuhi i ka ʻāpana "xx" o ke kaula. .

5.2. Helu 2.40
Hoʻomaha loa (XCS-2876) I ka hoʻohana ʻana i ka koho -mrelax, ʻaʻole i hoʻokaʻawale ka mea hōʻuluʻulu i kekahi mau ʻāpana i hui pū ʻia, e hopena i ka liʻiliʻi o ka nui o nā code. Ua loaʻa paha kēia me ke code i hoʻohana i nā hale waihona puke MUSL hou a i ʻole me nā hōʻailona nāwaliwali.
ʻAʻole pio ka hiʻohiʻona palapala ʻāina e like me ka ʻōlelo ʻana ma ka ʻōlelo aʻo (XC8-2875) ʻO ka hiʻohiʻona const-data-in-config-mappedprogmem e hilinaʻi nei i ka hiʻohiʻona const-data-in-progmem e hoʻohana ʻia. Inā ua ʻae ʻia ka hiʻohiʻona const-data-inconfig-mapped-progmem me ka hoʻohana ʻana i ke koho a ua hoʻopau ʻia ka hiʻohiʻona const-data-inprogmem, ʻaʻole i hāʻule ka pae loulou, ʻoiai ka ʻōlelo aʻo e hōʻike ana i ka const-data-in-con fig- Ua hoʻopau ʻia ka hiʻohiʻona mapped-progmem, ʻaʻole pololei loa. ʻO ka const-data-in-config-mapped-progmem hiʻohiʻona i kēia manawa ua pio piha i kēia kūlana.
Hoʻololi ka DFP no ke komo pono ʻana iā NVMCTRL (XC8-2848) ʻAʻole i noʻonoʻo ka code startup runtime i hoʻohana ʻia e nā mea AVR64EA aia ka papa inoa NVMCTRL ma lalo o ka Configuration Change Protection (CCP) a ʻaʻole hiki iā ia ke hoʻonohonoho i ka I0 SFR i ka ʻaoʻao i hoʻohana ʻia e ka const-data-in-configmapped-progmem. hiʻona hui. ʻO nā hoʻololi i hana ʻia ma AVR-Ex_DFP version 2.2.55 e ʻae i ka code startup runtime e kākau pololei i kēia papa inoa.
Hoʻololi ka DFP e pale aku flash mapping (XC8-2847) Ua hoʻokō ʻia kahi hana-a puni no ka pilikia me ka hiʻohiʻona uila uila i hōʻike ʻia ma ka AVR128DA28/32/48/64 Silicon Errata (D580000882). ʻAʻole hoʻohana ʻia ka hiʻohiʻona const-data-in-config-mapped-progmem compiler ma ka paʻamau no nā mea i hoʻopili ʻia, a e ʻike ʻia kēia hoʻololi i ka mana AVR-Dx_DFP 2.2.160.
Hana hewa me sinhf a i ʻole coshf (XC8-2834) ʻO ka hoʻāʻo ʻana e hoʻohana i nā hana hale waihona sinhf () a i ʻole coshf () ua loaʻa kahi hewa loulou, e wehewehe ana i kahi kuhikuhi i wehewehe ʻole ʻia. Ua hoʻokomo ʻia ka hana nalo i kuhikuhi ʻia i loko o ka māhele compiler.
Hana hewa me ka nopa (XC,8-2833) Ke hoʻohana nei i ka ʻano nopa me kahi hana i hoʻopaʻa ʻia kona inoa assembler me ka hoʻohana ʻana i ka asm () i hoʻoiho i nā memo hewa mai ka mea hui. ʻAʻole hiki kēia hui.
Hiki ʻole ka hana ʻokoʻa me nā manaʻo kuhikuhi (XC8-2755, XC8-2731) Manaʻo nā hana me ka helu ʻokoʻa o nā kumu hoʻopaʻapaʻa 24-bit (memx type) i ka papa inoa hoʻopaʻapaʻa hoʻololi ke hoʻohana ʻia ka hiʻohiʻona const-data-in-progmem. ʻO nā ʻōlelo hoʻopaʻapaʻa i kuhikuhi ʻia i ka hoʻomanaʻo ʻikepili i hoʻolilo ʻia ma ke ʻano he 16-bit mea, me ka hoʻopau ʻana i ke code i ka wā i heluhelu ʻia ai. Ke hoʻohana ʻia ka hiʻohiʻona constdata-in-progmem, ua hoʻololi ʻia nā manaʻo kuhikuhi 16-bit āpau i nā kuhikuhi 24-bit.
ʻAʻole hiki i ka hale waihona puke strtoxxx (XC8-2620) Ke hoʻohana ʻia ka hiʻohiʻona const-data-in-progmem, ʻaʻole i hōʻano hou ʻia ka ʻāpana endptr ma nā hana waihona strtoxxx no nā manaʻo kumu kumu ʻaʻole i ka hoʻomanaʻo papahana.
Nā ʻōlelo hoʻolaha no nā hoʻolei kūpono ʻole (XC8-2612) E hoʻopuka ka mea hōʻuluʻulu i kahi hewa inā hiki ke hoʻohana ʻia ka hiʻohiʻona const-in-progmem a hoʻolei ʻia ka helu wahi o kahi string literal i kahi kiko kikoʻī ʻikepili (e waiho ana i ka const qualifier), no example, (uint 8_t *) “Aloha Honua!”. He pilikia ka ʻōlelo aʻo inā ʻaʻole kūpono ka helu wahi i ka wā i hoʻolei ʻia ai kahi kikoʻī ʻikepili const i kahi kikowaena helu ʻikepili.
Hoʻokomo ʻia nā mea const ʻike ʻole (XC8-2408) ʻAʻole hoʻokomo ʻia nā mea const a me const volatile i hoʻopaʻa ʻia i ka hoʻomanaʻo papahana ma nā polokalamu e kaha kiʻi i nā mea āpau a i ʻole kekahi hapa o kā lākou hoʻomanaʻo papahana i loko o ka wahi helu helu ʻikepili. No kēia mau mea hana, ua hoʻokomo ʻia ia mau mea i ka hoʻomanaʻo o ka papahana, e hana like ana kā lākou hana me nā mea hana ʻē aʻe.

5.3. Mana 2.39 (Hoʻokuʻu Palekana Hana)
ʻAʻohe.
5.4. Helu 2.36
Kupa i ka wā e lohi ai (XC8-2774) ʻO nā hoʻololi liʻiliʻi i ka paʻamau Free mode optimizations i pale i ka pelu mau ʻana i nā ʻōlelo operand i ka lohi i kūkulu ʻia i loko o nā hana, a laila e mālama ʻia lākou ma ke ʻano he mau ʻole a hoʻomaka i ka hewa: kūkulu ʻia avr delay_cycles manaʻo i ka manawa hoʻonohonoho integer mau.
5.5. Helu 2.35
Hoʻokaʻawale pili e hoʻohana ana iā _at (XC8-2653) ʻ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 arr1[] __attribute__((ʻāpana(“.mysec”))) __at (0x500) = {0xAB, 0xCD};
const char arr2[] __attribute__((ʻāpana(“.mysec”))) = {0xEF, 0xFE};
pono e kau i ka arr2 ma hope koke iho o ka arr1.
Ka wehewehe ʻana i nā wahi hoʻomaka ʻāpana (XC8-2650) ʻO ka -W1, -ʻaʻole hāʻule nā ​​​​koho hoʻomaka i ka waiho ʻana i nā ʻāpana ma 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 kahi koho -W1, -T.
Hāʻule ka Linker i ka wā hoʻomaha (XC8-2647) I ka wā i hoʻohana ʻia ai ka -mrelax optimization a aia nā 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ʻohe hāʻule-hope (XC8-2646) 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 hoʻonui ʻana i ka wikiwiki (X03-2637) 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.
EEPROM ino komo (XC8-2629) Ka ʻ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 ka mokuʻāina paʻamau), a laila ʻaʻole heluhelu pono ʻia ka hoʻomanaʻo EEPROM.
ʻAʻole kūpono ka hoʻokaʻawale ʻana i ka hoʻomanaʻo (XC8-2593, XC8-2651) Ke -Ttext a i ʻole -Tdata linker koho (no ka example i hele ma ka hoʻohana ʻana i kahi koho hoʻokele -vl) ua kuhikuhi ʻia, ua hōʻano hou ʻia ke kumu kikoʻī / ʻ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ā haʻi ʻia kahi hana me ka hoʻohana ʻana i nā ʻano mea ʻoi aku ma mua o hoʻokahi o nā ʻano hoʻohālikelike, hōʻailona a i ʻole nmi, e laʻa, ʻano ((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) I ka hoʻohana ʻana i ke 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 hoʻopuka ka mea hoʻopili i kahi hewa i loko (ʻike ʻole ʻia insn) i ka heluhelu ʻana i ka waiwai ʻelua byte mai kahi kuhikuhi i ka hoʻomanaʻo papahana.
5.6. Helu 2.32
Ke komo lua o hāʻule ka waihona (XC8-2381) Ke kāhea nei i ka mana Windows o ka xc8-ar. ʻO ka waihona waihona waihona .exe i ka lua o ka manawa e komo ai i kahi waihona waihona i loaʻa ʻole paha me ka hiki ʻole ke hoʻololi i ka memo hewa.
5.7. Helu 2.31
Mea hōʻuluʻulu wehewehe ʻole nā hemahema (XC8-2367) I ka holo ʻana ma nā paepae Windows 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.8. Helu 2.30
Ua kuhi hewa ʻia nā lepili honua ma hope o ka wehewehe ʻana (XC8-2299) ʻAʻole paha i hoʻonohonoho hou ʻia nā code hui lima i kākau ʻia e kau ana i nā lepili honua i loko o nā kaʻina hui i helu ʻia e ka abstraction kaʻina hana.
He hāʻule hoʻomaha (XC8-2287) Me ka hoʻohana ʻana i ke koho -mrelax i hoʻopōʻino ai ka mea hoʻohui i ka wā i hoʻāʻo ai ka hoʻomaha hoʻomaha ʻana o ka huelo e wehe i ke aʻo ʻana ʻaʻole i ka hope o kahi ʻāpana.
Hāʻule i ka wā e hoʻopololei ana i nā lepili ma ke ʻano he waiwai (XC8-2282) ʻO ke code me ka hoʻohana ʻana i ka "Labels as values" ka hoʻonui ʻia ʻana o ka ʻōlelo GNU C i hiki ke hoʻopau i ka hoʻoponopono ʻana i nā kaʻina hana abstraction, me kahi kuhi VMA i wehewehe ʻia.
ʻAʻole pēlā const (XC8-2271) Nā prototypes no st rstr ( ) a me nā hana ʻē aʻe mai ʻaʻole e hōʻike hou i ka const qualifier maʻamau ma nā kuhikuhi string i hoʻihoʻi ʻia ke pio ka hiʻohiʻona -mconst-data-inprogmem. E hoʻomaopopo 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) Ke ʻoi aku ma mua o Ua hoʻokomo ʻia kekahi ʻano hoʻololi i loko o kahi ʻāpana unuhi i loko o kahi ʻāpana (me ka hoʻohana ʻana i ka _section a i ʻole _attribute_ ( (section) )), a ʻo ka mua o ia ʻano hoʻololi i hoʻomaka ʻole ʻia a ʻaʻohe mea hoʻomaka, nā mea hoʻomaka no nā ʻano ʻē aʻe ma ka ʻāpana unuhi like i kau ʻia. ma ka pauku hookahi i nalowale.
5.1. Mana 2.29 (Hoʻokuʻu Palekana Hana)
ʻAʻohe.
5.2. Helu 2.20
Kupa 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 kahi file ʻAʻole i loaʻa ka hewa, inā he nui loa ka laina kauoha a loaʻa nā huaʻōlelo kūikawā e like me nā huaʻōlelo, backslashes, etc.
Paukū rodata i hāʻawi ʻole ʻia (XC8-1920) ʻAʻole i hāʻawi ka mea hoʻohui AVR i ka hoʻomanaʻo no nā ʻāpana rodata maʻamau i ke kūkulu ʻana no nā hale hoʻolālā avrxmega3 a me avrtiny, hiki ke hana i nā hewa overlap memory.
5.3. Helu 2.19 (Hoʻokuʻu Palekana Hana)
ʻAʻohe.
5.4. Helu 2.10
Nā hoʻoneʻe ʻana (XC8-1891) ʻO ka mea hoʻokaʻawale kūpono loa ʻo ia ka 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 hana hana (XC8E-388) He mau wehewehena mai , e like me ka clock_div_t a me ka clock_prescale set () , ʻaʻole i wehewehe ʻia no nā polokalamu, me ka ATmega324PB, ATmega328PB, ATtiny441, a me ATtiny841.
Nalo nā macros ʻAʻole i wehewehe ʻokoʻa ʻia nā macros preprocessor _XC8_MODE_, _XC8_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
Kuwaho ka mea hoʻopili i loko (XC8-1822) I ke kūkulu ʻana ma lalo o Windows, ua hana ʻia paha kahi hewa o ka mea hōʻuluʻulu kū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 uila (XC8-1792) No nā polokalamu avrxmega3 a me avrtiny, ua waiho ʻia nā ʻāpana o ka hoʻomanaʻo flash me ka hoʻolālā ʻole ʻia e ka MPLAB X IDE.
ʻAʻole hoʻokō i ka mea nui (XC8-1788) I kekahi mau kūlana i wehewehe ʻole ʻia ka papahana, ʻ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 heluhelu-wale i ka RAM ma kahi o ka hoʻomanaʻo papahana.
Heluhelu ʻia ka hoʻomanaʻo polokalamu (XC8-1783) ʻO nā papahana i hōʻuluʻulu ʻia no nā hāmeʻa 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/attribute i heluhelu paha i kēia mau mea mai ka helu kuhi hewa.
Kuʻia hewa me nā ʻano (XC8-1773) Ua loaʻa ka hewa kūloko inā ʻoe i wehewehe i nā mea kuhikuhi me ka
_at () aiʻole attribute() nā hōʻailona ma waena o ka inoa kuhikuhi a me ke ʻano i hoʻopaʻa ʻia, no example, char *
_ma (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ā mea 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 ka code startup runtime, ma mua o ka hiki ʻana i ke kumu ().
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/10/20/40 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.
Māhele ʻāpana hewa (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 nānā ʻia ka ʻōlelo kikoʻī paʻakikī (XC8-1749) ʻAʻole i hana hewa ka mea hoʻopili i ka wā i hoʻohana ʻia ai nā koho kikoʻī he nui a hōʻike i nā ʻano 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 loulou i ka wā i loaʻa i ka code kahi rjmp a i ʻole rcall me kahi pahuhopu he 4k paita ka mamao.
5.6. Helu 2.00
ʻAʻohe.

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 poʻo inoa, ʻo ia ka ʻike o kēlā pilikia i loko o 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
IDE MPLAB 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
ʻO Segfault me ​​nā koho heleuma ʻāpana (XC8-3045) ʻO ka papahana i wehewehe i nā hana me nā papa inoa hoʻopaʻapaʻa hoʻololi a hoʻohana i ke koho -fsection-anchors i hoʻoulu ʻia i kahi hewa compiler kūloko: Segmentation fault.
ʻO ka ʻike debug ʻaʻole i hoʻokō (XC8-2948) I ka wā e emi ai nā ʻōlelo aʻoaʻo hoʻomaha hoʻomaha linker (no ka exampke kāhea aku i nā ʻōlelo kuhikuhi), ʻaʻole hiki ke hoʻomau ʻia ka laina kumu no ka hoʻoponopono ʻana i nā palapala palapala inā ʻoi aku ma mua o hoʻokahi hana hōʻemi i hana ʻia ma kahi ʻāpana.
Ma ka exampʻO ka, ʻelua mau kelepona i foo e hoʻomaha ai i nā kelepona pili.
Hāʻule ka hoʻokaʻawale hoʻomanaʻo PA (XC8-2881) I ka hoʻohana ʻana i nā mea hoʻoponopono abstraction kaʻina hana, hiki i ka mea loulou ke hōʻike i nā hewa hoʻokaʻawale hoʻomanaʻo inā kokoke ka nui o ke code i ka nui o ka hoʻomanaʻo papahana i loaʻa ma ka hāmeʻa, ʻoiai hiki i ka polokalamu ke kūpono i ka wahi i loaʻa.
ʻAʻole naʻauao Smart-I0 (XC8-2872) ʻO ka hiʻohiʻona akamai-io o ka mea hoʻopili e hoʻopuka i ke code kūpono akā ʻoi aku ka maikaʻi no ka hana snprint f inā ua pio ka hiʻohiʻona const-data-in-progmem a i ʻole ua paʻi ʻia kāna flash āpau i ka hoʻomanaʻo ʻikepili.
ʻOi aku ka liʻiliʻi o ke akamai Smart-I0 (XC8-2869) ʻO ka hiʻohiʻona akamai-io o ka compiler e hoʻopuka i ka code kūpono akā suboptimal ke hoʻohana ʻia nā koho -flto a me -fno-builtin.
Hoʻokomo i ka ʻikepili heluhelu-wale nō ka maikaʻi loa (XC8-2849) ʻAʻole ʻike ka mea loulou i nā ʻāpana hoʻomanaʻo APPCODE a me APPDATA, ʻaʻole hoʻi i nā mahele [No-Read-While-Write i ka palapala hoʻomanaʻo. ʻO ka hopena, aia kahi manawa liʻiliʻi e hiki ai i ka mea hoʻopili ke hoʻokaʻawale i ka ʻikepili heluhelu-wale nō i kahi wahi hoʻomanaʻo kūpono ʻole. Ke piʻi aʻe nei ka manawa o ka ʻikepili kuhi hewa inā hiki ke hoʻohana ʻia ka hiʻohiʻona const-data-in-progmem, ʻoi aku hoʻi inā hiki ke hoʻohana ʻia ka hiʻohiʻona const-data-in-config-mapped-progmem. Hiki ke hoʻopau ʻia kēia mau hiʻohiʻona inā pono.
mea file kaʻina hana (XC8-2863) ʻO ke kaʻina o nā mea files e hana ʻia e ka mea hoʻopili e ʻokoʻa paha ma muli o ka hoʻohana ʻana i ka hoʻohana ʻana i nā hoʻoponopono abstraction (koho -mpa). Hoʻopili wale kēia i ke code e wehewehe ana i nā hana nāwaliwali ma nā modula he nui.
Ua hewa ka mea hoʻopili me ka paʻa (XC8-2777) Ke hoʻopaʻa ʻia kahi mea ma kahi helu i ka hoʻomaka ʻana o RAM a ua wehewehe pū ʻia nā mea uninitialized, hiki ke hoʻāla ʻia kahi hewa linker.
Nā ID wake-up pōkole (XC8-2775) No nā polokalamu ATA5700/2, ua wehewehe ʻia nā papa inoa PHIDO/1 he 16 mau ʻāpana ākea, ma mua o 32 mau ʻāpana ākea.
Hāʻule ka loulou i ke kāhea ʻana i ka hōʻailona (XC8-2758) Hiki i ka loulou ke hāʻule inā hoʻohana ʻia ke koho hoʻokele -mrelax ke kāhea ke kumu kumu i kahi hōʻailona i wehewehe ʻia me ke koho -cc., –de f sym linker.
Hoʻomaka hewa (XC8-2679) Aia he ʻokoʻa ma waena o kahi i hoʻokomo ʻ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ā mea hoʻololi i ka wā holo.
Nā kelepona hana hewa ʻole (XC8-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 scanf ( ) et al, e hoʻololi mau i kahi helu lana-hexadecimal ʻ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 wau.
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.
Loaʻa hewa me ke ala DFP hewa ʻole (XC8-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 uhi ʻana o ka hoʻomanaʻo o nā mea i hoʻopaʻa ʻia ma kahi helu (ma _at ( )) a me nā mea ʻē aʻe me ka hoʻohana ʻana i ka ʻāpana ( ) kikoʻī a pili i ka helu hoʻokahi.
ʻAʻole i loaʻa nā hana waihona a me _memx (XC8-1763) ʻO nā hana i kapa ʻia ʻo libgcc float me ka hoʻopaʻapaʻa ma ka helu helu memx hiki ke hāʻule. E hoʻomaopopo ua kāhea ʻia nā hana maʻamau mai kekahi mau mea hana C, no laila, no exampe, ua pili kēia code:
hoʻihoʻi regFloatVar > memxFloatVar;
Hoʻokō libgcc kaupalena (AVRTC-731) No nā huahana ATTiny4/5/9/10/20/40, ʻo ka hoʻokō ʻana o ka hale waihona puke C / Math ma libgcc he palena loa 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 hoʻopaneʻe ʻana o ka linker 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 -mre lax.
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 Manaʻo nā hana hale waihona i ka GMT a ʻaʻole kākoʻo i nā ʻāpana manawa kūloko, no laila e hoʻi ka localtime ( ) i ka manawa like me ka gmtime ( ), no example.

file:///Applications/microchip/xc8/v2.41/docs/Readme_XC8_for_AVR.htm

Palapala / Punawai

MICROCHIP MPLAB XC8 C Compiler Development Software [pdf] Palapala a ka mea nona
MPLAB XC8 C, MPLAB XC8 C Compiler Development Software, Compiler Development Software, Development Software, Software

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 *