MICROCHIP MPLAB XC8 C Կազմողի ծրագրակազմ
ԱՅՍ ՓԱՍՏԱԹՂԹԸ ԿԱՐԵՎՈՐ ՏԵՂԵԿՈՒԹՅՈՒՆՆԵՐ Է ԿԱՐԵՎՈՐ ՏԵՂԵԿՈՒԹՅՈՒՆՆԵՐ ՄԻԿՐՈՉԻՊ AVR ՍԱՐՔԵՐԻ ԹԻՐԱՓՈԽՄԱՆ ՄԻԿՐՈՉԻՊ XC8 C ԿՈՄՊԻԼԵՐԻ ՀԵՏ:
ԽՆԴՐՈՒՄ ԵՆՔ ԿԱՐԴԱՑԵՔ ԱՅՆ ԱՅՍ ԾՐԱԳՐԵՐԸ ՄԻՋՈՑԵԼՈՎ: ՏԵՍ MPLAB XC8 C ԿՈՄՊԻԼԵՐԻ ՀԱՂՈՐԴԱԳՐԱԿԱՆ ՆՇՈՒՄՆԵՐԸ PIC ՓԱՍՏԱԹՂԹԻ ՀԱՄԱՐ, ԵԹԵ ԴՈՒՔ ՕԳՏԱԳՈՐԾՈՒՄ ԵՔ ԿՈՄՊԻԼԵՐԸ 8-ԲԻՏԱՆՑ PIC ՍԱՐՔԵՐԻ ՀԱՄԱՐ:
Ավարտվել էview
Ներածություն
Microchip MPLAB® XC8 C կոմպիլյատորի այս թողարկումը պարունակում է մի քանի նոր հնարավորություններ, սխալների շտկումներ և նոր սարքի աջակցություն:
Կառուցման ամսաթիվը
Այս կոմպիլյատորի տարբերակի ստեղծման պաշտոնական ամսաթիվը 3 թվականի հուլիսի 2022-ն է:
Նախորդ Տարբերակ
MPLAB XC8 C կոմպիլյատորի նախորդ տարբերակը 2.39 էր, ֆունկցիոնալ անվտանգության կոմպիլյատոր, որը ստեղծվել էր 27 թվականի հունվարի 2022-ին: Նախորդ ստանդարտ կոմպիլյատորը 2.36 տարբերակն էր, որը ստեղծվել էր 27 թվականի հունվարի 2022-ին:
Ֆունկցիոնալ անվտանգության ձեռնարկ
MPLAB XC կոմպիլյատորների ֆունկցիոնալ անվտանգության ձեռնարկը հասանելի է փաստաթղթերի փաթեթում, երբ դուք գնում եք ֆունկցիոնալ անվտանգության լիցենզիա:
Բաղադրիչների լիցենզիաներ և տարբերակներ
MPLAB® XC8 C Compiler-ը AVR MCUs գործիքների համար գրված և տարածված է GNU Ընդհանուր հանրային լիցենզիայի (GPL) ներքո, ինչը նշանակում է, որ դրա սկզբնական կոդը ազատորեն տարածվում և հասանելի է հանրությանը: GNU GPL-ի գործիքների սկզբնական կոդը կարելի է ներբեռնել Microchip-ից առանձին webկայք։ Դուք կարող եք կարդալ GNU GPL-ը file անունը գտնվում է ձեր տեղադրման գրացուցակի ենթագրքում: GPL-ի հիմքում ընկած սկզբունքների ընդհանուր քննարկումը կարող եք գտնել այստեղ: Աջակցման կոդը տրամադրված է վերնագրի համար files-ը, կապող սկրիպտները և գործարկման ժամանակի գրադարանները սեփականության ծածկագիր են և չեն ծածկվում GPL-ի ներքո:
Այս կոմպիլյատորը GCC 5.4.0 տարբերակի, binutils 2.26 տարբերակի իրականացումն է և օգտագործում է avr-libc 2.0.0 տարբերակը:
Համակարգի պահանջներ
MPLAB XC8 C կոմպիլյատորը և դրա օգտագործած լիցենզավորման ծրագրակազմը հասանելի են մի շարք օպերացիոն համակարգերի համար, ներառյալ հետևյալի 64-բիթանոց տարբերակները. Microsoft Windows 10-ի պրոֆեսիոնալ հրատարակություններ; Ubuntu 18.04; և macOS 10.15.5: Երկուականները Windows-ի համար ստորագրվել են կոդով: Երկուականները mac OShave-ի համար ստորագրվել և վավերացվել են նոտարական կարգով:
Եթե դուք աշխատում եք ցանցային լիցենզիայի սերվերով, ապա լիցենզիայի սերվերը տեղադրելու համար կարող են օգտագործվել միայն կոմպիլյատորների կողմից աջակցվող օպերացիոն համակարգերով համակարգիչներ: Xclm 2.0 տարբերակի դրությամբ ցանցային լիցենզիայի սերվերը կարող է տեղադրվել Microsoft Windows Server հարթակում, սակայն լիցենզիայի սերվերը կարիք չունի գործելու օպերացիոն համակարգի սերվերային տարբերակի վրա:
Աջակցված սարքեր
Այս կոմպիլյատորն աջակցում է թողարկման պահին հայտնի բոլոր 8-բիթանոց AVR MCU սարքերին: Տեսեք (կազմողի փաստաթղթերի գրացուցակում) բոլոր աջակցվող սարքերի ցանկը: Սրանք files-ը նաև թվարկում է յուրաքանչյուր սարքի կազմաձևման բիթերի կարգավորումները:
Հրատարակություններ և լիցենզիայի թարմացումներ
MPLAB XC8 կոմպիլյատորը կարող է ակտիվացվել որպես լիցենզավորված (PRO) կամ չլիցենզավորված (անվճար) արտադրանք: Ձեր կոմպիլյատորը լիցենզավորելու համար անհրաժեշտ է ձեռք բերել ակտիվացման բանալի: Լիցենզիան թույլ է տալիս օպտիմալացման ավելի բարձր մակարդակ՝ համեմատած Անվճար արտադրանքի հետ: Չլիցենզավորված կոմպիլյատորը կարող է անորոշ ժամանակով աշխատել առանց լիցենզիայի:
MPLAB XC8 Functional Safety կոմպիլյատորը պետք է ակտիվացվի Microchip-ից գնված ֆունկցիոնալ անվտանգության լիցենզիայով: Կազմողն առանց այս լիցենզիայի չի գործի: Ակտիվացնելուց հետո կարող եք ընտրել ցանկացած օպտիմալացման մակարդակ և օգտագործել կոմպիլյատորի բոլոր հնարավորությունները: MPLAB XC Functional Safety Compiler-ի այս թողարկումն աջակցում է Ցանցային սերվերի լիցենզիային:
Լիցենզիայի տեսակների և լիցենզավորված կոմպիլյատորի տեղադրման մասին տեղեկությունների համար տես MPLAB XC C C Compilers (DS50002059) տեղադրում և լիցենզավորում:
Տեղադրում և ակտիվացում
Տես նաև Միգրացիայի հարցեր և սահմանափակումներ բաժինները՝ այս կազմողի հետ ներառված վերջին լիցենզիայի կառավարչի մասին կարևոր տեղեկությունների համար:
Եթե օգտագործում եք MPLAB IDE, համոզվեք, որ տեղադրել եք MPLAB X IDE-ի վերջին տարբերակը 5.0 կամ ավելի նոր տարբերակը, նախքան այս գործիքը տեղադրելը: Կոմպիլյատորը տեղադրելուց առաջ դուրս եկեք IDE-ից: Գործարկեք .exe (Windows), .run (Linux) կամ հավելվածի (macOS) կոմպիլյատոր տեղադրող հավելվածը, օրինակ՝ XC8-1.00.11403-windows.exe և հետևեք էկրանի ցուցումներին:
Առաջարկվում է լռելյայն տեղադրման գրացուցակը: Եթե դուք օգտագործում եք Linux, դուք պետք է տեղադրեք կոմպիլյատորը՝ օգտագործելով տերմինալ և արմատային հաշվից: Տեղադրեք՝ օգտագործելով macOS հաշիվ՝ ադմինիստրատորի արտոնություններով:
Ակտիվացումն այժմ իրականացվում է առանձին՝ տեղադրման համար: Լրացուցիչ տեղեկությունների համար տես MPLAB® XC C C Compilers (DS52059) լիցենզիայի կառավարիչ փաստաթուղթը:
Եթե դուք ընտրում եք կոմպիլյատորն աշխատեցնել գնահատման լիցենզիայի ներքո, այժմ դուք նախազգուշացում կստանաք կազմման ժամանակ, երբ լինեք ձեր գնահատման ժամանակաշրջանի ավարտից հետո 14 օրվա ընթացքում: Նույն նախազգուշացումը տրվում է, եթե դուք գտնվում եք HPA-ի ձեր բաժանորդագրության ավարտից 14 օրվա ընթացքում:
XC Network License Server-ը առանձին տեղադրող է և ներառված չէ մեկ օգտատիրոջ կոմպիլյատորի տեղադրման մեջ:
XC License Manager-ն այժմ աջակցում է լողացող ցանցի լիցենզիաների ռոումինգին: Բջջային կապի օգտատերերին ուղղված այս հատկությունը թույլ է տալիս լողացող լիցենզիային կարճ ժամանակով դուրս գալ ցանցից: Օգտագործելով այս հնարավորությունը, դուք կարող եք անջատվել ցանցից և դեռ օգտագործել ձեր MPLAB XC կոմպիլյատորը: Տե՛ս XCLM-ի տեղադրման փաստաթղթերի թղթապանակը՝ այս հատկության մասին ավելին իմանալու համար: MPLAB X IDE-ն ներառում է Լիցենզիաների պատուհան (Գործիքներ > Լիցենզիաներ) ռոումինգը տեսողականորեն կառավարելու համար:
Տեղադրման խնդիրների լուծում
Եթե Windows օպերացիոն համակարգերից որևէ մեկի տակ կոմպիլյատորը տեղադրելու դժվարություններ եք ունենում, փորձեք հետևյալ առաջարկությունները:
- Գործարկեք տեղադրումը որպես ադմինիստրատոր:
- Տեղադրող հավելվածի թույլտվությունները դրեք «Ամբողջական վերահսկողություն»: (Աջ սեղմեք file, ընտրեք Հատկություններ, Անվտանգություն ներդիր, ընտրեք օգտատերը, խմբագրեք):
- Սահմանեք ժամանակային թղթապանակի թույլտվությունները «Լրիվ վերահսկողություն!
Temp թղթապանակի գտնվելու վայրը որոշելու համար Run հրամանի մեջ մուտքագրեք %temp% (Windows logo + R): Սա կբացի ա file explorer երկխոսություն, որը ցույց է տալիս այդ գրացուցակը և թույլ կտա որոշել այդ թղթապանակի ուղին:
Կազմողի փաստաթղթեր
Կազմողի օգտատիրոջ ուղեցույցները կարող են բացվել HTML էջից, որը բացվում է ձեր դիտարկիչում՝ MPLAB X IDE վահանակի կապույտ օգնության կոճակը սեղմելիս, ինչպես նշված է սքրինշոթում:
Եթե դուք կառուցում եք 8-բիթանոց AVR թիրախների համար, MPLAB® XC8 C Կազմողի Օգտագործողի ուղեցույցը AVR® MCU-ի համար պարունակում է տեղեկատվություն այն կոմպիլյատորների ընտրանքների և առանձնահատկությունների մասին, որոնք կիրառելի են այս ճարտարապետության համար:
Հաճախորդների աջակցություն
Microchip-ը ողջունում է սխալի մասին հաղորդումները, առաջարկությունները կամ մեկնաբանությունները այս կոմպիլյատորի տարբերակի վերաբերյալ: Խնդրում ենք ուղղել վրիպակների մասին հաշվետվություններ կամ գործառույթների հարցումներ Աջակցման համակարգի միջոցով:
Փաստաթղթերի թարմացումներ
MPLAB XC8 փաստաթղթերի առցանց և արդի տարբերակների համար այցելեք Microchip-ի առցանց տեխնիկական փաստաթղթերը: webկայք։
Այս թողարկման նոր կամ թարմացված AVR փաստաթղթերը.
- MUSL հեղինակային իրավունքի մասին ծանուցում
- MPLAB XC C կոմպիլյատորների տեղադրում և լիցենզավորում (վերանայում M)
- MPLAB XC8 Օգտագործողի ուղեցույց ներկառուցված ինժեներների համար – AVR MCUs (վերանայում A)
- MPLAB XC8 C Կազմողի Օգտագործողի ուղեցույց AVR MCU-ի համար (վերափոխում F)
- Microchip Unified Standard Library Reference Guide (վերանայում B)
Microchip Unified Standard Library Reference Guide-ը նկարագրում է Microchip Unified Standard Library-ի կողմից սահմանված գործառույթների վարքագիծը և միջերեսը, ինչպես նաև գրադարանի տեսակների և մակրոների նախատեսված օգտագործումը: Այս տեղեկատվության մի մասը նախկինում պարունակվում էր MPLAB® XC8 C Compiler User!s ուղեցույցում AVR® MCU-ի համար: Սարքի համար նախատեսված գրադարանի տեղեկատվությունը դեռևս պարունակվում է այս կոմպիլյատորի ուղեցույցում:
Եթե դուք նոր եք սկսում 8-բիթանոց սարքերով և MPLAB XC8 C Կազմողով, MPLAB® XC8 User!s ուղեցույցը ներկառուցված ինժեներների համար – AVR® MCUs (DS50003108) տեղեկատվություն ունի MPLAB X IDE-ում նախագծերի տեղադրման և կոդ գրելու մասին: ձեր առաջին MPLAB XC8 C նախագծի համար: Այս ուղեցույցը այժմ բաշխվում է կոմպիլյատորի հետ:
Hamate-ի Օգտագործողի ուղեցույցը ներառվել է այս թողարկման փաստաթղթերի գրացուցակում: Այս ուղեցույցը նախատեսված է նրանց համար, ովքեր աշխատում են Hamate-ն որպես առանձին հավելված:
Ինչ նորություն կա
Հետևյալները AVR-թիրախային նոր առանձնահատկություններ են, որոնք այժմ աջակցում է կոմպիլյատորին: Ենթավերնագրերում տարբերակի համարը ցույց է տալիս առաջին կոմպիլյատորի տարբերակը, որն աջակցում է հաջորդող հատկանիշներին:
Տարբերակ 2.40
Նոր սարքի աջակցություն Աջակցությունն այժմ հասանելի է հետևյալ AVR մասերի համար՝ AT90PWM3, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR64AVREA 28EA64.
Բարելավված ընթացակարգային վերացականություն Ընթացակարգային աբստրակցիայի (PA) օպտիմալացման գործիքը բարելավվել է այնպես, որ կարող է ուրվագծվել ֆունկցիայի կանչի հրահանգ պարունակող կոդը (կանչի հետկանչում): Դա տեղի կունենա միայն այն դեպքում, եթե կույտը չի օգտագործվում արգումենտներ փոխանցելու կամ ֆունկցիայից վերադարձի արժեք ստանալու համար: Ստեկն օգտագործվում է փոփոխական փաստարկների ցուցակով ֆունկցիա կանչելիս կամ այն ֆունկցիան կանչելիս, որն ավելի շատ արգումենտ է վերցնում, քան կան այդ նպատակով նախատեսված ռեգիստրներ: Այս հատկությունը կարող է անջատվել՝ օգտագործելով monk-pa-outline-calls տարբերակը, կամ ընթացակարգային աբստրակցիան կարող է ամբողջությամբ անջատվել օբյեկտի համար: file կամ գործել՝ օգտագործելով -monk-pa-on-file և -mo.-pa-on-function համապատասխանաբար, կամ օգտագործելով nipa հատկանիշը (nipa specifier) ընտրովի գործառույթների հետ
Կոդի ծածկույթի մակրո Կազմողն այժմ սահմանում է __CODECOV մակրո, եթե նշված է վավեր mcodecov տարբերակ:
Հիշողության ամրագրման տարբերակ Այժմ xc8-cc վարորդը կընդունի -mreserve=space@start: end տարբերակը AVR թիրախների համար կառուցելիս: Այս ընտրանքը պահպանում է նշված հիշողության տիրույթը կամ տվյալների կամ ծրագրի հիշողության տարածքում՝ թույլ չտալով կապակցողին լրացնել կոդը կամ օբյեկտները այս տարածքում:
Ավելի խելացի IO Smart IO գործառույթներում մի քանի բարելավումներ են կատարվել, ներառյալ printf հիմնական կոդի ընդհանուր փոփոխությունները, %n փոխակերպման ցուցիչը դիտարկելով որպես անկախ տարբերակ, միացնելով vararg pop ռեժիմները ըստ պահանջի, օգտագործելով ավելի կարճ տվյալների տեսակներ, որտեղ հնարավոր է IO ֆունկցիայի փաստարկները մշակելու համար: , և ընդհանուր կոդի ֆակտորինգ դաշտի լայնության և ճշգրտության մշակման մեջ: Սա կարող է հանգեցնել կոդի և տվյալների զգալի խնայողության, ինչպես նաև մեծացնել IO-ի կատարման արագությունը:
Տարբերակ 2.39 (Ֆունկցիոնալ անվտանգության թողարկում)
Ցանցային սերվերի լիցենզիա MPLAB XC8 Functional Safety Compiler-ի այս թողարկումն աջակցում է Ցանցային սերվերի լիցենզիային:
Տարբերակ 2.36
Ոչ մեկը:
Տարբերակ 2.35
Նոր սարքի աջակցություն Աջակցությունը հասանելի է հետևյալ AVR մասերի համար՝ ATTINY3224, ATTINY3226, ATTINY3227, AVR64DD14, AVR64DD20, AVR64DD28 և AVR64DD32:
Բարելավված համատեքստի անցում Նոր -mcall-isr-prologues տարբերակը փոխում է, թե ինչպես են ընդհատման գործառույթները պահում գրանցամատյանները մուտքի ժամանակ և ինչպես են այդ ռեգիստրները վերականգնվում, երբ ընդհատման ռեժիմն ավարտվում է: Այն աշխատում է նույն կերպ, ինչ -mcall-prologues տարբերակը, բայց ազդում է միայն ընդհատման գործառույթների վրա (ISR):
Նույնիսկ ավելի բարելավված համատեքստի անցում Նոր -mgas-isr-prologues տարբերակը վերահսկում է կոնտեքստի քորային ծածկագիրը, որը ստեղծվում է փոքր ընդհատումների սպասարկման ռեժիմների համար: Երբ միացված է, այս հատկությունը անսամբլերին թույլ կտա սկանավորել ISR-ը ռեգիստրի օգտագործման համար և միայն անհրաժեշտության դեպքում կպահի այդ օգտագործված ռեգիստրները:
Կարգավորելի ֆլեշ քարտեզագրում AVR DA և AVR DB ընտանիքի որոշ սարքեր ունեն SFR (օրինակ, FLMAP), որը սահմանում է, թե ծրագրի հիշողության որ բաժինը 32k կփոխանցվի տվյալների հիշողության մեջ: Նոր – mconst-data-in-config-mapped-proem տարբերակը կարող է օգտագործվել, որպեսզի կապակցիչը տեղադրի բոլոր թերությունները որակավորված տվյալները մեկ 32k հատվածում և ավտոմատ կերպով սկզբնավորի համապատասխան SFR ռեգիստրը, որպեսզի համոզվի, որ այս տվյալները քարտեզագրվեն տվյալների հիշողության տարածքում: , որտեղ այն ավելի արդյունավետ հասանելի կլինի:
Միկրոչիպի միասնական ստանդարտ գրադարաններ Բոլոր MPLAB XC կոմպիլյատորները կհամօգտագործեն Microchip Unified Standard գրադարանը, որն այժմ հասանելի է MPLAB XC8-ի այս թողարկումով: MPLAB® XC8 C Կազմողի Օգտագործողի ուղեցույցը/կամ AVR® MCU-ն այլևս չի ներառում այս ստանդարտ գործառույթների փաստաթղթերը: Այս տեղեկատվությունը այժմ կարելի է գտնել Microchip Unified Standard Library Reference Guide-ում: Նկատի ունեցեք, որ avr-libc-ի կողմից նախկինում սահմանված որոշ գործառույթներ այլևս հասանելի չեն: (Տես Գրադարան):': ֆունկցիոնալությունը…)
Խելացի IO Որպես նոր միասնական գրադարանների մաս, տպագրության և սկանավորման ընտանիքներում IO գործառույթներն այժմ անհատականացված են յուրաքանչյուր կառուցման վրա՝ հիմնվելով ծրագրում այդ գործառույթների օգտագործման վրա: Սա կարող է էապես նվազեցնել ծրագրի կողմից օգտագործվող ռեսուրսները:
Խելացի IO օգնության տարբերակ Խելացի IO ֆունկցիաների (օրինակ՝ printf () կամ scanf ()) զանգերը վերլուծելիս կոմպիլյատորը չի կարող միշտ որոշել ֆորմատի տողից կամ արգումենտներից եզրակացնել, որ զանգի համար պահանջվող փոխակերպման սպեցիֆիկատորները: Նախկինում կոմպիլյատորը միշտ ենթադրություններ չէր անում և ապահովում էր, որ լիովին ֆունկցիոնալ IO գործառույթները կապված են ծրագրի վերջնական պատկերի հետ: Ավելացվել է նոր՝ msmart-io-format=fmt տարբերակ, որպեսզի կոմպիլյատորը կարողանա օգտագործողի կողմից տեղեկացված լինել խելացի IO ֆունկցիաների կողմից օգտագործվող փոխակերպման սպեցիֆիկատորների մասին, որոնց օգտագործումը երկիմաստ է՝ կանխելով չափազանց երկար IO առօրյայի կապակցումը: (Լրացուցիչ մանրամասների համար տե՛ս smart-io-format Option):
Հատուկ բաժինների տեղադրում Նախկինում -Wl, –section-start տարբերակը միայն տեղադրում էր նշված հատվածը պահանջվող հասցեում, երբ կապող սկրիպտը սահմանում էր նույն անունով ելքային բաժին: Երբ դա այդպես չէր, բաժինը տեղադրվեց կապողի կողմից ընտրված հասցեում, և տարբերակն ըստ էության անտեսվեց: Այժմ տարբերակը կհարգվի բոլոր հատուկ բաժինների համար, նույնիսկ եթե կապող սկրիպտը չի սահմանում բաժինը: Այնուամենայնիվ, նշեք, որ ստանդարտ բաժինների համար, ինչպիսիք են. տեքստ,. bss կամ . տվյալների, լավագույն պիտանի հատկացուցիչը դեռևս կունենա ամբողջական վերահսկողություն դրանց տեղադրման վրա, և տարբերակն ազդեցություն չի ունենա: Օգտագործեք -Wl, -Tsection=add տարբերակը, ինչպես նկարագրված է օգտագործողի ուղեցույցում:
Տարբերակ 2.32
Stack ուղեցույց Հասանելի է PRO կոմպիլյատորի լիցենզիայով, կոմպիլյատորի կույտի ուղղորդման հատկությունը կարող է օգտագործվել ծրագրի կողմից օգտագործվող ցանկացած կույտի առավելագույն խորությունը գնահատելու համար: Այն կառուցում և վերլուծում է ծրագրի կանչի գրաֆիկը, որոշում է յուրաքանչյուր ֆունկցիայի կույտերի օգտագործումը և պատրաստում հաշվետվություն, որտեղից կարելի է եզրակացնել ծրագրի կողմից օգտագործվող կույտերի խորությունը: Այս հատկությունը միացված է -mchp-stack-usage հրամանի տող տարբերակի միջոցով: Կույտի օգտագործման ամփոփագիրը տպագրվում է գործարկումից հետո: Քարտեզում հասանելի է մանրակրկիտ փաթեթի հաշվետվությունը file, որը կարելի է պահանջել սովորական եղանակով։
Նոր սարքի աջակցություն Աջակցություն հասանելի է հետևյալ AVR մասերի համար՝ ATTINY 427, ATTINY 424, ATTINY 426, ATTINY827, ATTINY824, ATTINY826, AVR32DB32, AVR64DB48, AVR64DB64, AVR64DBDBD28, AVR32, AVR28, AVR64 AVR32DB32.
Հետ կանչված սարքի աջակցություն Աջակցություն այլևս հասանելի չէ հետևյալ AVR մասերի համար՝ AVR16DA28, AVR16DA32 և AVR16DA48:
Տարբերակ 2.31
Ոչ մեկը:
Տարբերակ 2.30
Տվյալների սկզբնավորումը կանխելու նոր տարբերակ Նոր -mno-data-ini t դրայվեր տարբերակը կանխում է տվյալների սկզբնավորումը և bss բաժինների մաքրումը: Այն աշխատում է՝ ճնշելով do_ copy_ տվյալների և d o_ clear_ bss սիմվոլների ելքը հավաքման մեջ files, որն իր հերթին կկանխի այդ առօրյաների ընդգրկումը կապողի կողմից:
Ընդլայնված օպտիմալացումներ Կատարվել են մի շարք օպտիմիզացման բարելավումներ, ներառյալ ավելորդ վերադարձի հրահանգների հեռացումը, skip-if-bit-is հրահանգից հետո որոշ թռիչքների հեռացում և բարելավված ընթացակարգային աբստրակցիա և այս գործընթացը կրկնելու հնարավորությունը:
Այս օպտիմալացումներից որոշները վերահսկելու համար այժմ հասանելի են լրացուցիչ տարբերակներ, մասնավորապես -f հատվածի խարիսխները, որոնք թույլ են տալիս ստատիկ օբյեկտների մուտքը կատարել մեկ նշանի համեմատ; -mpai derations=n, որը թույլ է տալիս փոխել ընթացակարգային վերացական կրկնությունների քանակը 2-ի լռելյայնից; և, -mpa- call cost- shortcall, որն ավելի ագրեսիվ ընթացակարգային աբստրակցիա է կատարում՝ հուսալով, որ կապողը կարող է հանգստացնել երկար զանգերը: Այս վերջին տարբերակը կարող է մեծացնել կոդի չափը, եթե հիմքում ընկած ենթադրությունները չկատարվեն:
Նոր սարքի աջակցություն Աջակցությունը հասանելի է հետևյալ AVR մասերի համար՝ AVR16DA28, AVR16DA32,
AVR16DA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVRXNUMXDBXNUMX, AVRXNUMXDBXNUMX, AVRXNUMXDAXNUMX, AVRXNUMXDAXNUMX,
Հետ կանչված սարքի աջակցություն Աջակցությունն այլևս հասանելի չէ հետևյալ AVR մասերի համար՝ ATA5272, ATA5790, ATA5790N, ATA5791, ATA5795, ATA6285, ATA6286, ATA6612C, ATA6613C, ATA6614Q, ATA6616TAC, ATA6617, ATA:
Տարբերակ 2.29 (Ֆունկցիոնալ անվտանգության թողարկում)
Վերնագիր file ներկառուցված կոմպիլյատորների համար Ապահովելու համար, որ կոմպիլյատորը կարող է համապատասխանել լեզվի առանձնահատկություններին, ինչպիսիք են MISRA-ն, վերնագիր file, որը ավտոմատ կերպով ներառված է , թարմացվել է։ Այս վերնագիրը պարունակում է բոլոր ներկառուցված գործառույթների նախատիպերը, ինչպիսիք են _buil tin _avrnop () և _buil tin_ avr delay_ ցիկլերը () : Որոշ ներկառուցվածներ կարող են չհամապատասխանել MISRA-ին. դրանք կարելի է բաց թողնել՝ ավելացնելով _Xe_ STRICT_ MISRA սահմանումը կոմպիլյատորի հրամանի տողում: Ներկառուցվածները և դրանց հայտարարագրերը թարմացվել են ֆիքսված լայնության տեսակների օգտագործման համար:
Տարբերակ 2.20
Նոր սարքի աջակցություն Աջակցությունը հասանելի է հետևյալ AVR մասերի համար՝ ATTINY1624, ATTINY1626 և ATTINY1627:
Ավելի լավ տեղաբաշխում Կոմպիլյատորում լավագույն պիտանի հատկացուցիչը (BFA) բարելավվել է այնպես, որ բաժինները բաշխվում են ավելի լավ օպտիմալացում թույլ տվող հերթականությամբ: BFA-ն այժմ աջակցում է անվանված հասցեների տարածություններին և ավելի լավ է կարգավորում տվյալների սկզբնականացումը:
Բարելավված ընթացակարգային վերացականություն Ընթացակարգային աբստրակցիայի օպտիմալացումներն այժմ իրականացվում են ավելի շատ կոդի հաջորդականությունների վրա: Նախկին իրավիճակները, երբ այս օպտիմիզացումը կարող էր մեծացնել կոդի չափը, լուծվել են՝ օպտիմիզացման կոդը տեղեկացնելով կապակցողի աղբահանության գործընթացի մասին:
AVR Assembler-ի բացակայություն AVR Assembler-ն այլևս ներառված չէ այս բաշխման մեջ:
Տարբերակ 2.19 (Ֆունկցիոնալ անվտանգության թողարկում)
Ոչ մեկը:
Տարբերակ 2.10
Կոդի ծածկույթ Այս թողարկումը ներառում է ծածկագրի ծածկույթի հատկություն, որը հեշտացնում է նախագծի սկզբնական ծածկագրի կատարման աստիճանի վերլուծությունը: Այն միացնելու համար օգտագործեք -mcodecov=ram տարբերակը: Ձեր սարքաշարի վրա ծրագրի գործարկումից հետո կոդերի ծածկույթի մասին տեղեկատվությունը կհամադրվի սարքում, և այն կարող է փոխանցվել և ցուցադրվել MPLAB X IDE-ի կողմից՝ ծածկագրի ծածկույթի հավելման միջոցով: Տե՛ս IDE-ի փաստաթղթերը՝ այս հավելվածի վերաբերյալ տեղեկություններ ստանալու համար: #pragma mcodecov-ը կարող է օգտագործվել ծածկույթի վերլուծությունից հետագա գործառույթները բացառելու համար: Իդեալում, պրագման պետք է ավելացվի սկզբում file բացառել այդ ամբողջը file ծածկույթի վերլուծությունից: Որպես այլընտրանք, հատկանիշը ( (mcodecov) ) կարող է օգտագործվել ծածկույթի վերլուծությունից որոշակի գործառույթ բացառելու համար:
Սարքի նկարագրություն files Նոր սարք file կոչվում է avr chipinfo. html-ը գտնվում է կոմպիլյատորի բաշխման փաստաթղթերի գրացուցակում: Սա file թվարկում է կոմպիլյատորի կողմից աջակցվող բոլոր սարքերը: Կտտացրեք սարքի անվան վրա և այն կբացի էջ, որը ցույց է տալիս այդ սարքի համար բոլոր թույլատրելի կոնֆիգուրացիայի բիթերի կարգավորումները/արժեք զույգերը, օրինակ՝amples.
Ընթացակարգային աբստրակցիա Ընթացակարգային աբստրակցիայի օպտիմալացումները, որոնք փոխարինում են հավաքման կոդի սովորական բլոկները այդ բլոկի արդյունահանված պատճենի կանչերով, ավելացվել են կոմպիլյատորին: Դրանք կատարվում են առանձին հավելվածի միջոցով, որն ավտոմատ կերպով կանչվում է կոմպիլյատորի կողմից 2, 3 կամ մակարդակների օպտիմալացումներ ընտրելիս: Այս օպտիմալացումները նվազեցնում են կոդի չափը, բայց դրանք կարող են նվազեցնել կատարման արագությունը և կոդի վրիպազերծումը:
Ընթացակարգային աբստրակցիան կարող է անջատվել օպտիմալացման ավելի բարձր մակարդակներում՝ օգտագործելով -mno-pa տարբերակը, կամ կարող է միացվել օպտիմալացման ավելի ցածր մակարդակներում (ըստ ձեր լիցենզիայի)՝ օգտագործելով -mpa: Այն կարող է անջատվել օբյեկտի համար file օգտագործելով -mno-pa-on-file=fileանունը, կամ անջատված է ֆունկցիայի համար՝ օգտագործելով -mno-pa on function= ֆունկցիան:
Ձեր ելակետային կոդի ներսում ընթացակարգային աբստրակցիան կարող է անջատվել ֆունկցիայի համար՝ օգտագործելով _attribute_ ( (nopa)) ֆունկցիայի սահմանմամբ, կամ օգտագործելով _nopa, որը ընդլայնվում է մինչև հատկանիշ ( (nopa, noinline)) և այդպիսով կանխում է ֆունկցիայի ներկառուցումը: և կա ներդիր կոդի վերացականում:
Կողպեք բիթի աջակցություն պրագմայում #pragma config-ն այժմ կարող է օգտագործվել AVR-ի կողպման բիթերը, ինչպես նաև այլ կազմաձևման բիթերը նշելու համար: Ստուգեք avr չիպի տվյալները: html file (վերևում նշված) պարամետրերի/արժեքների զույգերի համար, որոնք կօգտագործվեն այս պրագմայի հետ:
Նոր սարքի աջակցություն Աջակցությունը հասանելի է հետևյալ մասերի համար՝ AVR28DA128, AVR64DA128, AVR32DA128 և AVR48DA128:
Տարբերակ 2.05
Ավելի շատ բիթ ձեր դոլարի համար Այս կոմպիլյատորի և լիցենզիայի կառավարչի macOS տարբերակը այժմ 64-բիթանոց հավելված է: Սա կապահովի, որ կոմպիլյատորը կտեղադրի և կաշխատի առանց նախազգուշացումների macOS-ի վերջին տարբերակների վրա:
Const օբյեկտները ծրագրի հիշողության մեջ Կազմողն այժմ կարող է տեղադրել const-որակավորված օբյեկտներ ծրագրի Flash հիշողության մեջ, այլ ոչ թե դրանք տեղակայված լինեն RAM-ում: Կոմպիլյատորը փոփոխվել է այնպես, որ const-qualified գլոբալ տվյալները պահվում են ծրագրի ֆլեշ հիշողության մեջ, և այդ տվյալները կարող են ուղղակիորեն և անուղղակիորեն մուտք գործել՝ օգտագործելով համապատասխան ծրագրի հիշողության հրահանգները: Այս նոր գործառույթը լռելյայն միացված է, սակայն այն կարող է անջատվել՝ օգտագործելով -mno-const-data-in-progmem տարբերակը: Avrxmega3 և avrtiny ճարտարապետությունների համար այս հատկությունը պարտադիր չէ և միշտ անջատված է, քանի որ ծրագրի հիշողությունը քարտեզագրվում է այս սարքերի տվյալների հասցեների տարածության մեջ:
Ստանդարտ անվճար Այս կոմպիլյատորի չլիցենզավորված (անվճար) տարբերակներն այժմ թույլ են տալիս օպտիմալացումներ մինչև և ներառյալ 2-րդ մակարդակը: Սա թույլ կտա նմանատիպ, թեև ոչ նույնական արդյունք, ինչ նախկինում հնարավոր էր ստանդարտ լիցենզիայի միջոցով:
Բարի գալուստ AVRASM2 2-բիթանոց սարքերի համար նախատեսված AVRASM8 հավաքիչը այժմ ներառված է XC8 կոմպիլյատորի տեղադրիչում: Այս assembler-ը չի օգտագործվում XC8 կոմպիլյատորի կողմից, սակայն հասանելի է ձեռագիր հավաքման աղբյուրի վրա հիմնված նախագծերի համար:
Նոր սարքի աջակցություն Աջակցությունը հասանելի է հետևյալ մասերի համար՝ ATMEGA1608, ATMEGA1609, ATMEGA808 և ATMEGA809:
Տարբերակ 2.00
Բարձր մակարդակի վարորդ Նոր դրայվերը, որը կոչվում է xc8-cc, այժմ նստած է նախորդ avr-gcc դրայվերից և xc8 դրայվերից, և այն կարող է կանչել համապատասխան կոմպիլյատորը՝ հիմնվելով թիրախային սարքի ընտրության վրա: Այս դրայվերն ընդունում է GCC ոճի տարբերակները, որոնք կամ թարգմանվում են կամ փոխանցվում են կատարվող կոմպիլյատորին: Այս դրայվերը թույլ է տալիս նմանատիպ իմաստաբանությամբ տարբերակների մի շարք օգտագործել ցանկացած AVR կամ PIC թիրախի հետ և, հետևաբար, կոմպիլյատորին կանչելու առաջարկվող միջոցն է: Անհրաժեշտության դեպքում, հին avr-gcc դրայվերը կարող է ուղղակիորեն կանչվել՝ օգտագործելով հին ոճի տարբերակները, որոնք ընդունվել էին ավելի վաղ կոմպիլյատորների տարբերակներում:
Ընդհանուր C ինտերֆեյս Այս կոմպիլյատորն այժմ կարող է համապատասխանել MPLAB Common C ինտերֆեյսին, ինչը թույլ է տալիս աղբյուրի կոդը ավելի հեշտությամբ տեղափոխել բոլոր MPLAB XC կոմպիլյատորներում: -mext=cci տարբերակը պահանջում է այս հատկությունը՝ հնարավորություն տալով այլընտրանքային շարահյուսություն բազմաթիվ լեզուների ընդարձակման համար:
Նոր գրադարանավար վարորդ Գրադարանավարի նոր վարորդը տեղադրված է նախորդ PIC գրադարանավարի և AVR avr-ar գրադարանավարի վերևում: Այս դրայվերն ընդունում է GCC-արխիվատորի ոճի տարբերակները, որոնք կամ թարգմանվում են կամ փոխանցվում են գրադարանավարին, որը կատարվում է: Նոր դրայվերը թույլ է տալիս նմանատիպ իմաստաբանությամբ տարբերակների մի շարք օգտագործել ցանկացած PIC կամ AVR գրադարան ստեղծելու կամ շահարկելու համար: file և, հետևաբար, գրադարանավարին կանչելու առաջարկվող միջոցն է: Եթե պահանջվում է ժառանգական նախագծերի համար, նախորդ գրադարանավարը կարող է ուղղակիորեն կանչվել՝ օգտագործելով հին ոճի տարբերակները, որոնք ընդունվել էին ավելի վաղ կոմպիլյատորների տարբերակներում:
Միգրացիայի հարցեր
Ստորև բերված են այն հատկանիշները, որոնք այժմ այլ կերպ են մշակվում կոմպիլյատորի կողմից: Այս փոփոխությունները կարող են պահանջել ձեր սկզբնական կոդի փոփոխություն, եթե կոդը տեղափոխեք այս կոմպիլյատորի տարբերակը: Ենթավերնագրերում տարբերակի համարը ցույց է տալիս առաջին կոմպիլյատորի տարբերակը, որն աջակցում է հաջորդող փոփոխություններին:
Տարբերակ 2.40
Ոչ մեկը:
Տարբերակ 2.39 (Ֆունկցիոնալ անվտանգության թողարկում)
Ոչ մեկը:
Տարբերակ 2.36
Ոչ մեկը:
Տարբերակ 2.35
Լարային հիմքերի մշակում (XCS-2420) XC-ի այլ կոմպիլյատորների հետ համապատասխանություն ապահովելու համար XC8 string-to ֆունկցիաները, ինչպես strtol () և այլն, այլևս չեն փորձի փոխարկել մուտքային տողը, եթե նշված բազան 36-ից մեծ է, և փոխարենը կսահմանի errno-ն EINVAL-ի: C ստանդարտը չի նշում գործառույթների վարքագիծը, երբ այս բազային արժեքը գերազանցում է:
Արագության անհամապատասխան օպտիմիզացում Ընթացակարգային վերացական օպտիմալացումները միացված էին 3-րդ մակարդակի օպտիմալացումները (-03) ընտրելիս: Այս օպտիմիզացումները նվազեցնում են կոդի չափը՝ ի հաշիվ կոդի արագության, ուստի չպետք է կատարվեին: Այս օպտիմիզացման մակարդակն օգտագործող նախագծերը կարող են տարբերություններ տեսնել կոդի չափի և կատարման արագության մեջ, երբ ստեղծվեն այս թողարկումով:
Գրադարանի ֆունկցիոնալությունը C գրադարանի ստանդարտ գործառույթներից շատերի կոդը այժմ գալիս է Microchip-ի Unified Standard Library-ից, որը որոշ հանգամանքներում կարող է տարբեր վարքագիծ դրսևորել՝ համեմատած նախկին avr-libc գրադարանի կողմից տրամադրվածի հետ: ՆախampԱյլևս անհրաժեշտ չէ կապել lprintf_flt գրադարանում (-print _flt տարբերակ)՝ float-format սպեցիֆիկատորների համար ֆորմատավորված IO աջակցությունը միացնելու համար: Microchip Unified Standard գրադարանի խելացի IO առանձնահատկությունները այս տարբերակը ավելորդ են դարձնում: Բացի այդ, լարային և հիշողության գործառույթների համար _p վերջածանցների օգտագործումն այլևս անհրաժեշտ չէ (օրինակ strcpy_P () և այլն: Ստանդարտ C ռեժիմները (օրինակ strcpy ()) ճիշտ կաշխատեն նման տվյալների հետ, երբ միացված է const-data-in-program-memory ֆունկցիան:
Տարբերակ 2.32
Ոչ մեկը:
Տարբերակ 2.31
Ոչ մեկը:
Տարբերակ 2.30
Ոչ մեկը:
Տարբերակ 2.29 (Ֆունկցիոնալ անվտանգության թողարկում)
Ոչ մեկը:
Տարբերակ 2.20
Փոխվել է DFP-ի դասավորությունը Կազմողն այժմ ենթադրում է այլ դասավորություն, որն օգտագործվում է DFP-ների կողմից (Device Family Packs): Սա կնշանակի, որ ավելի հին DFP-ն կարող է չաշխատել այս թողարկման հետ, և հին կոմպիլյատորները չեն կարողանա օգտագործել վերջին DFP-ները:
Տարբերակ 2.19 (Ֆունկցիոնալ անվտանգության թողարկում)
Ոչ մեկը:
Տարբերակ 2.10
Ոչ մեկը
Տարբերակ 2.05
Const օբյեկտները ծրագրի հիշողության մեջ Նկատի ունեցեք, որ լռելյայն, const-qualfied օբյեկտները կտեղադրվեն և հասանելի կլինեն ծրագրի հիշողության մեջ (ինչպես նկարագրված է այստեղ): Սա կազդի ձեր նախագծի չափի և կատարման արագության վրա, բայց պետք է նվազեցնի RAM-ի օգտագործումը: Անհրաժեշտության դեպքում այս հատկությունը կարող է անջատվել՝ օգտագործելով -mnoconst- da ta-in-progmem տարբերակը:
Տարբերակ 2.00
Կազմաձևման ապահովիչներ Սարքի կազմաձևման ապահովիչներն այժմ կարող են ծրագրավորվել՝ օգտագործելով կազմաձևման պրագմա, որին հաջորդում են պարամետրերի արժեքների զույգերը՝ նշելու ապահովիչների վիճակը, օրինակ.
#pragma config WDT0N = SET
#pragma config B0DLEVEL = B0DLEVEL_4V3
Բացարձակ օբյեկտներ և գործառույթներ Օբյեկտները և գործառույթներն այժմ կարող են տեղադրվել հիշողության հատուկ հասցեում՝ օգտագործելով CCI _at (հասցե) ցուցիչը, օրինակ.ample: #ներառել int foobar at (Ox800100); char at(Ox250) get ID(int offset) {…} Այս ցուցիչի արգումենտը պետք է լինի հաստատուն, որը ներկայացնում է հասցեն, որտեղ կտեղադրվի առաջին բայթը կամ հրահանգը: RAM հասցեները նշվում են՝ օգտագործելով 0x800000 օֆսեթ: Միացրեք CCI-ն՝ օգտագործելու այս հնարավորությունը:
Ընդհատման ֆունկցիայի նոր շարահյուսություն Կազմողն այժմ ընդունում է CCI ընդհատման (num) սպեցիֆիկատորը՝ նշելու, որ C ֆունկցիաները ընդհատումների մշակիչներ են: Նշիչն ընդունում է ընդհատման համար, օրինակample: #ներառել void interrupt (SPI STC_ vect _num) spi Isr(անվավեր) {…}
Ամրագրված խնդիրներ
Ստորև բերված են ուղղումներ, որոնք կատարվել են կոմպիլյատորում: Սրանք կարող են շտկել գեներացված կոդի սխալները կամ փոխել կոմպիլյատորի աշխատանքը, ինչը նախատեսված կամ նշված է օգտագործողի ուղեցույցով: Ենթավերնագրերում տարբերակի համարը ցույց է տալիս առաջին կոմպիլյատորի տարբերակը, որը պարունակում է ուղղումներ հաջորդող խնդիրների համար: Վերնագրում փակագծված պիտակ(ներ)ն այդ խնդրի նույնականացումն է հետևման տվյալների բազայում: Սրանք կարող են օգտակար լինել, եթե ձեզ անհրաժեշտ է կապ հաստատել աջակցության հետ:
Նկատի ունեցեք, որ սարքի հետ կապված որոշ խնդիրներ շտկվում են սարքի հետ կապված Սարքի ընտանեկան փաթեթում (DFP): DFP-ներում կատարված փոփոխությունների և վերջին փաթեթները ներբեռնելու համար տես MPLAB փաթեթների կառավարիչը:
Տարբերակ 2.40
Չափազանց հանգիստ (XCS-2876) -mrelax տարբերակն օգտագործելիս կոմպիլյատորը որոշ բաժիններ միասին չէր հատկացնում, ինչի արդյունքում կոդերի ավելի քիչ օպտիմալ չափսեր ստացվեցին: Դա կարող էր տեղի ունենալ կոդով, որն օգտագործում էր նոր MUSL գրադարանները կամ թույլ նշաններով:
Քարտեզագրման գործառույթն անջատված չէ, ինչպես նշված է նախազգուշացման մեջ (XCS-2875) Cost-data-in-config mappedprogmem հատկությունը կախված է ծախսերի տվյալների մեջ proem ֆունկցիայի միացման վրա: Եթե cost-data-ipconfig-mapped-proem ֆունկցիան բացահայտորեն միացված էր այս տարբերակի միջոցով, և ծախսերի տվյալների մուտքագրման գործառույթն անջատված էր, կապի քայլը ձախողվեց՝ չնայած նախազգուշական հաղորդագրությանը, որում նշվում է, որ մինուս տվյալները-in-config-mapped- proem ֆունկցիան ավտոմատ կերպով անջատվել էր, ինչը լիովին ճիշտ չէր: Const-data-in-config-mapped-proem ֆունկցիան այժմ ամբողջությամբ անջատված է այս իրավիճակում:
DFP-ն փոխվում է՝ NVMCTRL (XCS-2848) ճիշտ մուտք գործելու համար AVR64EA սարքերի կողմից օգտագործվող գործարկման ժամանակի կոդը հաշվի չի առել, որ NVMCTRL ռեգիստրը գտնվում է Կազմաձևման փոփոխության պաշտպանության (CCP) տակ և չի կարողացել IO SFR-ը սահմանել այն էջին, որն օգտագործվում է const-data-in configmapped-proem կոմպիլյատորի կողմից: հատկանիշ. AVR-Ex_DFP 2.2.55 տարբերակում կատարված փոփոխությունները թույլ կտան գործարկման ժամանակի գործարկման կոդը ճիշտ գրել այս ռեգիստրում:
DFP-ի փոփոխությունները՝ ֆլեշ քարտեզագրումից խուսափելու համար (XCS-2847) Գործարկվել է AVR128DA28/32/48/64 Silicon Errata-ում (DS80000882) հաղորդված ֆլեշ քարտեզագրման սարքի գործառույթի հետ կապված խնդրի լուծումը: Const-data-in-config-mapped-proem կոմպիլյատոր հատկությունը լռելյայն չի կիրառվի տուժած սարքերի համար, և այս փոփոխությունը կհայտնվի AVR-Ex_DFP 2.2.160 տարբերակում:
Կառուցման սխալ sinhf կամ coshf (XCS-2834) sinhf () կամ coshf () գրադարանի գործառույթներն օգտագործելու փորձերը հանգեցրել են հղման սխալի՝ նկարագրելով չսահմանված հղում: Հղված բացակայող ֆունկցիան այժմ ներառվել է կոմպիլյատորի բաշխման մեջ:
Ստեղծեք սխալներ nopa-ով (XCS-2833) Օգտագործելով nopa հատկանիշը մի ֆունկցիայի հետ, որի անսամբլերի անունը նշված է որպես ()-ի միջոցով, անսամբլերի կողմից սխալ հաղորդագրություններ գործարկվել: Այս համադրությունը հնարավոր չէ:
Variadic ֆունկցիայի ձախողում ցուցիչի արգումենտներով (XCS-2755, XCS-2731) Փոփոխական թվով արգումենտներով ֆունկցիաները ակնկալում են, որ 24-բիթանոց (_memo type) ցուցիչներ կփոխանցվեն փոփոխական արգումենտների ցանկում, երբ միացված է cost-data-in-proem հատկանիշը: Փաստարկները, որոնք տվյալների հիշողության ցուցիչներ էին, փոխանցվում էին որպես 16-բիթանոց օբյեկտներ, ինչը հանգեցնում էր կոդի ձախողման, երբ դրանք ի վերջո կարդացվում էին: Երբ միացված է մինուս տվյալների մեջ պրոեմ հատկությունը, բոլոր 16-բիթանոց ցուցիչների արգումենտներն այժմ փոխարկվում են 24-բիթանոց ցուցիչների: strtoxxx գրադարանի գործառույթները ձախողվում են (XCS-2620) Երբ const-data-in-proem ֆունկցիան միացված էր, strtoxxx գրադարանի գործառույթներում enter պարամետրը պատշաճ կերպով չէր թարմացվել ծրագրի հիշողության մեջ չգտնվող աղբյուրի տողերի արգումենտների համար:
Զգուշացումներ անվավեր նկարահանումների համար (XCS-2612) Կոմպիլյատորն այժմ սխալ կթողնի, եթե միացված լինի «cost-in-proem» ֆունկցիան, և տողային բառացի հասցեն բացահայտորեն ուղարկվի տվյալների հասցեի տարածություն (հանելով const որակիչը), օրինակ.ample, (uint8 t *) «Բարև աշխարհ»: Նախազգուշացումը խնդիր է, եթե հասցեն կարող է անվավեր լինել, երբ const տվյալների ցուցիչը բացահայտորեն ուղարկվում է տվյալների հասցեի տարածություն:
Չնախաստորագրված const օբյեկտների տեղադրում (XCS-2408) Unitialized const և const v olatile օբյեկտները չէին տեղադրվում ծրագրային հիշողության մեջ այն սարքերի վրա, որոնք քարտեզագրում են իրենց ծրագրի հիշողությունը կամ դրա մի մասը տվյալների հասցեների տարածության մեջ: Այս սարքերի համար նման օբյեկտներն այժմ տեղադրվում են ծրագրային հիշողության մեջ՝ դրանց աշխատանքը համապատասխանեցնելով այլ սարքերի հետ:
Տարբերակ 2.39 (Ֆունկցիոնալ անվտանգության թողարկում)
Ոչ մեկը:
Տարբերակ 2.36
Սխալ՝ հետաձգելիս (XCS-2774) Լռելյայն Ազատ ռեժիմի օպտիմիզացումներում աննշան փոփոխությունները կանխեցին օպերանդի արտահայտությունների մշտական ծալումը դեպի հետաձգման ներկառուցված ֆունկցիաները, ինչի արդյունքում դրանք դիտարկվեցին որպես ոչ կոնտակտներ և առաջացավ սխալ. _buil tin avr delay_ cycles expects ac ompile: ժամանակի ամբողջ թվի հաստատուն.
Տարբերակ 2.35
Շարունակական հատկացում՝ օգտագործելով _at (XCS-2653) Բազմաթիվ օբյեկտների տեղաբաշխումը նույն անունով բաժնում և օգտագործելով ()-ը ճիշտ չէր աշխատում: Նախample: արժեքը char arr50[ ] at tri butte ((հատված (.my s eke”))) = {Oxen, Ox FE }; պետք է տեղադրել arr0 անմիջապես արիլից հետո:
Բաժնի սկզբի հասցեների նշում (XCS-2650) -Wal, -section-start տարբերակը լուռ չէր կարողանում տեղադրել բաժինները առաջադրված սկզբնական հասցեում: Այս խնդիրը շտկվել է ցանկացած հատուկ անունով բաժինների համար. այնուամենայնիվ, այն չի աշխատի որևէ ստանդարտ բաժինների համար, ինչպիսիք են . տեքստ կամ. bss, որը պետք է տեղադրվի՝ օգտագործելով -Wl, -T տարբերակը:
Linker-ը խափանում է հանգստանալիս (XCS-2647) Երբ -relax օպտիմիզացիան միացված էր, և կային կոդի կամ տվյալների բաժիններ, որոնք չէին տեղավորվում հասանելի հիշողության մեջ, կապող սարքը խափանվեց: Այժմ նման պարագայում դրա փոխարեն սխալի հաղորդագրություններ են թողարկվում։
Վատ EEPROM մուտք (XCS-2629) Leproma _read_ արգելափակման ռեժիմը ճիշտ չէր աշխատում Mega սարքերում, երբ միացված էր -monist-data-in-proem տարբերակը (որը լռելյայն վիճակն է), ինչի հետևանքով EEPROM հիշողությունը ճիշտ չէր կարդացվում:
Հիշողության անվավեր տեղաբաշխում (XCS-2593, XCS-2651) Երբ -Text կամ -Tata կապող տարբերակը (օրինակampնշված է -Wl դրայվեր տարբերակի միջոցով, համապատասխան տեքստի/տվյալների տարածաշրջանի սկզբնաղբյուրը թարմացվել է. սակայն վերջնական հասցեն համապատասխանաբար չի ճշգրտվել, ինչը կարող էր հանգեցնել նրան, որ տարածաշրջանը գերազանցի թիրախային սարքի հիշողության տիրույթը:
Անվավեր ATtiny ընդհատման կոդը (XCS-2465) Երբ Tatin սարքերի համար կառուցումը և օպտիմիզացումներն անջատված էին (-00), ընդհատման գործառույթները կարող են գործարկել օպերանդի տիրույթից դուրս հավաքող հաղորդագրությունները:
Ընտրանքներ, որոնք չեն փոխանցվում (XCS-2452) Բազմաթիվ, ստորակետերով բաժանված կապակցիչ ընտրանքներով -Wl տարբերակն օգտագործելիս, կապող բոլոր տարբերակները չէ, որ փոխանցվում էին կապակցողին:
Ծրագրի հիշողության անուղղակի ընթերցման սխալ (XCS-2450) Որոշ դեպքերում, կոմպիլյատորն արտադրել է ներքին սխալ (անճանաչելի insn), երբ ցուցիչից ծրագրային հիշողություն կարդալիս երկու բայթ արժեքը:
Տարբերակ 2.32
Գրադարանի երկրորդ մուտքը ձախողվեց (XCS-2381) Վկայակոչելով xc8-ar-ի Windows տարբերակը: exe գրադարանի արխիվը երկրորդ անգամ մուտք գործելու համար գոյություն ունեցող գրադարանի արխիվը կարող է ձախողվել սխալ հաղորդագրության պատճառով:
Տարբերակ 2.31
Անբացատրելի կոմպիլյատորի ձախողումներ (XCS-2367) Երբ աշխատում է Windows հարթակներում, որոնց համակարգային ժամանակավոր գրացուցակը դրված է մի ուղու վրա, որը ներառում է կետ:' նիշ, կոմպիլյատորը կարող է ձախողվել կատարել:
Տարբերակ 2.30
Համաշխարհային պիտակները սխալ տեղադրվել են ուրվագծումից հետո (XCS-2299) Ձեռքով գրված հավաքման կոդը, որը գլոբալ պիտակները տեղադրում է հավաքման հաջորդականությունների մեջ, որոնք հաշվի են առնվում ընթացակարգային վերացականության արդյունքում, կարող էր ճիշտ չվերաբաշխված լինել:
Հանգստացնող վթար (XCS-2287) -merlad տարբերակի օգտագործումը կարող էր պատճառ հանդիսանալ կապակցողի խափանման, երբ tail jump relaxation optimization-ը փորձեց հեռացնել ret հրահանգները, որոնք հատվածի վերջում չէին:
Խափանում է պիտակները որպես արժեքներ օպտիմալացնելիս (XCS-2282) «Պիտակները որպես արժեքներ» օգտագործող ծածկագիրը GNU C լեզվի ընդլայնումը կարող է հանգեցնել ընթացակարգային աբստրակցիայի օպտիմալացման խափանման՝ ուրվագծված VMA տիրույթի ընդգրկման ուղղման սխալով:
Ոչ այնքան կայուն (XCS-2271) Սկսած () և այլ գործառույթների նախատիպերը այլևս մի նշեք ծախսերի ոչ ստանդարտ որակիչը վերադարձված լարային ցուցիչների վրա, երբ -monist-data inprogmem ֆունկցիան անջատված է: Նկատի ունեցեք, որ avrxmega3 և avertin սարքերի դեպքում այս հնարավորությունը մշտապես միացված է:
Կորած սկզբնավորիչներ (XCS-2269) Երբ թարգմանության միավորի մեկից ավելի փոփոխականները տեղադրվել են բաժնում (օգտագործելով բաժին կամ հատկանիշ ((բաժին))), և առաջին այդպիսի փոփոխականը զրոյականացվել է կամ չուներ սկզբնավորիչ, նույն թարգմանիչ միավորի այլ փոփոխականների համար սկզբնավորիչներ որոնք տեղադրված էին նույն հատվածում, կորել էին։
Տարբերակ 2.29 (Ֆունկցիոնալ անվտանգության թողարկում)
Ոչ մեկը:
Տարբերակ 2.20
Սխալ երկար հրամանների հետ (XCS-1983) AVR թիրախ օգտագործելիս կոմպիլյատորը կարող է դադարեցված լինել a file սխալ չի գտնվել, եթե հրամանի տողը չափազանց մեծ էր և պարունակում էր հատուկ նիշեր, ինչպիսիք են չակերտները, հետշեղերը և այլն:
Չնշանակված rodata բաժին (XCS-1920) AVR կապակցիչը չկարողացավ հիշողություն հատկացնել հատուկ rodata բաժինների համար, երբ կառուցում էր avrxmega3 և avrtiny ճարտարապետություններ, ինչը կարող է առաջացնել հիշողության համընկնման սխալներ:
Տարբերակ 2.19 (Ֆունկցիոնալ անվտանգության թողարկում)
Ոչ մեկը:
Տարբերակ 2.10
Տեղափոխման ձախողումներ (XCS-1891) Լավագույն պիտանի հատկացուցիչը կապող հանգստից հետո հիշողության «անցքեր» թողնելն էր հատվածների միջև: Բացի հիշողության մասնատումից, սա մեծացնում էր կապակցիչի տեղափոխման ձախողումների հավանականությունը՝ կապված ԱՀ-ի հարաբերական թռիչքների կամ տիրույթից դուրս գտնվող զանգերի հետ:
Հրահանգներ, որոնք չեն փոխակերպվում թուլացումով (XCS-1889) Կապիչի թուլացումը տեղի չի ունեցել ցատկելու կամ զանգելու հրահանգների համար, որոնց թիրախները դառնում են հասանելի, եթե հանգստանան:
Անհայտ կորած ֆունկցիոնալություն (XCSE-388) Մի քանի սահմանումներ , ինչպիսիք են clock_ div_ t և clock_prescale_set (), չեն սահմանվել սարքերի համար, ներառյալ ATmega324PB, ATmega328PB, ATtiny441 և ATtiny841:
Բացակայում են մակրոները Նախապրոցեսորային մակրոները_ xcs _MODE_, _xcs VERSION, _xc և xcs-ը ավտոմատ կերպով չեն սահմանվել կոմպիլյատորի կողմից: Սրանք այժմ հասանելի են:
Տարբերակ 2.05
Ներքին կոմպիլյատորի սխալ (XCS-1822) Windows-ի տակ կառուցման ժամանակ կարող էր ստեղծվել ներքին կոմպիլյատորի սխալ՝ կոդի օպտիմալացման ժամանակ:
RAM-ի արտահոսքը չի հայտնաբերվել (XCS-1800, XCS-1796) Ծրագրերը, որոնք գերազանցում էին հասանելի RAM-ը, որոշ իրավիճակներում կոմպիլյատորը չի հայտնաբերել, ինչի հետևանքով գործարկման ժամանակի կոդը ձախողվել է:
Բաց թողնված ֆլեշ հիշողություն (XCS-1792) Avrxmega3 և avrtiny սարքերի համար ֆլեշ հիշողության մասերը կարող էին չծրագրավորված լինել MPLAB X IDE-ի կողմից:
Հիմնական գործարկման ձախողում (XCS-1788) Որոշ իրավիճակներում, երբ ծրագիրը չուներ սահմանված գլոբալ փոփոխականներ, գործարկման ժամանակի գործարկման կոդը դուրս չէր գալիս, և հիմնական () ֆունկցիան այդպես էլ չհասավ:
Հիշողության սխալ տեղեկատվություն (XCS-1787) Avrxmega3 և avrtiny սարքերի համար, avr-size ծրագիրը հաղորդում էր, որ միայն կարդալու տվյալները ծրագրային հիշողության փոխարեն սպառում են RAM:
Ծրագրի հիշողության սխալ ընթերցում (XCS-1783) Ծրագրային հիշողությամբ սարքերի համար կազմված նախագծերը, որոնք քարտեզագրված են տվյալների հասցեների տարածության մեջ և որոնք սահմանում են օբյեկտներ՝ օգտագործելով PROGMEM մակրո/հատկանիշը, կարող են սխալ հասցեից կարդալ այս օբյեկտները:
Ներքին սխալ ատրիբուտների հետ (XCS-1773) Ներքին սխալ է տեղի ունեցել, եթե դուք սահմանել եք ցուցիչի օբյեկտները
_at () կամ հատկանիշ() նշաններ ցուցիչի անվան և չհղված տիպի միջև, օրինակample, char *
_at (0x80015 0) cp; Այժմ նախազգուշացում է տրվում, եթե նման ծածկագիր հանդիպի:
Հիմնական գործարկման ձախողում (XCS-1780, XCS-1767, XCS-1754) EEPROM փոփոխականների օգտագործումը կամ ապահովիչներ սահմանելը, օգտագործելով config pragma, կարող է առաջացնել տվյալների սխալ սկզբնավորում և/կամ արգելափակել ծրագրի կատարումը գործարկման ժամանակի գործարկման կոդում՝ մինչև հիմնական () հասնելը:
Ապահովիչների սխալ փոքր սարքերում (XCS-1778, XCS-1742) Attiny4/5/9/10/20/40 սարքերը ունեին սխալ ապահովիչ երկարություն, որը նշված էր իրենց վերնագրում files, որոնք հանգեցնում են կապակցման սխալների, երբ փորձում են ստեղծել կոդ, որը սահմանում է ապահովիչներ:
Սեգմենտավորման անսարքություն (XCS-1777) Սեգմենտացիայի ընդհատվող անսարքությունը շտկվել է:
Ասեմբլերի վթար (XCS-1761) Avr-as assembler-ը կարող էր խափանվել, երբ կոմպիլյատորն աշխատեց Ubuntu 18-ով:
Օբյեկտներ չմաքրված (XCS-1752) Չնախնականացված ստատիկ պահեստավորման տևողության օբյեկտները կարող են չջնջվել գործարկման ժամանակի գործարկման կոդով:
Հակասական սարքի բնութագրումն անտեսվել է (XCS-1749) Կազմողը սխալ չէր առաջացնում, երբ օգտագործվում էին սարքի բնութագրման մի քանի տարբերակներ և ցույց էին տալիս տարբեր սարքեր:
Հիշողության խաթարում կույտով (XCS-1748) Heap_ start նշանը սխալ էր դրված, ինչի հետևանքով սովորական փոփոխականների կույտի վնասման հավանականությունը:
Կապիչի տեղափոխման սխալ (XCS-1739) Կապակցիչի տեղափոխման սխալ կարող էր տեղի ունենալ, երբ կոդը պարունակում էր rjmp կամ rccal՝ ուղիղ 4k բայթ հեռավորության վրա գտնվող թիրախով:
Տարբերակ 2.00
Ոչ մեկը:
Հայտնի խնդիրներ
Ստորև ներկայացված են կոմպիլյատորի գործունեության սահմանափակումները: Սրանք կարող են լինել կոդավորման ընդհանուր սահմանափակումներ, կամ
օգտագործողի ձեռնարկում պարունակվող տեղեկություններից շեղումներ. Վերնագրում փակագծված պիտակ(ներ)ն այդ խնդրի նույնականացումն է հետագծման տվյալների բազայում: Սա կարող է օգտակար լինել, եթե դուք պետք է կապվեք աջակցության հետ: Այն տարրերը, որոնք չունեն պիտակներ, սահմանափակումներ են, որոնք նկարագրում են գործառնական ռեժիմը և որոնք, ամենայն հավանականությամբ, կգործեն ընդմիշտ:
MPLAB X IDE ինտեգրում
MPLAB IDE ինտեգրում Եթե Կոմպիլյատորը պետք է օգտագործվի MPLAB IDE-ից, ապա դուք պետք է տեղադրեք MPLAB IDE նախքան Կոմպիլյատորը տեղադրելը:
Կոդերի ստեղծում
PA հիշողության տեղաբաշխման ձախողում (XCS-2881) Ընթացակարգային աբստրակցիայի օպտիմիզատորներն օգտագործելիս կապակցիչը կարող է հաղորդել հիշողության բաշխման սխալներ, երբ կոդի չափը մոտ է սարքում առկա ծրագրի հիշողության քանակին, չնայած որ ծրագիրը պետք է կարողանա տեղավորել առկա տարածքը:
Ոչ այնքան խելացի Smart-IO (XCS-2872) Կոմպիլյատորի smart-io հատկությունը կստեղծի վավեր, բայց ենթաօպտիմալ կոդ sprint ֆունկցիայի համար, եթե coast-data-in-proem ֆունկցիան անջատված է կամ եթե սարքն ունի իր ամբողջ ֆլեշը քարտեզագրված տվյալների հիշողության մեջ:
Նույնիսկ ավելի քիչ խելացի Smart-IO (XCS-2869) Կազմողի smart-io հատկությունը կստեղծի վավեր, բայց ոչ օպտիմալ կոդ, երբ երկուսն էլ օգտագործվեն -floe և -fno-buil tin տարբերակները:
Միայն կարդալու համար տվյալների ոչ օպտիմալ տեղադրում (XCS-2849) Կապակցիչը ներկայումս տեղյակ չէ APPCODE և APPDATA հիշողության բաժիններից, ինչպես նաև հիշողության քարտեզի [No-]Read-While-Write բաժիններից: Արդյունքում, փոքր հավանականություն կա, որ կապողը կարող է միայն կարդալու տվյալներ հատկացնել հիշողության ոչ պիտանի տարածքում: Տվյալների սխալ տեղադրման հավանականությունը մեծանում է, եթե coast-data-in-pragma ֆունկցիան միացված է, հատկապես, եթե coast-data-in-config-mapped-proem ֆունկցիան նույնպես միացված է: Անհրաժեշտության դեպքում այս գործառույթները կարող են անջատվել:
Օբյեկտ file մշակման պատվեր (XCS-2863) Օբյեկտների հերթականությունը files-ը կմշակվի կապիչի կողմից, կարող է տարբերվել՝ հիմնված ընթացակարգային վերացական օպտիմալացումների օգտագործման վրա (-mpa տարբերակ): Սա կազդի միայն կոդի վրա, որը սահմանում է թույլ գործառույթներ բազմաթիվ մոդուլների մեջ:
Կապիչի սխալ բացարձակ (XCS-2777) Երբ օբյեկտը բացարձակ է դարձել RAM-ի սկզբում հասցեում և սահմանվել են նաև չնախապատրաստված օբյեկտներ, կարող է առաջանալ կապող սխալ:
Կարճ արթնացման ID-ներ (XCS-2775) ATA5700/2 սարքերի համար PHID0/1 ռեգիստրները սահմանվում են միայն որպես 16 բիթ լայնություն, այլ ոչ թե 32 բիթ լայնություն:
Կապիչի խափանում, երբ կանչում եք խորհրդանիշ (XCS-2758) Կապակցիչը կարող է խափանվել, եթե -merlad driver տարբերակը օգտագործվի, երբ սկզբնական կոդը կանչում է խորհրդանիշ, որը սահմանվել է -Wl, –defsym կապող տարբերակի միջոցով:
Սխալ սկզբնավորում (XCS-2679) Գոյություն ունի անհամապատասխանություն տվյալների հիշողության մեջ որոշ գլոբալ/ստատիկ բայթ չափի օբյեկտների սկզբնական արժեքների և փոփոխականների մուտքի գործարկման ժամանակ:
սխալ է սկսվել, դատարկ է սահմանվում (XCS-2652) Այն դեպքերում, երբ վերափոխման առարկայի տողը ()-ով պարունակում է այն, ինչ թվում է, լողացող կետի թիվ է էքսպոնենցիալ ձևաչափով, և e-նիշից հետո կա անսպասելի նիշ, ապա դատարկ հասցեն, եթե տրված է, մատնանշում է այն նիշի վրա: ե-ն և ոչ թե ինքը: Նախample: նշված («hooey», դատարկ); կհանգեցնի դատարկ մատնացույց անելով դեպի x նիշը:
Սխալ անուղղակի ֆունկցիայի զանգեր (XCS-2628) Որոշ դեպքերում ֆունկցիայի կանչերը, որոնք արվում են որպես կառուցվածքի մաս պահվող ֆունկցիայի ցուցիչի միջոցով, կարող են ձախողվել:
strtof-ը վերադարձնում է զրո տասնվեցական լողացողների համար (XCS-2626) Գրադարանային strtof () et al և scanf () et al գործառույթները միշտ կվերափոխեն վեցանկյուն լողացող կետի համարը, որը չի սահմանում ցուցիչը:
զրո: Նախample: stator («Բու», & դատարկ); կվերադարձնի 0 արժեքը, ոչ թե 1:
Անճշգրիտ կույտի խորհրդատուի հաղորդագրություններ (XCS-2542, XCS-2541) Որոշ դեպքերում, stack-ի խորհրդատուի նախազգուշացումը ռեկուրսիայի կամ օգտագործվող անորոշ կույտի վերաբերյալ (հնարավոր է alloca()-ի օգտագործման միջոցով) չի թողարկվում:
Խափանում կրկնօրինակ ընդհատման կոդը (XCS-2421) Այն դեպքում, երբ մեկից ավելի ընդհատման ֆունկցիաներ ունեն նույն մարմինը, կոմպիլյատորը կարող է ունենալ մեկ ընդհատման ֆունկցիայի ելք, որը կանչում է մյուսին: Սա կհանգեցնի նրան, որ բոլոր զանգերի խցանված ռեգիստրներն անհարկի կպահվեն, և ընդհատումները կմիացվեն նույնիսկ մինչ ընթացիկ ընդհատման մշակողի վերջաբանը գործարկվի, ինչը կարող է հանգեցնել կոդի ձախողման:
Const օբյեկտները, որոնք ծրագրի հիշողության մեջ չեն (XCS-2408) Avrxmega3 և avertins նախագծերի համար unidealized const օբյեկտները տեղադրվում են տվյալների հիշողության մեջ, թեև նախազգուշացումը հուշում է, որ դրանք տեղադրվել են ծրագրի հիշողության մեջ: Սա չի ազդի սարքերի վրա, որոնք չունեն ծրագրային հիշողություն, որը քարտեզագրված է տվյալների հիշողության տարածքում, ինչպես նաև չի ազդի նախաստորագրված որևէ օբյեկտի վրա:
Սխալ ելք DFP-ի անվավեր ճանապարհով (XCS-2376) Եթե կոմպիլյատորը կանչվում է անվավեր DFP ուղով և «հատուկ» file գոյություն ունի ընտրված սարքի համար, կոմպիլյատորը չի հայտնում բացակայող սարքի ընտանեկան փաթեթը և փոխարենը ընտրում է «սպեկտրը» file, որն այնուհետև կարող է հանգեցնել անվավեր ելքի: «Տեխնիկական» files-երը կարող են արդիական չլինել բաշխված DFP-ների հետ և նախատեսված են եղել միայն ներքին կոմպիլյատորների փորձարկման համար:
Հիշողության համընկնումը չի հայտնաբերվել (XCS-1966) Կոմպիլյատորը չի հայտնաբերում հիշողության համընկնումը բացարձակացված օբյեկտների հասցեում ((-ի միջոցով) և այլ օբյեկտների՝ օգտագործելով բաժինը () սպեցիֆիկատորը և որոնք կապված են նույն հասցեին:
Գրադարանի գործառույթների և _meme-ի (XCS-1763) ձախողում Կոչվող limbic float ֆունկցիաները _memo հասցեների տարածքում արգումենտով կարող են ձախողվել: Նկատի ունեցեք, որ գրադարանի ռեժիմները կանչվում են որոշ C օպերատորներից, օրինակ, օրինակample, հետևյալ ծածկագիրը ազդում է. վերադարձնել regFloatVar > memxFloatVar;
Սահմանափակ լիմբիկ իրականացում (AVRTC-731) ATTiny4/5/9/10/20/40 արտադրանքների համար ստանդարտ C / Math գրադարանի ներդրումը լիմբիկում շատ սահմանափակ է կամ առկա չէ:
Ծրագրի հիշողության սահմանափակումներ (AVRTC-732) Ծրագրային հիշողության պատկերները 128 կբ-ից ավելի աջակցվում են գործիքների շղթայի կողմից; Այնուամենայնիվ, կան կապակցող վիժումների հայտնի դեպքեր առանց թուլացման և առանց օգտակար սխալի հաղորդագրության, այլ ոչ թե ստեղծելու պահանջվող ֆունկցիայի կոճղերը, երբ օգտագործվում է -relax տարբերակը:
Անվան տարածության սահմանափակումներ (AVRTC-733) Անվանված հասցեների տարածքները աջակցվում են գործիքների շղթայի կողմից՝ հաշվի առնելով օգտատիրոջ ուղեցույցի «Հատուկ տիպի որակավորումներ» բաժնում նշված սահմանափակումները:
Ժամային գոտիներ Այն գրադարանի գործառույթները ենթադրում են GMT և չեն աջակցում տեղական ժամային գոտիները, հետևաբար տեղական ժամը () կվերադառնա նույն ժամանակ, ինչ gummite (), օրինակampլե.
ՀԱՃԱԽՈՐԴՆԵՐԻ ԱՋԱԿՑՈՒԹՅՈՒՆ
file:///Applications/microehip/xc8/v 2 .40/docs/Read me_X C 8_ VR-ի համար: htm
Փաստաթղթեր / ռեսուրսներ
![]() |
MICROCHIP MPLAB XC8 C Կազմողի ծրագրակազմ [pdf] Սեփականատիրոջ ձեռնարկ MPLAB XC8 C, MPLAB XC8 C Կազմող ծրագրակազմ, Կազմող Ծրագրեր, Ծրագրեր |