MICROCHIP XC8 C Compiler Version 2.45 Hoʻokuʻu memo no AVR MCU
ʻIke Huahana
ʻO ka MPLAB XC8 C Compiler kahi polokalamu lako polokalamu i hoʻohana ʻia no ka huli ʻana i nā polokalamu Microchip AVR. Hoʻolālā ʻia e hōʻuluʻulu i ka code C a hana i nā mea hiki ke hoʻokō files no kēia mau mea hana. ʻO ka mana hōʻuluʻulu e ʻōlelo ʻia nei ma kēia manual mea hoʻohana ʻo 2.45, me kahi lā kūkulu kūhelu o ʻAukake 18, 2023. ʻO ka mana o mua he 2.41, i kūkulu ʻia ma Pepeluali 8, 2023. Hele mai ka mea hōʻuluʻulu me kahi Functional Safety Manual, e hāʻawi ana i nā ʻike hou aʻe. a me nā alakaʻi i ka wā e hoʻohana ai i ka MPLAB XC compilers me nā noi palekana hana. Hoʻokomo ʻia kēia manual i ka pūʻolo palapala ke kūʻai ʻoe i kahi laikini palekana hana. Kākoʻo ka MPLAB XC8 C Compiler i nā polokalamu 8-bit AVR MCU āpau i loaʻa i ka manawa hoʻokuʻu. Hiki iā ʻoe ke kuhikuhi i ka avr_chipinfo.html file ma ka papa kuhikuhi doc a ka mea hoʻopili no ka papa inoa o nā mea i kākoʻo ʻia a me kā lākou hoʻonohonoho bit hoʻonohonoho. Loaʻa nā ʻokoʻa o ka MPLAB XC8 compiler i loaʻa. Hāʻawi ka paʻi laikini (PRO) i kahi kiʻekiʻe o ka loiloi i hoʻohālikelike ʻia me ka paʻi manuahi. No ka hoʻoulu ʻana i ka mea hoʻopili ma ke ʻano he huahana laikini, pono ʻoe e kūʻai i kahi kī hoʻāla. Eia naʻe, hiki ke hoʻohana mau ʻia ka mana ʻole me ka laikini ʻole. No nā noi palekana hana, loaʻa kahi MPLAB XC8 Functional Safety compiler. Pono ia i kahi laikini palekana hana i kūʻai ʻia mai Microchip no ka hoʻāla ʻana. Ke ho'ā 'ia, hiki ke ho'ohana 'ia nā pae optimization a pau a me nā hi'ohi'ona compiler. Kākoʻo pū ka MPLAB XC Functional Safety Compiler i ka Laikini Pūnaewele Pūnaewele. Hiki ke loaʻa ka ʻike kikoʻī e pili ana i ka hoʻokomo ʻana, ka hoʻoulu ʻana, nā ʻano laikini, a me nā pilikia neʻe ma ka palapala Hoʻokomo a me ka laikini MPLAB XC C Compilers (DS50002059).
Nā ʻōlelo hoʻohana huahana
- Ma mua o ka holo ʻana i ka polokalamu MPLAB XC8 C Compiler, e heluhelu i ka manual mea hoʻohana no ka ʻike koʻikoʻi a me nā kuhikuhi kikoʻī e pili ana i ka huli ʻana i nā polokalamu Microchip AVR.
- Inā ʻoe e hoʻohana nei i ka compiler no nā polokalamu PIC 8-bit, e nānā i ka MPLAB XC8 C Compiler Release Notes no ka palapala PIC.
- E hōʻoia i ka hoʻokō ʻana o kāu ʻōnaehana hana i nā koi ʻōnaehana no ka holo ʻana i ka compiler. ʻO nā binaries no macOS ua kau inoa ʻia a notarized. Loaʻa ka MPLAB XC Network License Server no Microsoft Windows 10 a i luna, ʻo Ubuntu 18.04 a i luna, a me macOS 10.15 a i luna. E hoʻomaopopo ʻ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.
- No ka ho'ā ʻana i ka MPLAB XC8 C Compiler ma ke ʻano he huahana laikini (PRO), kūʻai i kahi kī hoʻāla. Hāʻawi kēia i kahi pae kiʻekiʻe o ka hoʻohālikelike ʻana i ka mana manuahi. Eia naʻe, hiki ke hoʻohana ʻia ka mea hōʻuluʻulu laikini ʻole me ka ʻole o ka laikini.
- Inā ʻoe e hoʻohana ana i ka MPLAB XC8 Functional Safety Compiler no nā noi palekana hana, pono e hoʻāla ʻia 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. Kākoʻo ʻia ka Laikini Pūnaewele Pūnaewele e kēia hoʻokuʻu ʻana o ka MPLAB XC Functional Safety Compiler.
- No nā ʻōlelo kikoʻī e pili ana i ka hoʻokomo ʻana, ka hoʻāla ʻana, a me ka laikini ʻana o ka MPLAB XC8 C Compiler, e nānā i ka palapala Hoʻokomo a me ka laikini ʻana i nā MPLAB XC C Compiler (DS50002059).
- Inā ʻoe e holo nei i ka mea hoʻopili ma lalo o ka laikini loiloi, e loaʻa iā ʻoe kahi ʻōlelo aʻo i ka wā e hōʻuluʻulu ai ʻ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.
Pauview
Hoʻolauna
ʻO kēia hoʻokuʻu ʻana o ka Microchip MPLAB® XC8 C compiler he mau hiʻohiʻona hou, hoʻoponopono bug, a me ke kākoʻo no nā mea hou.
Lā Hana
ʻO ka lā hana mana o kēia mana compiler ʻo 18 ʻAukake 2023.
Manao mua
ʻO ka mana MPLAB XC8 C compiler mua he 2.41, i kūkulu ʻia ma 8 Pepeluali, 2023.
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.
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 file i kapa ʻia aia ka subdirectory o kāu papa kuhikuhi hoʻokomo. Hiki ke ʻike ʻia ma aneʻi kahi kūkākūkā nui o nā loina e pili ana i ka GPL. Kākoʻo code i hāʻawi ʻia no ke poʻo files, linker scripts, and runtime library 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.
Nā Koina 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, macOS® 13.2 (Ventura), a Fedora 34. 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 i 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 Hat® 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 ʻike i ka avr_chipinfo.html (ma ka papa kuhikuhi doc o ka mea hoʻopili) no ka papa inoa o nā mea i kākoʻo ʻia. Hoʻopili pū kēia mau faila i nā hoʻonohonoho bit configuration no kēlā me kēia mea hana.
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 palapala ʻole me ka laikini ʻole. Pono e ho'āla ʻia kahi mea hoʻopili palekana palekana MPLAB XC8 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.
Mea hoʻonoho a me ka ho'ā
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. E holo i ka .run (Linux) a i ʻole .app (macOS) mea hoʻonohonoho hoʻonohonoho, e laʻa me XC8-1.00.11403-windows.exe a hahai i nā kuhikuhi ma ka pale. 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 XC License Manager i kēia manawa 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.
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 file explorer e hōʻike ana i kēlā papa kuhikuhi a hiki iā ʻoe ke hoʻoholo i ke ala o kēlā waihona.
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ā.
Kākoʻo mea kūʻai aku
Hiki iā ʻoe ke nīnau i nā mea hoʻohana ʻē aʻe o kēia huahana ma ka XC8 Forum. 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:
ʻAʻohe
- ʻO ka AVR® GNU Toolchain to MPLAB® XC8 Migration Guide e wehewehe ana i nā hoʻololi i ka code source a me ke kūkulu ʻana i nā koho i makemake ʻia inā 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 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 MPLAB® 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.
- Inā ʻoe e hoʻomaka wale ana me nā polokalamu 8-bit a me ka MPLAB XC8 C Compiler, ka MPLAB® XC8 Mea hoʻohana.
- Alakaʻi no nā ʻEnekinia Hoʻopili - Loaʻa iā AVR® MCUs (DS50003108) ka ʻike e pili ana i ka hoʻonohonoho ʻana i nā papahana ma ka MPLAB X IDE a me ke kākau ʻana i ke code no kāu papahana MPLAB XC8 C mua. 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.
Helu 2.45
Manakia laikini holoʻokoʻa (XC8-3175, XCLM-224) ʻO ka mana macOS o ka luna laikini i hoʻohana ʻia me ka mea hōʻuluʻulu i kēia manawa, e hāʻawi ana i ke kākoʻo maoli no nā mīkini Intel- a me M1. Ke koi nei ka mana Linux o ka luna laikini ma ka liʻiliʻi loa 2.25 o glibc. Mac universal binaries (XC8-3168, XC8-2951) ʻO nā faila binary compiler no macOS i kēia manawa, e hāʻawi ana i ke kākoʻo maoli no nā mīkini Intel- a me M1. Ua ho'ēmi 'ia ka nui o ka waihona puke kiko lana (XC8-3112, XC8-3071) i nā hana o ka waihona kiko lana, me sinf() pow(), sqrt(), expf(), log1fp(), and nextafterf() , e ʻike ana i ka hōʻemi ʻana i ka nui code no kēia mau hana maʻamau. Loaʻa ke kākoʻo kākoʻo mea hou no nā ʻāpana AVR: AVR16EA28, AVR16EA32, AVR16EA48, AVR32EA28, AVR32EA32, AVR32EA48, AVR16EB14, AVR16EB20, AVR16EB28, a me AVR16EB32
Helu 2.41
- Kākoʻo Bootrow (XC8-3053) E kau ka mea hoʻopili i ka ʻike o nā ʻāpana me kahi prefix .bootrow ma ka helu 0x860000 ma ka waihona 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 i ka hoʻihoʻi hou ʻana (XC8-3048) E hoʻopau ka mea hōʻuluʻulu i nā ʻōlelo aʻoaʻo hoʻihoʻi hou i nā hana 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 ke ʻano o ka manawa (XC8-2982, 2932) Ua hoʻololi ʻia ke ʻano waihona waihona maʻamau C99, time_t mai kahi lōʻihi lōʻihi i kahi ʻano lōʻihi ʻole i hōʻailona ʻia, e hāʻawi ana i ka hoʻomaikaʻi ʻana i ka nui o nā code i kekahi mau hana pili i ka manawa, e like me mktime ().
- Nop hou (XC8-2946, 2945) Ua hoʻohui ʻia ka macro NOP() i . Hoʻokomo kēia macro i kahi ʻōlelo nop no-operation i loko o 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 hoʻololi me nā kuhikuhi rcall i kahi aʻo kāhea jmp e 'trampoline' hoʻokō i ka helu i makemake ʻia, no ka example:
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 ʻAʻole i hoʻomaikaʻi ʻia ka hāmeʻa hoʻomaʻamaʻa ʻana i ke kaʻina hana (PA) i hiki ke wehewehe ʻia ke code i loaʻa kahi ʻōlelo aʻoaʻo kelepona (kahea/rcall). E hana wale ʻia kēia inā ʻaʻole hoʻohana ʻia ka waihona no ka hāʻawi ʻana i nā hoʻopaʻapaʻa a ʻaʻole 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 - mno-pa-outline-calls, a i ʻole hiki ke hoʻopau piha ʻia ka abstraction kaʻina hana no kahi faila a i ʻole hana ma ka hoʻohana ʻana i ka -mno-pa-on-file -mno-pa-on-function, kēlā me kēia, a i ʻole ma ka hoʻohana ʻana i ke ʻano nopa (__nopa specifier) koho me nā hana.
- ʻO ka macro coverage macro Ke wehewehe nei ka mea hōʻuluʻulu i ka macro __CODECOV inā ua kuhikuhi ʻia kahi koho -mcodecov kūpono.
- Koho hoʻopaʻa hoʻomanaʻo E ʻae ka mea hoʻokele xc8-cc i ke koho -mreserve=space@start:hope 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 hoʻokele 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.
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.
Helu 2.36
ʻAʻohe.
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.
- Hoʻopili ʻia ka palapala ʻāina uila i kekahi mau mea ma ka ʻohana AVR DA a me AVR DB he SFR (e laʻa me FLMAP) e hōʻike ana i ka ʻāpana 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 kūpono āpau i hoʻokahi ʻāpana 32k 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 Standard Libraries E kaʻana like nā mea hōʻuluʻulu MPLAB XC 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 MPLAB® XC8 C Compiler User's Guide no AVR® MCU. Hiki ke loaʻa 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 mua ʻia e avr-libc. (E nānā i ka hana o ka waihona.)
- ʻO Smart IO Ma ke ʻano o nā hale waihona puke hui hou, ua hana maʻamau nā hana IO ma nā ʻohana printf a me scanf ma kēlā me kēia hale, e pili ana i ka hoʻohana ʻana i 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 IO akamai I ka nānā ʻana i nā kelepona i nā hana IO akamai (e like me 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. ʻaʻohe manaʻo a hoʻopaʻa i ka hoʻopili ʻia ʻana o nā hana IO holoʻokoʻa i ke kiʻi papahana hope Ua hoʻohui ʻia kahi koho -msmart-io-format=fmt i hiki ke hoʻomaopopo ʻia e ka mea hoʻohana i nā kikoʻī hoʻololi i hoʻohana ʻia e ka IO akamai. ʻO nā hana i hoʻohana ʻole ʻia, e pale ana i ka hoʻopili ʻana i nā hana IO lōʻihi loa (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 waiho wale ka -Wl,–section-start koho i ka ʻāpana i ʻōlelo ʻ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, e like me .text, .bss a i ʻole .data, ʻo ka mea hoʻokaʻawale kūpono maikaʻi loa e loaʻa i ka mana piha o ko lākou kau ʻana, a ʻaʻohe hopena o ke koho. E hoʻohana i ke koho -Wl,-Tsection=addr, e like me ka mea i wehewehe ʻia ma ke alakaʻi o ka mea hoʻohana.
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 faila palapala, 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, AVRXNUMXDBXNUMX, AVRXNUMXDBXNUMX
- ʻAʻole loaʻa hou ke kākoʻo no nā ʻāpana AVR: AVR16DA28, AVR16DA32 a, AVR16DA48.
Helu 2.31
ʻAʻohe.
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 ʻana o nā hōʻailona do_clear_bss i nā faila hui, a laila e pale aku i ka hoʻokomo ʻia ʻana o kēlā mau hana maʻamau e ka loulou.
- 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 hou aʻe no ka hoʻomalu ʻana i kekahi o kēia mau koho, ʻo ia hoʻi -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 na 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, AVR64DA64DB128, AVR28DB, AVR128DA32DB128 48DB128.
- ʻAʻole loaʻa ke kākoʻo kākoʻo mea hoʻihoʻi ʻia no nā ʻāpana AVR penei: ATA5272, ATA5790, ATA5790N, ATA5791, ATA5795, ATA6285, ATA6286, ATA6612C, ATA6613C, ATA6614Q, ATA6616Q, ATA6617ATA, ATA664251ATA.
Mana 2.29 (Hoʻokuʻu Palekana Hana)
- Waihona poʻomanaʻo no ka mea hōʻuluʻulu i kūkulu ʻia No ka hōʻoia ʻana i hiki i ka mea hōʻuluʻulu ke kūlike me nā ʻōlelo kikoʻī e like me MISRA, ka , 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 define __XC_STRICT_MISRA i ka laina kauoha compiler. Ua hoʻonui ʻia nā mea i kūkulu ʻia a me kā lākou mau ʻōlelo e hoʻohana i nā ʻano ākea paʻa.
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.
Mana 2.19 (Hoʻokuʻu Palekana Hana)
ʻAʻohe.
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 ʻia ka pragma ma ka hoʻomaka ʻana o ka faile e kāpae i kēlā waihona holoʻokoʻa mai ka ʻikepili 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. - AEIU wehewehe ʻana o ka polokalamu Aia kahi waihona mea hou i kapa ʻia ʻo avr_chipinfo.html i loko o ka papa kuhikuhi docs o ka puʻunaue compiler. Hoʻopili kēia waihona 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 configuration a pau i ʻae ʻia no kēlā hāmeʻa, me ka ex.amples.
- Hoʻopili i ke kaʻina hana Ua hoʻohui ʻia i ka mea hōʻuluʻulu nā hoʻoponopono hoʻoponopono ʻana i ke kaʻina hana, e pani ana 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 hoʻopau ʻia no kahi faila me ka hoʻohana ʻana -mno-pa-on-file=fileinoa , a i ʻole i pio 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 o ka hoʻohana ʻana i __attribute__((nopa)) me ka wehewehe ʻana o ka hana, a i ʻole ma ka hoʻohana ʻana iā __nopa, e hoʻonui i __attribute__((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 waihona avr_chipinfo.html (i ʻōlelo ʻia ma luna) no ka hoʻonohonoho ʻana/waiwai pai e hoʻohana me kēia pragma.
- Loaʻa ke kākoʻo kākoʻo mea hou no kēia mau ʻāpana: AVR28DA128, AVR64DA128, AVR32DA128, a me AVR48DA128.
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 loko o ka hoʻomanaʻo papahana Hiki i ka mea hōʻuluʻulu ke hoʻokomo i nā mea kūpono i ka papahana 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 mea e mālama ʻia ai ka ʻikepili honua i hoʻopaʻa ʻia 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.
- 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.
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 a hoʻopololei i kekahi waihona waihona PIC a i ʻole AVR a no laila ke ala i ʻōlelo ʻia e kāhea aku ai 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.
Helu 2.45
ʻAʻohe.
Helu 2.41
Wehe ʻia nā hana fma kūpono ʻole (XC8-2913) ʻO ka waihona maʻamau C99 ( ) ʻaʻole i helu i ka multiply-add me ka pololei palena ʻ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.
Helu 2.40
ʻAʻohe.
Mana 2.39 (Hoʻokuʻu Palekana Hana)
ʻAʻohe.
Helu 2.36
ʻAʻohe.
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 string-to XC8, 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 ma kahi. ʻAʻole hōʻike ka maʻamau C i ke ʻano o nā hana ke ʻoi aku kēia kumu waiwai.
- Hoʻohana ʻia ka hoʻomaʻamaʻa ʻana i ka wikiwiki kūpono ʻole ke koho ʻana i ka hoʻonui ʻana i ka pae 3 (-O3). 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ō.
- Nā hana o ka waihona ʻO ka code no ka nui o nā hana waihona C maʻamau i loaʻa 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 me ka waihona avr-libc mua. No exampʻaʻole pono e hoʻopili i loko o ka hale waihona puke lprintf_flt (-lprintf_flt koho) no ka hoʻā ʻana i ke kākoʻo IO i hoʻopaʻa ʻia no nā mea kikoʻī. ʻO nā hiʻohiʻona IO akamai o ka Microchip Unified Standard Library e hoʻololi i kēia koho. Eia hou, ʻaʻole pono ka hoʻohana ʻana i _P mau hana maʻamau no ke kaula a me nā hana hoʻomanaʻo (e laʻa me strcpy_P() etc..) e hana ana ma nā kaula const i loko o ka flash. 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.
Helu 2.32
ʻAʻohe.
Helu 2.31
ʻAʻohe.
Helu 2.30
ʻAʻohe.
Mana 2.29 (Hoʻokuʻu Palekana Hana)
ʻAʻohe.
Helu 2.2
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.
Mana 2.19 (Hoʻokuʻu Palekana Hana)
ʻAʻohe.
Helu 2.10
ʻAʻohe
Helu 2.05
Nā mea const i loko o ka hoʻomanaʻo polokalamu E hoʻomanaʻo e hoʻokomo ʻia nā mea kūpono const-qualfiied ma ka hoʻomanaʻo polokalamu (e like me ka wehewehe ʻana ma aneʻi). 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 -mno-const-data-in-progmem.
Helu 2.00
- Hiki ke hoʻolālā ʻia nā fuse hoʻonohonoho pono me ka hoʻohana ʻana i kahi pragma config a ukali ʻia e nā hui waiwai hoʻonohonoho e kuhikuhi i ke kūlana fuse, e laʻa me #pragma config WDTON = SET #pragma config BODLEVEL = BODLEVEL_4V3
- Nā mea a me nā hana pono Hiki ke waiho ʻia nā mea a me nā hana ma kahi helu kikoʻī i ka hoʻomanaʻo me ka hoʻohana ʻana i ka CCI __at(address) specifier, 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ʻī e hōʻike i ka helu wahi e kau ʻia ai ka byte mua a i ʻole ke aʻo ʻana. 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.
- #hoʻokomo
- ʻO ka syntax hana interrupt hou Ua ʻae ka mea hōʻuluʻulu i ka CCI __interrupt(num) kikoʻī e hōʻike i nā hana C he mau mea hoʻoponopono. 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.
Helu 2.45
- ʻAʻole hiki ke hana pololei nā laikini kaʻahele (XCLM-235) ma nā kahua Linux me ka hoʻohana ʻana i nā mana glibc ma mua o 2.28.
- Ke kuhi hewa loko me nā pūʻulu o nā hale (XC8-3069) I ka wā i hoʻoponopono ʻia ai nā lālā ʻano nui o kahi hale, ʻaʻole i hoʻolaha pololei ʻia ka helu wahi kikoʻī i ka array. Ua alakaʻi ʻia kēia i kahi kūpono ʻole i ka ʻike kūpono o ka wahi helu wahi a me kahi hewa compiler kūloko. Ua hoʻoponopono ʻia kēia kūlana.
- Kākau hewa i nā kahawai ʻike ʻole (ML-353, XC8-3100) Inā ʻaʻole i hoʻonohonoho pono ʻia nā kahawai hoʻopuka maʻamau/hewa me ka hoʻohana ʻana i FDEV_SETUP_STREAM a i ʻole _init_stdout/_init_stderr , e hoʻāʻo ana e kākau iā lākou ua hopena ka hana i ʻike ʻole ʻia. Hoʻopili kēia i nā kākau mai nā hana stdlib, e like me perror (). E nānā ʻole ʻia nā mea kākau i kēia mau kahawai ma mua o ka hoʻomaka ʻana.
- Hoʻololi ʻole i kākoʻo ʻia (XC8-2505) ʻAʻole kākoʻo ka waihona avr-libc i ka * hoʻololi i nā kikoʻī hoʻololi ʻano printf, no example “%.*f”. Kākoʻo ʻia kēia me ka hoʻolauna ʻana o ka Microchip Unified Standard Library.
- Nui nā ʻōlelo aʻo i hoʻomaopopo ʻole ʻia (XC8-2409) Ke hoʻopuka nei ka mea hōʻuluʻulu i nā memo ʻōlelo aʻo like ʻole i ka wā e hālāwai ai me kahi pūʻulu const ʻaʻole i hoʻomaka ʻia. Ua hoʻopuka ʻia ka leka i hoʻokahi wale nō, ʻo ia ka hihia i ka wā e kū ai kēia kūlana.
Helu 2.41
- ʻO nā pilikia Dongle ma Ventura (XC8-3088) ʻAʻole paha i heluhelu pono ʻia nā Dongle i ka laikini ʻana i ka mea hōʻuluʻulu ma nā pūʻali 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 ʻana i ka 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 e hoʻohana ana i nā hana hoʻokele hoʻomanaʻo hoʻomanaʻo maʻamau (malloc() et al) i noi ʻia i ka hoʻohana ʻana 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.
- Hoʻopau ʻia nā hana fma kūpono ʻole (XC8-2913) ʻO ka hale waihona puke maʻamau C99 fma()-ʻohana ( ) ʻaʻole i helu i ka multiply-add me ka pololei palena ʻ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.
- ʻO ka lawelawe maikaʻi ʻole o ka hoʻololi ʻana i ke kaula (XC8-2921, XC8-2652) I ka wā i loaʻa ai kahi 'kumuhana kumuhana' no ka hoʻololi ʻana e strtod() ka mea i ʻike ʻia he helu lana i ka hōʻano exponential a aia kekahi ʻano i manaʻo ʻole ʻia ma hope o ka e/E. ʻano, a laila ma kahi i hāʻawi ʻia ai ka endptr, ua hāʻawi ʻia i kahi ʻōlelo e kuhikuhi ana i ke ʻano ma hope o ka , ʻ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 ana i ka ʻāpana "xx" o ke kaula.
Helu 2.40
- Hoʻomaha loa (XC8-2876) I ka hoʻohana ʻana i ke koho -mrelax, ʻaʻole i hoʻokaʻawale ka mea hōʻuluʻulu i kekahi mau ʻāpana, 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 i pio ka hiʻona palapala palapala e like me ka ʻōlelo ʻana ma ka ʻōlelo aʻo (XC8-2875) ʻO ka hiʻohiʻona const-data-in-config-mapped-progmem e hilinaʻi nei i ka hiʻohiʻona const-data-in-progmem e hoʻā ʻia. Inā ʻae ʻia ka hiʻohiʻona const-data-in-config-mapped-progmem me ka hoʻohana ʻana i ke koho a ua pio ka hiʻohiʻona const-data-in-progmem, ʻaʻole i hāʻule ka ʻanuʻu loulou, ʻoiai ka leka hoʻomaopopo e hōʻike ana i ka const-data-in. -config-mapped-progmem hiʻohiʻona ua pio ʻokoʻa, ʻaʻole pololei loa. Ua pio ka hiʻona const-data-in-config-mapped-progmem i kēia kūlana.
- Hoʻololi ʻo DFP no ke komo pono ʻana iā NVMCTRL (XC8-2848) ʻAʻole i noʻonoʻo ka code hoʻomaka wā holo i hoʻohana ʻia e nā polokalamu 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 IO SFR i ka ʻaoʻao i hoʻohana ʻia. e ka const-data-in-config-mapped-progmem compiler hiʻona. ʻ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 ʻo DFP no ka pale ʻana i ka palapala ʻāina uila (XC8-2847) Ua hoʻokō ʻia kahi hana-a puni no ka pilikia me ka hiʻohiʻona mīkini paʻi-flash-mapping i hōʻike ʻia ma ka AVR128DA28/32/48/64 Silicon Errata (DS80000882). ʻAʻole hoʻohana ʻia ka hiʻohiʻona const-data-in-config-mapped-progmem compiler ma ke ʻano paʻamau no nā mea i hoʻopili ʻia, a e ʻike ʻia kēia hoʻololi ma 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.
- E hana hewa me ka nopa (XC8-2833) Me ka hoʻohana ʻana i ke ʻano nopa me kahi hana i hoʻopaʻa ʻia kona inoa hui pū me ka hoʻohana ʻana i __asm__() hoʻāla i nā memo hewa mai ka mea hui. ʻAʻole hiki kēia hui.
- ʻO ka hemahema o ka hana ʻokoʻa me nā manaʻo kuhikuhi (XC8-2755, XC8-2731) Manaʻo nā hana me kahi helu hoʻopaʻapaʻa he 24-bit (__memx type) nā kuhikuhi i loko o ka papa inoa hoʻopaʻapaʻa hoʻololi ke loaʻa ka hiʻohiʻona const-data-in-progmem. hiki. ʻ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 const-data-in-progmem, ua hoʻololi ʻia nā manaʻo kuhikuhi 16-bit a pau i nā kuhikuhi 24-bit.
- ʻAʻole i hoʻopau ʻia nā hana o ka waihona strtoxxx (XC8-2620) I ka wā i hoʻohana ʻia ai ka hiʻohiʻona const-data-in-progmem, ʻaʻole i hōʻano hou ʻia ka ʻāpana endptr i nā hana waihona strtoxxx no nā kumu kumu kumu hoʻopaʻapaʻa ʻaʻole i ka hoʻomanaʻo papahana.
- Nā ʻōlelo aʻoaʻo no nā kiola hewa ʻole (XC8-2612) E hoʻopuka ka mea hoʻopili i kahi hewa inā hiki ke hoʻohana ʻia ka hiʻohiʻona const-in-progmem a ua hoʻolei ʻia ka helu wahi o kahi string literal i ka wahi helu helu ʻikepili (e hoʻolei i ka const qualfiier), no example, (uint8_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 uninitialized (XC8-2408) uninitialized a const volatile objects const
ʻaʻole i hoʻokomo ʻia i loko o ka hoʻomanaʻo papahana ma nā polokalamu e palapala ʻia 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.
Mana 2.39 (Hoʻokuʻu Palekana Hana)
ʻAʻohe.
Helu 2.36
Kupa i ka wā e lohi ai (XC8-2774) 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 nā hana i hoʻopaʻa ʻia, ka hopena o ka mālama ʻia ʻana ma ke ʻano he mau ʻole a hoʻomaka i ka hewa: __builtin_avr_delay_cycles manaʻo i kahi helu helu manawa. mau.
Helu 2.35
- ʻO ka hoʻokaʻawale pili ʻana me ka hoʻohana ʻana iā __at (XC8-2653) ʻAʻole i holo pololei ka hoʻokaʻawale ʻana o nā mea he nui i loko o 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ā helu wahi hoʻomaka ʻāpana (XC8-2650) ʻAʻole hāʻule ka koho -Wl,–hoʻomaka ʻana 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 .text a i ʻole .bss, pono e kau ʻia me kahi koho -Wl,-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-hoʻi (XC8-2646) ʻAʻole i hoʻokō pono ʻia ka 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 pono ka hoʻonui ʻana i ka wikiwiki (XC8-2637) Ke hoʻohana ʻia nei nā loiloi abstraction kaʻina hana i ke koho ʻana i nā loiloi pae 3 (-O3). 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 ka EEPROM maikaʻi ʻole (XC8-2629) ʻ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), no 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 koho ka mea hoʻopili -Ttext a i ʻole -Tdata (no exampi hoʻohana ʻia me 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.
- Paʻa me ka hana i hoʻohui ʻia (XC8-2580) Ua hāʻule ka mea hoʻopili inā hōʻike ʻia kahi hana me ka hoʻohana ʻana i nā ʻano hoʻopā, hōʻailona a i ʻole nmi ʻoi aku, e laʻa, __attribute__((__signal__, __interrupt__)).
- Loaʻa ʻole ke code interrupt ATtiny (XC8-2465) I ka wā e kūkulu ʻia ai nā mea hana ATtiny a ua pio ka hoʻoponopono ʻana (-O0), ua hoʻāla paha nā hana hoʻopau i ka operand ma waho o ka laulā.
- ʻAʻole i hāʻawi ʻia nā koho (XC8-2452) I ka wā e hoʻohana ai i ka koho -Wl me nā koho mea hoʻopili 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 pono ʻole ʻana i ka hoʻomanaʻo polokalamu (XC8-2450) I kekahi mau manawa, ua hoʻopuka ka mea hōʻuluʻulu i kahi hewa i loko (ʻike ʻole ʻia insn ) i ka heluhelu ʻana i kahi waiwai paita ʻelua mai kahi kuhikuhi i ka hoʻomanaʻo papahana.
Helu 2.32
ʻAʻole hiki ke komo ʻelua i ka waihona (XC8-2381) 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 i hiki ʻole ke hoʻololi i ka memo hewa.
Helu 2.31
ʻAʻole wehewehe ʻia nā hemahema o ka mea hōʻuluʻulu (XC8-2367) I ka wā e holo ana ma nā paepae Windows i hoʻonohonoho ʻia ka papa kuhikuhi manawaleʻa ʻōnaehana i kahi ala i loaʻa kahi kiko '.' ʻano, ʻaʻole hiki i ka mea hōʻuluʻulu ke hoʻokō.
Helu 2.30
- Ua kuhi hewa ʻia nā lepili honua ma hope o ka wehewehe ʻana (XC8-2299) ʻAʻole i hoʻonohonoho hou ʻia nā lepili honua i loko o nā kaʻina hui i helu ʻia e ka unuhi ʻana i ke kaʻina hana.
- ʻO kahi pōʻino hoʻomaha (XC8-2287) Ma ka hoʻohana ʻana i ke koho -mrelax ua hoʻopōʻino paha ka mea hoʻopili i ka wā i hoʻāʻo ai nā loiloi hoʻomaha hoʻomaha lele e wehe i ke aʻo ret ʻaʻole i ka hope o kahi ʻāpana.
- Paʻa 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 hoʻonui ʻōlelo i hiki ke hoʻopau i ke kaʻina hana abstraction optimizations i ka hāʻule ʻana, me ka hewa hoʻoponopono.
- ʻ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 hōʻailona maʻamau ʻole ma nā kuhikuhi string i hoʻihoʻi ʻia ke pio ka hiʻohiʻona const -mconst-data-in-progmem. 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) Inā ʻoi aku ma mua o hoʻokahi mea hoʻololi i loko o kahi ʻāpana unuhi i hoʻokomo ʻia i loko o kahi ʻāpana (me ka hoʻohana ʻana i ka __section a i ʻole __attribute__((ʻāpana)) ), a ʻo ka mea hoʻololi mua ʻaʻole i hoʻomaka ʻia a ʻaʻole i loaʻa kahi mea hoʻomaka. Ua nalowale nā ʻokoʻa ʻē aʻe i loko o ka ʻāpana unuhi like i waiho ʻia ma ka ʻāpana like.
Mana 2.29 (Hoʻokuʻu Palekana Hana)
ʻAʻohe.
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 kahi faila ʻ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.
Mana 2.19 (Hoʻokuʻu Palekana Hana)
ʻAʻohe.
Helu 2.10
- Haʻalele ka hoʻoneʻe ʻana (XC8-1891) ʻO ka mea hoʻokaʻawale kūpono ʻoi loa 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 (XC8E-388) He mau wehewehena mai , e like me clock_div_t a me clock_prescale_set() , ʻaʻole i wehewehe ʻia no nā polokalamu, me ka ATmega324PB, ATmega328PB, ATtiny441, a me ATtiny841.
- Nalo nā macros ʻO nā macros preprocessor _XC8_MODE_, __XC8_VERSION, __XC , a me __XC8 i wehewehe ʻakomi ʻia e ka mea hoʻopili. Loaʻa kēia mau mea i kēia manawa.
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 ʻike ʻia ke kahe 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 flash me ka polokalamu ʻole e ka MPLAB X IDE.
- ʻAʻole hiki ke hoʻokō i ka mea nui (XC8-1788) I kekahi mau kūlana i ʻike ʻole ʻia ka papahana i nā mea hoʻololi honua, ʻaʻole i puka 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 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.
- Kuloko 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() 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.
- ʻO ka hoʻokō ʻole ʻana i ka mea nui (XC8-1780, XC8-1767, XC8-1754) Ke hoʻohana nei 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/a i ʻole i laka ʻia ka hoʻokō ʻana o ka papahana ma ke code hoʻomaka runtime, ma mua o ka hiki ʻana i ke kumu ( ).
- ʻO ka hewa fuse me nā mea liʻiliʻi (XC8-1778, XC8-1742) ʻO nā mea attiny4/5/9/10/20/40 i hewa ʻole ka lōʻihi fuse i kuhikuhi ʻia i loko o kā lākou waihona poʻomanaʻo e alakaʻi i nā hewa linker i ka wā e hoʻāʻo ai e kūkulu i nā code i wehewehe i nā fuse. .
- Ua hoʻoponopono ʻia kahi hewa ʻāpana ʻāpana (XC8-1777)
- Hāʻule ka Assembler (XC8-1761) Ua hāʻule paha ka avr-as assembler i ka wā i holo ai ka mea hoʻopili ma lalo o Ubuntu 18.
- ʻAʻole i holoi ʻia nā mea (XC8-1752) ʻAʻole paha i holoi ʻia nā mea i hoʻomaka ʻole ʻia e ke code hoʻomaka hoʻomaka.
- ʻAʻole i mālama ʻia ka ʻōlelo kikoʻī o ka mea paʻi (XC8-1749) ʻAʻole i hana ka mea hoʻopili i kahi hewa ke hoʻohana ʻia nā koho kikoʻī he nui a hōʻike i nā mea like ʻole.
- Hoʻopili hewa ʻia ka hōʻailona __heap_start ma ka puʻu (XC8-1748).
- Ua hoʻokuʻu ʻia ka hewa hoʻoneʻe loulou (XC8-1739) i ka wā i loaʻa i ka code kahi rjmp a i ʻole rcall me kahi pahu hopu he 4k paita ka mamao.
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.
Hoʻohui MPLAB X IDE
- Hoʻohui MPLAB IDE 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.
- ʻO ka ʻike debug array (XC8-3157) ʻAʻole hōʻike pololei ʻia ka ʻike debug i hana ʻia e ka mea hoʻopili i ke ʻano o ka mea no nā hoʻonohonoho ma ka __memx address space. Mālama kēia i ka nānā ʻana i ka mea ma kahi IDE.
Hoʻokumu Code
- ʻO Segfault me ke 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 ka koho -fsection-anchors i hoʻoulu ʻia i kahi hewa compiler kūloko: Segmentation fault
- Hoʻopau i ka ʻike ma waho o ka sync (XC8-2948) Ke emi nei nā ʻōlelo aʻoaʻo o ka hoʻomaha hoʻomaha linker (no 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.
- ʻAʻole hiki ke hoʻokaʻawale ʻia ka hoʻomanaʻo PA (XC8-2881) I ka wā e hoʻohana ai i nā kaʻina hana abstraction optimizers, hiki i ka mea hoʻopili ke hōʻike i nā hewa hoʻokaʻawale hoʻomanaʻo inā kokoke ka nui o nā code i ka nui o ka hoʻomanaʻo papahana i loaʻa ma ka hāmeʻa, ʻoiai e hiki i ka papahana ke kūpono i ka mea i loaʻa. ākea.
- ʻAʻole naʻauao Smart-IO (XC8-2872) ʻO ka hiʻohiʻona akamai-io o ka mea hoʻopili e hoʻopuka i ka code kūpono akā ʻoi aku ka maikaʻi no ka hana snprintf inā ua pio ka hiʻohiʻona const-data-in-progmem a i ʻole inā loaʻa i ka hāmeʻa nā mea āpau. Flash palapala ʻia i ka hoʻomanaʻo ʻikepili.
- ʻO Smart-IO liʻiliʻi aʻe (XC8-2869) E hoʻopuka ka hiʻohiʻona akamai-io o ka mea hoʻopili i ka code kūpono akā ʻoi aku ka maikaʻi ke hoʻohana ʻia nā koho -flto a me -fno-builtin.
- ʻAʻole ʻike ka mea hoʻopili i kēia manawa i nā ʻāpana hoʻomanaʻo APPCODE a me APPDATA, ʻaʻole hoʻi i nā mahele [No-]Read-While-Write ma 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. E piʻi aʻe ka manawa o ka ʻikepili i hoʻokomo ʻia inā hiki ke hoʻohana ʻia ka hiʻohiʻona const-data-in-progmem, ʻoi aku hoʻi inā 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.
- ʻO ke kauoha hoʻoili waihona mea (XC8-2863) Hiki ke ʻokoʻa ke kauoha e hoʻoponopono ʻia ai nā faila mea e ka mea hoʻopili ma muli o ka hoʻohana ʻana i nā manaʻo loiloi abstraction (koho -mpa). Hoʻopili wale kēia i ke code e wehewehe ana i nā hana nāwaliwali ma nā modula he nui.
- Hoʻopili hewa me ka pau (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 i hoʻomaka ʻole ʻia, 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 PHID0/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 ke hāʻule ka mea hoʻopili inā hoʻohana ʻia ke koho mea hoʻokele -mrelax ke kāhea ke kumu kumu i kahi hōʻailona i wehewehe ʻia me ka hoʻohana ʻana i ke koho linker – Wl,–defsym.
- Hoʻomaka hewa ʻole (XC8-2679) Aia kahi ʻokoʻa ma waena o kahi e 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.
- Nā kelepona hana ʻino ʻino (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 me scanf() et al, e hoʻololi mau i kahi helu hexadecimal floating-point ʻaʻole i kuhikuhi i ka exponent i ʻole. No example: srtof(“0x1”, &endptr); e hoʻihoʻi i ka waiwai 0, ʻaʻole 1.
- ʻAʻole i hoʻokuʻu ʻia ka ʻōlelo aʻoaʻo aʻoaʻo hoʻopaʻa pololei (XC8-2542, XC8-2541).
- ʻAʻole i loaʻa i ke code interrupt duplicate (XC8-2421) Inā ʻoi aku ma mua o hoʻokahi hana interrupt i ke kino like, 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.
- ʻAʻole i hōʻike ʻia ka mea hoʻopili me kahi ala DFP hewa ʻole a loaʻa kahi faila 'spec' no ka mea i koho ʻia, ʻaʻole hōʻike ka mea hōʻuluʻulu i ka pūʻolo ʻohana nalo a ke koho nei i ka 'spec'. file, a laila hiki ke alakaʻi i kahi puka kūpono ʻole. ʻAʻole paʻa paha nā faila 'spec' 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 (XC8-1966).
- ʻO ka hāʻule ʻana me nā hana waihona a me __memx (XC8-1763) i kapa ʻia ʻo libgcc oat functions me ka hoʻopaʻapaʻa ma ka __memx address space hiki ʻole. 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;
- ʻO ka hoʻokō ʻana i ka libgcc liʻiliʻi (AVRTC-731) No nā huahana ATTiny4/5/9/10/20/40, ʻo ka hoʻokō maʻamau C / Math hale waihona puke 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 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 i koi ʻia ke hoʻohana ʻia ke koho -mrelax.
- Nā palena palena inoa (AVRTC-733) Kākoʻo ʻia nā wahi helu wahi i kapa ʻia e ke kaulahao 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 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 gmtime() , no example.
Palapala / Punawai
![]() |
MICROCHIP XC8 C Compiler Version 2.45 Hoʻokuʻu memo no AVR MCU [pdf] Na kuhikuhi AVR MCU, XC8 C, XC8 C Compiler Version 2.45 Release Notes for AVR MCU, Compiler Version 2.45 Release Notes for AVR MCU, Version 2.45 Release Notes for AVR MCU, Release Notes for AVR MCU, Notes for AVR MCU, AVR MCU |