Programu ya Kukusanya MICROCHIP MPLAB XC8 C 

Programu ya Kukusanya MICROCHIP MPLAB XC8 C

WARAKA HUU UNA MAELEZO MUHIMU KUHUSIANA NA KAMPANISHI YA MPLAB XC8 C INAPOLENGA VIFAA VYA MICROCHIP AVR.
TAFADHALI ISOME KABLA YA KUENDESHA SOFTWARE HII. ANGALIA MAELEZO YA KUTOLEWA YA MPLAB XC8 C COMPILER KWA WARAKA WA PIC IKIWA UNATUMIA KAMPANISA KWA VIFAA 8-BIT PIC.

Yaliyomo kujificha

Zaidiview

Utangulizi

Toleo hili la mkusanyaji wa Microchip MPLAB® XC8 C lina vipengele vipya kadhaa, kurekebishwa kwa hitilafu na usaidizi mpya wa kifaa.

Tarehe ya Kujenga

Tarehe rasmi ya ujenzi wa toleo hili la mkusanyaji ni tarehe 3 Julai 2022.

Toleo Iliyopita

Toleo la awali la kikusanyaji cha MPLAB XC8 C lilikuwa 2.39, kikusanya usalama kinachofanya kazi, kilichoundwa tarehe 27 Januari 2022. Kikusanyaji cha awali cha kawaida kilikuwa toleo la 2.36, lililojengwa tarehe 27 Januari 2022.

Mwongozo wa Usalama wa Utendaji

Mwongozo wa Utendaji wa Usalama kwa wakusanyaji wa MPLAB XC unapatikana katika kifurushi cha hati unaponunua leseni inayofanya kazi ya usalama.

Leseni za Sehemu na Matoleo

Kikusanyaji cha MPLAB® XC8 C cha zana za AVR MCUs huandikwa na kusambazwa chini ya Leseni ya Umma ya GNU (GPL) ambayo ina maana kwamba msimbo wake wa chanzo unasambazwa bila malipo na unapatikana kwa umma. Msimbo wa chanzo wa zana chini ya GNU GPL unaweza kupakuliwa kando na Microchip webtovuti. Unaweza kusoma GNU GPL katika faili ya file iliyotajwa iko saraka ndogo ya saraka yako ya kusakinisha. Mjadala wa jumla wa kanuni za msingi za GPL unaweza kupatikana hapa. Nambari ya usaidizi iliyotolewa kwa kichwa files, hati za kiunganishi, na maktaba za wakati wa utekelezaji ni msimbo wa umiliki na haujashughulikiwa chini ya GPL.

Kikusanyaji hiki ni utekelezaji wa toleo la GCC 5.4.0, toleo la binutils 2.26, na hutumia toleo la avr-libc 2.0.0.

Mahitaji ya Mfumo

Kikusanyaji cha MPLAB XC8 C na programu ya utoaji leseni inayoitumia zinapatikana kwa aina mbalimbali za mifumo ya uendeshaji, ikijumuisha matoleo ya 64-bit ya yafuatayo: Matoleo ya kitaalamu ya Microsoft Windows 10; Ubuntu 18.04; na macOS 10.15.5. Binaries za Windows zimetiwa saini na msimbo. Nambari za mac OShave zimetiwa saini na kuthibitishwa.

Ikiwa unatumia seva ya leseni ya mtandao, ni kompyuta zilizo na mifumo ya uendeshaji tu inayoungwa mkono na wakusanyaji ndizo zinaweza kutumika kupangisha seva ya leseni. Kuanzia toleo la 2.0 la xclm, seva ya leseni ya mtandao inaweza kusakinishwa kwenye jukwaa la Microsoft Windows Server, lakini seva ya leseni haihitaji kufanya kazi kwenye toleo la seva la mfumo wa uendeshaji.

Vifaa vilivyoungwa mkono

Kikusanyaji hiki kinaauni vifaa vyote vya 8-bit AVR MCU vinavyojulikana wakati wa kutolewa. Tazama (kwenye saraka ya hati ya mkusanyaji) kwa orodha ya vifaa vyote vinavyotumika. Haya files pia orodhesha mipangilio ya biti ya usanidi kwa kila kifaa.

Matoleo na Maboresho ya Leseni

Kikusanyaji cha MPLAB XC8 kinaweza kuamilishwa kama bidhaa iliyoidhinishwa (PRO) au isiyo na leseni (Bure). Unahitaji kununua ufunguo wa kuwezesha ili kupata leseni ya mkusanyaji wako. Leseni inaruhusu kiwango cha juu cha uboreshaji ikilinganishwa na bidhaa Bila malipo. Mkusanyaji asiye na leseni anaweza kuendeshwa kwa muda usiojulikana bila leseni.

Mkusanyaji wa Usalama Utendaji wa MPLAB XC8 lazima uanzishwe kwa leseni ya utendaji kazi iliyonunuliwa kutoka kwa Microchip. Mkusanyaji haitafanya kazi bila leseni hii. Mara baada ya kuanzishwa, unaweza kuchagua kiwango chochote cha uboreshaji na kutumia vipengele vyote vya mkusanyaji. Toleo hili la Kikusanya Usalama Kitendaji cha MPLAB XC kinaauni Leseni ya Seva ya Mtandao.
Tazama hati ya Kusakinisha na Kutoa Leseni Vikusanyaji vya MPLAB XC C (DS50002059) kwa maelezo kuhusu aina za leseni na usakinishaji wa kikusanyaji chenye leseni.

Ufungaji na Activation

Tazama pia sehemu za Masuala ya Uhamiaji na Mapungufu kwa maelezo muhimu kuhusu kidhibiti kipya cha leseni kilichojumuishwa na mkusanyaji huyu.
Ikiwa unatumia MPLAB IDE, hakikisha kuwa umesakinisha toleo jipya zaidi la MPLAB X IDE 5.0 au toleo jipya zaidi kabla ya kusakinisha zana hii. Acha IDE kabla ya kusakinisha mkusanyaji. Endesha programu ya kisakinishi ya .exe (Windows), .run (Linux) au programu (macOS), kwa mfano XC8-1.00.11403-windows.exe na ufuate maelekezo kwenye skrini.
Saraka ya usakinishaji chaguo-msingi inapendekezwa. Ikiwa unatumia Linux, lazima usakinishe mkusanyaji kwa kutumia terminal na kutoka kwa akaunti ya mizizi. Sakinisha kwa kutumia akaunti ya macOS na marupurupu ya msimamizi.

Uamilisho sasa unafanywa kando kwa usakinishaji. Tazama hati ya Meneja wa Leseni kwa Wasanii wa MPLAB® XC C (DS52059) kwa maelezo zaidi.

Ukichagua kuendesha mkusanyaji chini ya leseni ya tathmini, sasa utapata onyo wakati wa ujumuishaji ukiwa ndani ya siku 14 za mwisho wa kipindi chako cha tathmini. Onyo kama hilo hutolewa ikiwa uko ndani ya siku 14 baada ya mwisho wa usajili wako wa HPA.

Seva ya Leseni ya Mtandao ya XC ni kisakinishi tofauti na haijajumuishwa katika kisakinishi cha mkusanyaji cha mtumiaji mmoja.

Kidhibiti cha Leseni cha XC sasa kinaauni uzururaji wa leseni za mtandao zinazoelea. Inalenga watumiaji wa simu, kipengele hiki huruhusu leseni inayoelea kwenda nje ya mtandao kwa muda mfupi. Kwa kutumia kipengele hiki, unaweza kutenganisha kutoka kwa mtandao na bado utumie kikusanyaji chako cha MPLAB XC. Tazama folda ya hati ya usakinishaji wa XCLM kwa zaidi juu ya kipengele hiki. MPLAB X IDE inajumuisha dirisha la Leseni (Zana > Leseni) ili kudhibiti utumiaji wa mitandao kwa njia inayoonekana.

Kutatua Masuala ya Ufungaji

Ikiwa unapata matatizo ya kusakinisha kikusanyaji chini ya mifumo yoyote ya uendeshaji ya Windows, jaribu mapendekezo yafuatayo.

  • Endesha usakinishaji kama msimamizi.
  • Weka ruhusa za programu ya kusakinisha kuwa 'Udhibiti kamili'. (Bonyeza kulia kwenye file, chagua Sifa, kichupo cha Usalama, chagua mtumiaji, hariri.)
  • Weka ruhusa za folda ya temp kuwa "Udhibiti Kamili!

Kuamua eneo la folda ya temp, chapa% temp% kwenye amri ya Run (ufunguo wa nembo ya Windows + R). Hii itafungua a file kidirisha cha wachunguzi kinachoonyesha saraka hiyo na itakuruhusu kuamua njia ya folda hiyo.

Nyaraka za Mkusanyaji

Miongozo ya mtumiaji ya mkusanyaji inaweza kufunguliwa kutoka kwa ukurasa wa HTML unaofunguliwa katika kivinjari chako unapobofya kitufe cha usaidizi cha bluu kwenye dashibodi ya MPLAB X IDE, kama inavyoonyeshwa kwenye picha ya skrini.

Nyaraka za Mkusanyaji
Iwapo unaunda malengo ya 8-bit AVR, Mwongozo wa Mtumiaji wa Mkusanyaji wa MPLAB® XC8 C kwa AVR® MCU una maelezo kuhusu chaguo na vipengele hivyo vya kikusanyaji vinavyotumika kwa usanifu huu.

Usaidizi wa Wateja

Microchip inakaribisha ripoti za hitilafu, mapendekezo au maoni kuhusu toleo hili la mkusanyaji. Tafadhali elekeza ripoti zozote za hitilafu au maombi ya kipengele kupitia Mfumo wa Usaidizi.

Sasisho za Nyaraka

Kwa matoleo ya mtandaoni na ya kisasa ya hati za MPLAB XC8, tafadhali tembelea Hati ya Kiufundi ya Mtandaoni ya Microchip. webtovuti.

Hati mpya au zilizosasishwa za AVR katika toleo hili:

  • Notisi ya hakimiliki ya MUSL
  • Kusakinisha na Kutoa Leseni Vikusanyaji vya MPLAB XC C (marekebisho M)
  • Mwongozo wa Mtumiaji wa MPLAB XC8 kwa Wahandisi Waliopachikwa - AVR MCUs (marekebisho A)
  • Mwongozo wa Watumiaji wa Mkusanyaji wa MPLAB XC8 C kwa AVR MCU (marekebisho F)
  • Mwongozo wa Marejeleo ya Maktaba ya Microchip Unified Standard (marekebisho B)

Mwongozo wa Marejeleo wa Maktaba ya Umoja wa Microchip unaelezea tabia na kiolesura cha vitendakazi vilivyofafanuliwa na Maktaba ya Kawaida ya Microchip Unified, pamoja na matumizi yaliyokusudiwa ya aina za maktaba na makro. Baadhi ya maelezo haya hapo awali yalikuwemo kwenye Mwongozo wa Watumiaji wa Mkusanyaji wa MPLAB® XC8 C kwa AVR® MCU. Maelezo ya maktaba mahususi ya kifaa bado yamo katika mwongozo huu wa mkusanyaji.

Ikiwa ndio kwanza unaanza na vifaa vya 8-bit na Kikusanyaji cha MPLAB XC8 C, Mwongozo wa Mtumiaji wa MPLAB® XC8 kwa Wahandisi Waliopachikwa - AVR® MCUs (DS50003108) ina maelezo kuhusu kusanidi miradi katika MPLAB X IDE na kuandika msimbo. kwa mradi wako wa kwanza wa MPLAB XC8 C. Mwongozo huu sasa unasambazwa na mkusanyaji.

Mwongozo wa Mtumiaji wa Hamate umejumuishwa katika saraka ya hati katika toleo hili. Mwongozo huu umekusudiwa kwa wale wanaoendesha Hamate kama programu ya kujitegemea.

Nini Kipya

Zifuatazo ni vipengele vipya vya AVR vinavyolengwa na mkusanyaji sasa anaauni. Nambari ya toleo katika vichwa vidogo inaonyesha toleo la kwanza la mkusanyaji ili kuauni vipengele vinavyofuata.

Toleo la 2.40

Usaidizi wa kifaa kipya Msaada sasa unapatikana kwa sehemu zifuatazo za AVR: AT90PWM3, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR64EA28, AVR64EA32, AVR64EA48, AVRXNUMXEAXNUMX, AVRXNUMXEAXNUMX na AVRXNUMXDDXNUMX
Uondoaji wa kiutaratibu ulioboreshwa Zana ya uboreshaji ya kiutaratibu (PA) imeboreshwa ili msimbo ulio na maagizo ya simu ya kukokotoa ( call recall ) ) uweze kubainishwa. Hili litafanyika tu ikiwa rafu haitatumiwa kupitisha hoja wala kupata thamani ya kurejesha kutoka kwa chaguo la kukokotoa. Rafu hutumika wakati wa kuita chaguo za kukokotoa kwa orodha ya hoja zinazobadilika au unapoita chaguo za kukokotoa ambazo huchukua hoja nyingi kuliko rejista zilizoteuliwa kwa madhumuni haya. Kipengele hiki kinaweza kuzimwa kwa kutumia chaguo la monk-pa-outline-calls, au uondoaji wa kiutaratibu unaweza kuzimwa kabisa kwa kitu. file au fanya kazi kwa kutumia -monk-pa-on-file na -mo.-pa-on-function mtawalia, au kwa kutumia sifa ya nipa ( nipa specifier) ​​kwa kuchagua na vitendakazi.

Ufikiaji wa jumla wa msimbo Mkusanyaji sasa anafafanua jumla __CODECOV ikiwa chaguo halali la mcodecov limebainishwa.

Chaguo la kuhifadhi kumbukumbu Kiendeshaji cha xc8-cc sasa kitakubali -mreserve=space@start: chaguo la mwisho wakati wa kujenga malengo ya AVR. Chaguo hili huhifadhi safu ya kumbukumbu iliyobainishwa katika nafasi ya kumbukumbu ya data au programu, ikizuia kiunganishi kujaza msimbo au vitu katika eneo hili.

IO nadhifu zaidi Maboresho kadhaa yamefanywa kwa vitendaji vya Smart IO, ikijumuisha marekebisho ya jumla kwa msimbo wa msingi wa printf, kuchukulia kibainishi cha ubadilishaji cha %n kama kibadala kinachojitegemea, kuunganisha katika vararg pop routines inapohitajika, kwa kutumia aina fupi za data inapowezekana kushughulikia hoja za utendakazi za IO. , na kuweka nambari ya kawaida katika upana wa uwanja na utunzaji wa usahihi. Hii inaweza kusababisha uokoaji mkubwa wa msimbo na data, na pia kuongeza kasi ya utekelezaji wa IO.

Toleo la 2.39 (Toleo la Usalama Utendaji)

Leseni ya Seva ya Mtandao Toleo hili la Kikusanya Usalama Kitendaji cha MPLAB XC8 inasaidia Leseni ya Seva ya Mtandao.

Toleo la 2.36

Hakuna.

Toleo la 2.35

Usaidizi wa kifaa kipya Usaidizi unapatikana kwa sehemu zifuatazo za AVR: ATTINY3224, ATTINY3226, ATTINY3227, AVR64DD14, AVR64DD20, AVR64DD28, na AVR64DD32.

Ubadilishaji wa muktadha ulioboreshwa Chaguo jipya la -mcall-isr-prologues hubadilisha jinsi vitendakazi vya kukatiza huhifadhi rejista wakati wa kuingia na jinsi rejista hizo zinavyorejeshwa wakati utaratibu wa kukatiza unakoma. Inafanya kazi kwa njia sawa na -mcall-prologues chaguo, lakini huathiri tu kazi za kukatiza (ISRs).

Ubadilishaji muktadha ulioboreshwa zaidi Chaguo jipya la -mgas-isr-prologues hudhibiti msimbo wa muktadha wa kuwashwa unaozalishwa kwa taratibu ndogo za kukatiza huduma. Kikiwashwa, kipengele hiki kitakuwa na mkusanyaji kuchanganua ISR kwa matumizi ya rejista na kuhifadhi rejista hizi zilizotumika tu ikiwa inahitajika.

Ramani ya flash inayoweza kusanidiwa Baadhi ya vifaa katika familia ya AVR DA na AVR DB vina SFR (km FLMAP) ambayo inabainisha ni sehemu gani ya 32k ya kumbukumbu ya programu itachorwa kwenye kumbukumbu ya data. Chaguo mpya - mconst-data-in-config-mapped-proem inaweza kutumika kufanya kiunganishi kuweka data zote zilizoidhinishwa katika sehemu moja ya 32k na kuanzisha kiotomatiki rejista husika ya SFR ili kuhakikisha kuwa data hii imepangwa kwenye nafasi ya kumbukumbu ya data. , ambapo itafikiwa kwa ufanisi zaidi.

Microchip Unified Standard Maktaba Wakusanyaji wote wa MPLAB XC watashiriki Maktaba ya Kawaida ya Microchip Unified, ambayo sasa inapatikana pamoja na toleo hili la MPLAB XC8. Mwongozo wa Mtumiaji wa Mkusanyaji wa MPLAB® XC8 C/au AVR® MCU haijumuishi tena uhifadhi wa vipengele hivi vya kawaida. Maelezo haya sasa yanaweza kupatikana katika Mwongozo wa Marejeleo ya Maktaba ya Kawaida ya Microchip. Kumbuka kuwa baadhi ya utendakazi uliofafanuliwa hapo awali na avr-libc haupatikani tena. (Angalia Mkutubi):'. utendajiY…)

Smart IO Kama sehemu ya maktaba mpya zilizounganishwa, utendakazi wa IO katika familia za kuchapisha na kuchanganua sasa zimeundwa maalum kwa kila muundo, kulingana na jinsi vipengele hivi vinatumiwa katika programu. Hii inaweza kupunguza kwa kiasi kikubwa rasilimali zinazotumiwa na programu.
Chaguo la usaidizi la Smart IO Wakati wa kuchanganua simu kwa vitendaji mahiri vya IO (kama vile printf () au scanf () ), mkusanyaji hawezi kubainisha kila wakati kutoka kwa mfuatano wa umbizo au kukisia kutoka kwa hoja hizo vibainishi vya ubadilishaji vinavyohitajika na simu. Hapo awali, mkusanyaji hangeweza kudhani kila wakati na kuhakikisha kuwa vitendaji vya IO vinavyofanya kazi kikamilifu viliunganishwa kwenye picha ya mwisho ya programu. Chaguo jipya - msmart-io-format=fmt limeongezwa ili mkusanyaji apate kufahamishwa na mtumiaji wa vibainishi vya ubadilishaji vinavyotumiwa na vitendaji mahiri vya IO ambavyo utumiaji wake haueleweki, na hivyo kuzuia mifumo mirefu ya IO kuunganishwa. (Angalia Chaguo la umbizo la smart-io kwa maelezo zaidi.)

Kuweka sehemu maalum Hapo awali, chaguo la -Wl, -section-start liliweka tu sehemu maalum kwenye anwani iliyoombwa wakati hati ya kiunganishi ilifafanua sehemu ya pato kwa jina sawa. Wakati haikuwa hivyo, sehemu hiyo iliwekwa kwenye anwani iliyochaguliwa na kiunganishi na chaguo hilo lilipuuzwa kimsingi. Sasa chaguo litaheshimiwa kwa sehemu zote maalum, hata kama hati ya kiunganishi haifafanui sehemu hiyo. Kumbuka, hata hivyo, kwamba kwa sehemu za kawaida, kama . maandishi,. bss au. data, kigawanyaji bora zaidi bado kitakuwa na udhibiti kamili juu ya uwekaji wao, na chaguo halitakuwa na athari. Tumia -Wl, -Tsection=add chaguo, kama ilivyoelezwa kwenye mwongozo wa mtumiaji.

Toleo la 2.32

Mwongozo wa Stack Inapatikana kwa kutumia leseni ya mkusanyaji wa PRO, kipengele cha mwongozo wa rafu kinaweza kutumiwa kukadiria kina cha juu cha rafu yoyote inayotumiwa na programu. Huunda na kuchanganua grafu ya simu ya programu, huamua matumizi ya rafu ya kila chaguo la kukokotoa, na kutoa ripoti, ambayo kina cha rundo kinachotumiwa na programu kinaweza kukisiwa. Kipengele hiki kimewezeshwa kupitia -mchp-stack-usage chaguo la mstari wa amri. Muhtasari wa matumizi ya rafu huchapishwa baada ya utekelezaji. Ripoti ya kina ya rafu inapatikana kwenye ramani file, ambayo inaweza kuombwa kwa njia ya kawaida.

Usaidizi wa kifaa kipya inapatikana kwa sehemu za AVR zifuatazo: ATTINY 427, ATTINY 424, ATTINY 426, ATTINY827, ATTINY824, ATTINY826, AVR32DB32, AVR64DB48, AVR64DB64, AVR64DB28, AVR32DB28, AVR64DB32, AVR32DB48, AVRXNUMXDBXNUMXDBXNUMX, AVRXNUMXDBXNUMXDBXNUMX

Usaidizi wa usaidizi wa kifaa ulioghairiwa haipatikani tena kwa sehemu zifuatazo za AVR: AVR16DA28, AVR16DA32 na, AVR16DA48.

Toleo la 2.31

Hakuna.

Toleo la 2.30

Chaguo jipya la kuzuia uanzishaji wa data Chaguo jipya la kiendesha -mno-data-ini t huzuia uanzishaji wa data na ufutaji wa sehemu za bss. Inafanya kazi kwa kukandamiza matokeo ya do_ copy_ data na d o_ clear_ bss alama kwenye mkusanyiko files, ambayo nayo itazuia kuingizwa kwa taratibu hizo na kiunganishi.

Uboreshaji Ulioimarishwa Idadi ya maboresho ya uboreshaji yamefanywa, ikiwa ni pamoja na kuondolewa kwa maagizo yasiyo ya lazima ya kurejesha, kuondolewa kwa baadhi ya miruko kufuatia maagizo ya kuruka-ikiwa-bit-ni, na uondoaji wa utaratibu ulioboreshwa na uwezo wa kukariri mchakato huu.

Chaguo za ziada sasa zinapatikana ili kudhibiti baadhi ya uboreshaji huu, hasa -f sehemu ya nanga, ambayo inaruhusu ufikiaji wa vitu tuli kutekelezwa kulingana na ishara moja; -mpai derations=n, ambayo inaruhusu idadi ya marudio ya uondoaji wa kiutaratibu kubadilishwa kutoka chaguo-msingi ya 2; na, -mpa- call cost- shortcall, ambayo hufanya uondoaji wa kiutaratibu kwa ukali zaidi, kwa matumaini kwamba kiunganishi kinaweza kupumzika simu ndefu. Chaguo hili la mwisho linaweza kuongeza saizi ya nambari ikiwa mawazo ya msingi hayatatekelezwa.

Usaidizi wa kifaa kipya Msaada unapatikana kwa sehemu zifuatazo za AVR: AVR16DA28, AVR16DA32,
AVR16DA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR128DB28, AVR128DB32, AVR128DB48, na AVR128DB64.

Usaidizi wa kifaa ulioghairiwa Usaidizi haupatikani tena kwa sehemu zifuatazo za AVR: ATA5272, ATA5790, ATA5790N, ATA5791,ATA5795,ATA6285,ATA6286,ATA6612C,ATA6613C, ATA6614Q, ATA6616C, ATA6617C, 664251 ATAXNUMXC, XNUMX ATAXNUMXC, ATAXNUMXC, ATAXNUMXC, ATAXNUMXC na XNUMX

Toleo la 2.29 (Toleo la Usalama Utendaji)

Kijajuu file kwa vijumuisho vya mkusanyaji Ili kuhakikisha kuwa mkusanyaji anaweza kuendana na vipimo vya lugha kama vile MISRA, the kichwa file, ambayo imejumuishwa kiotomatiki na , imesasishwa. Kichwa hiki kina mifano ya vitendaji vyote vilivyojengwa ndani, kama vile _buil tin _avrnop () na _buil tin_ avr delay_ cycles () . Baadhi ya majengo yanaweza yasikubaliane na MISRA; hizi zinaweza kuachwa kwa kuongeza ufafanuzi _Xe_ STRICT_ MISRA kwenye safu ya amri ya mkusanyaji. Vipengele vilivyojengewa ndani na matamko yao yamesasishwa ili kutumia aina za upana usiobadilika.

Toleo la 2.20

Usaidizi wa kifaa kipya Usaidizi unapatikana kwa sehemu zifuatazo za AVR: ATTINY1624, ATTINY1626, na ATTINY1627.

Mgao bora unaofaa zaidi Kigawanyaji bora zaidi (BFA) katika kikusanyaji kimeboreshwa ili sehemu zigawiwe kwa mpangilio unaoruhusu uboreshaji bora. BFA sasa inasaidia nafasi za anwani zilizotajwa na inashughulikia vyema uanzishaji wa data.

Uondoaji wa kiutaratibu ulioboreshwa Uboreshaji wa uondoaji wa kiutaratibu sasa unafanywa kwa mfuatano zaidi wa msimbo. Hali za awali ambapo uboreshaji huu unaweza kuwa na ukubwa wa msimbo ulioongezeka umeshughulikiwa kwa kufanya msimbo wa uboreshaji kufahamu mchakato wa ukusanyaji wa takataka wa kiunganishi.

Kutokuwepo kwa AVR Assembler Kikusanyaji cha AVR hakijajumuishwa tena kwenye usambazaji huu.

Toleo la 2.19 (Toleo la Usalama Utendaji)

Hakuna.

Toleo la 2.10

Ufikiaji wa Msimbo Toleo hili linajumuisha kipengele cha ufunikaji wa msimbo ambacho hurahisisha uchanganuzi wa kiwango ambacho msimbo wa chanzo cha mradi umetekelezwa. Tumia chaguo -mcodecov=ram ili kuiwezesha. Baada ya utekelezaji wa programu kwenye maunzi yako, maelezo ya chanjo ya msimbo yatakusanywa kwenye kifaa, na hii inaweza kuhamishwa hadi na kuonyeshwa na MPLAB X IDE kupitia programu-jalizi ya chanjo ya msimbo. Tazama hati za IDE kwa habari juu ya programu-jalizi hii inaweza kupatikana. #pragma mcodecov inaweza kutumika kutenga vitendaji vifuatavyo kwenye uchanganuzi wa chanjo. Kwa kweli pragma inapaswa kuongezwa mwanzoni mwa file kuwatenga yote hayo file kutoka kwa uchambuzi wa chanjo. Vinginevyo, sifa ( (mcodecov) ) inaweza kutumika kutenga chaguo la kukokotoa mahususi kutoka kwa uchanganuzi wa chanjo.

Maelezo ya kifaa files Kifaa kipya file inayoitwa avr chipinfo. html iko kwenye saraka ya hati ya usambazaji wa mkusanyaji. Hii file huorodhesha vifaa vyote vinavyoungwa mkono na mkusanyaji. Bofya kwenye jina la kifaa, na itafungua ukurasa unaoonyesha mipangilio/jozi zote za thamani za usanidi zinazoruhusiwa za kifaa hicho, pamoja na ex.ampchini.

Uondoaji wa kiutaratibu Uboreshaji wa uondoaji wa kiutaratibu, ambao hubadilisha vizuizi vya kawaida vya msimbo wa kusanyiko na simu hadi nakala iliyotolewa ya kizuizi hicho, umeongezwa kwa mkusanyaji. Haya yanatekelezwa na programu tofauti, ambayo inaombwa kiotomatiki na mkusanyaji wakati wa kuchagua uboreshaji wa kiwango cha 2, 3 au. Uboreshaji huu hupunguza ukubwa wa msimbo, lakini unaweza kupunguza kasi ya utekelezaji na utatuzi wa msimbo.
Utoaji wa kiutaratibu unaweza kuzimwa katika viwango vya juu zaidi vya uboreshaji kwa kutumia chaguo -mno-pa, au unaweza kuwashwa katika viwango vya chini vya uboreshaji (kulingana na leseni yako) kwa kutumia -mpa. Inaweza kuzimwa kwa kitu file kutumia -mno-pa-on-file=filejina, au kulemazwa kwa chaguo la kukokotoa kwa kutumia -mno-pa kwenye function= kazi.
Ndani ya msimbo wako wa chanzo, uondoaji wa kiutaratibu unaweza kuzimwa kwa chaguo la kukokotoa kwa kutumia _attribute_ ( (nopa)) pamoja na ufafanuzi wa chaguo hili la kukokotoa, au kwa kutumia _nopa, ambayo hupanuka hadi sifa ( ( nopa, noinline)) na hivyo kuzuia utendaji kazi usifanyike. na kuna uondoaji wa msimbo uliowekwa ndani.
Funga msaada kidogo katika pragma Mipangilio ya #pragma sasa inaweza kutumika kubainisha sehemu za kufuli za AVR na vile biti zingine za usanidi. Angalia maelezo ya chip ya avr. html file (iliyotajwa hapo juu) kwa mpangilio/jozi za thamani za kutumia na pragma hii.
Usaidizi wa kifaa kipya Usaidizi unapatikana kwa sehemu zifuatazo: AVR28DA128, AVR64DA128,AVR32DA128, na AVR48DA128.

Toleo la 2.05

Biti zaidi kwa pesa yako Toleo la macOS la mkusanyaji na meneja wa leseni sasa ni programu ya 64-bit. Hii itahakikisha kuwa mkusanyaji atasakinisha na kukimbia bila maonyo kwenye matoleo ya hivi majuzi ya macOS.
Vipengee vya Const kwenye kumbukumbu ya programu Mkusanyaji sasa anaweza kuweka vipengee vilivyohitimu sana kwenye Kumbukumbu ya Flash ya programu, badala ya kuviweka kwenye RAM. Kikusanyaji kimerekebishwa ili data ya kimataifa inayostahiki kuhifadhiwa kwenye kumbukumbu ya flash ya programu na data hii inaweza kufikiwa moja kwa moja na isivyo moja kwa moja kwa kutumia maagizo yanayofaa ya kumbukumbu ya programu. Kipengele hiki kipya kimewezeshwa kwa chaguo-msingi lakini kinaweza kulemazwa kwa kutumia -mno-const-data-in-progmem chaguo. Kwa usanifu wa avrxmega3 na avrtiny, kipengele hiki hakihitajiki na daima kimezimwa, kwa kuwa kumbukumbu ya programu imewekwa kwenye nafasi ya anwani ya data ya vifaa hivi.
Kawaida kwa bure Matoleo yasiyo na leseni (ya Bila malipo) ya kikusanyaji hiki sasa yanaruhusu uboreshaji hadi na kujumuisha kiwango cha 2. Hii itaruhusu utoaji sawa, ingawa haufanani, na ule uliowezekana hapo awali kwa kutumia leseni ya Kawaida.
Karibu AVRASM2 Kikusanyaji cha AVRASM2 cha vifaa vya 8-bit sasa kimejumuishwa kwenye kisakinishi cha mkusanyaji cha XC8. Kikusanyaji hiki hakitumiwi na mkusanyaji wa XC8, lakini kinapatikana kwa miradi kulingana na chanzo cha kusanyiko kilichoandikwa kwa mkono.
Usaidizi wa kifaa kipya Usaidizi unapatikana kwa sehemu zifuatazo: ATMEGA1608, ATMEGA1609, ATMEGA808, na ATMEGA809.

Toleo la 2.00

Dereva wa kiwango cha juu Dereva mpya, anayeitwa xc8-cc, sasa anakaa juu ya kiendeshi cha awali cha avr-gcc na kiendeshi cha xc8, na anaweza kuita kikusanyaji kinachofaa kulingana na uteuzi wa kifaa lengwa. Kiendeshaji hiki kinakubali chaguo za mtindo wa GCC, ambazo hutafsiriwa au kupitishwa kwa mkusanyaji anayetekelezwa. Kiendeshaji hiki huruhusu chaguo sawa na semantiki zinazofanana kutumika kwa lengo lolote la AVR au PIC na kwa hivyo ndiyo njia inayopendekezwa ya kuomba mkusanyaji. Ikihitajika, kiendeshi cha zamani cha avr-gcc kinaweza kuitwa moja kwa moja kwa kutumia chaguo za mtindo wa zamani ambacho kilikubaliwa katika matoleo ya awali ya mkusanyaji.

Kiolesura cha kawaida cha C Kikusanyaji hiki sasa kinaweza kulingana na Kiolesura cha MPLAB Common C, kikiruhusu msimbo wa chanzo kusambazwa kwa urahisi zaidi kwenye vikusanyaji vyote vya MPLAB XC. Chaguo la -mext=cci linaomba kipengele hiki, kuwezesha sintaksia mbadala kwa viendelezi vingi vya lugha.

Dereva mpya wa maktaba Dereva mpya wa maktaba amewekwa juu ya msimamizi wa maktaba wa PIC na msimamizi wa maktaba wa AVR avr-ar. Kiendeshaji hiki kinakubali chaguo za mtindo wa kiweka kumbukumbu cha GCC, ambazo hutafsiriwa au kupitishwa kwa msimamizi wa maktaba anayetekelezwa. Dereva mpya huruhusu chaguo sawa na semantiki zinazofanana kutumika kuunda au kudanganya maktaba yoyote ya PIC au AVR. file na kwa hivyo ndiyo njia inayopendekezwa ya kuomba msimamizi wa maktaba. Ikihitajika kwa miradi iliyopitwa na wakati, msimamizi wa maktaba aliyetangulia anaweza kuitwa moja kwa moja kwa kutumia chaguo za mtindo wa zamani ambazo zilikubaliwa katika matoleo ya awali ya mkusanyaji.

Masuala ya Uhamiaji

Zifuatazo ni vipengele ambavyo sasa vinashughulikiwa tofauti na mkusanyaji. Mabadiliko haya yanaweza kuhitaji kubadilishwa kwa msimbo wako wa chanzo ikiwa msimbo wa kuhamisha kwa toleo hili la mkusanyaji. Nambari ya toleo katika vichwa vidogo inaonyesha toleo la kwanza la mkusanyaji ili kusaidia mabadiliko yanayofuata.

Toleo la 2.40

Hakuna.

Toleo la 2.39 (Toleo la Usalama Utendaji)

Hakuna.

Toleo la 2.36

Hakuna.

Toleo la 2.35

Ushughulikiaji wa kamba-kwa besi (XCS-2420) Ili kuhakikisha uwiano na vikusanyaji vingine vya XC, utendakazi wa mfuatano wa XC8, kama vile strtol () n.k., hautajaribu tena kubadilisha mfuatano wa ingizo ikiwa msingi uliobainishwa ni mkubwa kuliko 36 na badala yake utaweka errno kuwa EINVAL. Kiwango cha C hakibainishi tabia ya chaguo za kukokotoa wakati thamani hii ya msingi imepitwa.

Uboreshaji wa kasi usiofaa Uboreshaji wa kiutaratibu ulikuwa unawashwa wakati wa kuchagua uboreshaji wa kiwango cha 3 (-03). Uboreshaji huu hupunguza saizi ya msimbo kwa gharama ya kasi ya msimbo, kwa hivyo haikupaswa kutekelezwa. Miradi inayotumia kiwango hiki cha uboreshaji inaweza kuona tofauti katika saizi ya msimbo na kasi ya utekelezaji inapoundwa na toleo hili.

Utendaji wa maktaba Msimbo wa utendakazi mwingi wa kawaida wa maktaba ya C sasa unatoka kwenye Maktaba ya Kawaida ya Unified ya Microchip, ambayo inaweza kuonyesha tabia tofauti katika hali fulani ikilinganishwa na ile iliyotolewa na maktaba ya zamani ya avr-libc. Kwa mfanoampna, si lazima tena kuunganisha kwenye maktaba ya lprintf_flt (-print _flt chaguo) ili kuwasha usaidizi wa IO ulioumbizwa kwa vibainishi vya umbizo la kuelea. Vipengele mahiri vya IO vya Maktaba ya Kawaida ya Microchip Unified hufanya chaguo hili kuwa la ziada. Zaidi ya hayo, utumiaji wa _p wa utaratibu wa kiambishi kwa kamba na vitendaji vya kumbukumbu (kwa mfano strcpy_P () n.k .. ) ambazo zinafanya kazi kwenye nyuzi za const katika flash hazihitajiki tena. Taratibu za kawaida za C (km strcpy ()) zitafanya kazi ipasavyo na data kama hiyo wakati kipengele cha kumbukumbu ya const-data-in-program-memory kimewashwa.

Toleo la 2.32

Hakuna.

Toleo la 2.31

Hakuna.

Toleo la 2.30

Hakuna.

Toleo la 2.29 (Toleo la Usalama Utendaji)

Hakuna.

Toleo la 2.20

Umebadilisha muundo wa DFP Kikusanyaji sasa kinachukua mpangilio tofauti unaotumiwa na DFPs (Vifurushi vya Familia ya Kifaa). Hii itamaanisha kuwa DFP ya zamani huenda isifanye kazi na toleo hili, na watunzi wakubwa hawataweza kutumia DFP za hivi punde.

Toleo la 2.19 (Toleo la Usalama Utendaji)

Hakuna.

Toleo la 2.10

Hakuna

Toleo la 2.05

Const vitu katika kumbukumbu ya programu Kumbuka kuwa kwa chaguo-msingi, vitu vilivyohitimu-vifaa vitawekwa na kufikiwa kwenye kumbukumbu ya programu (kama ilivyoelezwa hapa) . Hii itaathiri ukubwa na kasi ya utekelezaji wa mradi wako, lakini inapaswa kupunguza matumizi ya RAM. Kipengele hiki kinaweza kuzimwa, ikihitajika, kwa kutumia -mnoconst- da ta-in-progmem chaguo.

Toleo la 2.00

Fuse za usanidi Fuse za usanidi wa kifaa sasa zinaweza kupangwa kwa kutumia pragma ya usanidi ikifuatiwa na kuweka-thamani jozi ili kubainisha hali ya fuse, kwa mfano.
#pragma config WDT0N = SET
#pragma config B0DLEVEL = B0DLEVEL_4V3
Vitu na kazi kamili Vitu na utendakazi sasa vinaweza kuwekwa kwenye anwani maalum kwenye kumbukumbu kwa kutumia kibainishi cha CCI _at (anwani), kwa mfano.ample: #pamoja na int foobar kwa(Ox800100); char at(Ox250) get ID(int offset) { … } Hoja kwa kibainishi hiki lazima kiwe kisichobadilika kinachowakilisha anwani ambayo baiti au maagizo ya kwanza yatawekwa. Anwani za RAM zinaonyeshwa kwa kutumia kukabiliana na 0x800000. Washa CCI kutumia kipengele hiki.
Sintaksia mpya ya kukatiza utendakazi Mkusanyaji sasa anakubali kibainishi cha kukatiza kwa CCI (num) ili kuashiria kuwa kazi za C ni vidhibiti vya kukatiza. Kiainishi huchukua nambari ya kukatiza, kwa mfanoample: #pamoja na usumbufu utupu(SPI STC_ vect _num) spi Isr(utupu) { … }

Masuala yasiyobadilika

Yafuatayo ni marekebisho ambayo yamefanywa kwa mkusanyaji. Hizi zinaweza kurekebisha hitilafu katika msimbo uliozalishwa au kubadilisha utendakazi wa mkusanyaji hadi ule uliokusudiwa au kubainishwa na mwongozo wa mtumiaji. Nambari ya toleo katika vichwa vidogo inaonyesha toleo la kwanza la mkusanyaji kuwa na marekebisho ya masuala yanayofuata. Lebo zilizo kwenye mabano katika kichwa ni kitambulisho cha suala hilo katika hifadhidata ya ufuatiliaji. Hizi zinaweza kuwa muhimu ikiwa unahitaji kuwasiliana na usaidizi.

Kumbuka kuwa baadhi ya masuala mahususi ya kifaa hurekebishwa katika Kifurushi cha Familia ya Kifaa (DFP) kinachohusishwa na kifaa. Tazama Kidhibiti Pakiti cha MPLAB kwa maelezo kuhusu mabadiliko yaliyofanywa kwa DFPs na kupakua vifurushi vipya zaidi.

Toleo la 2.40

Imetulia sana (XCS-2876) Wakati wa kutumia -mrelax chaguo, mkusanyaji hakuwa akigawa sehemu kadhaa pamoja, na kusababisha saizi ndogo za nambari. Hii inaweza kuwa ilitokea kwa msimbo uliotumia maktaba mpya za MUSL au na alama dhaifu.
Kipengele cha ramani hakijazimwa kama ilivyoelezwa katika onyo (XCS-2875) Kipengele cha data-in-config mappedprogmem kinategemea kipengele cha data-gharama-katika-proem kuwashwa. Ikiwa kipengele cha data ya gharama-ipconfig- mapped-proem kiliwezeshwa kwa uwazi kwa kutumia chaguo na kipengele cha data-data-inprogmem kilizimwa, hatua ya kuunganisha ilishindwa, licha ya ujumbe wa onyo unaosema kuwa data ya hasara- in-config-mapped- kipengele cha proem kilikuwa kimezimwa kiotomatiki, jambo ambalo halikuwa sahihi kabisa. Kipengele cha const-data-in-config-mapped-proem sasa kimezimwa kikamilifu katika hali hii.
Mabadiliko ya DFP kufikia NVMCTRL (XCS-2848) kwa usahihi Msimbo wa kuanza wakati wa utekelezaji unaotumiwa na vifaa vya AVR64EA haukuzingatia kwamba rejista ya NVMCTRL ilikuwa chini ya Ulinzi wa Mabadiliko ya Usanidi (CCP) na haikuweza kuweka IO SFR kwenye ukurasa unaotumiwa na mkusanyaji wa proem iliyosanidiwa ya const-data-in. kipengele. Mabadiliko yaliyofanywa katika toleo la 2.2.55 la AVR-Ex_DFP yataruhusu msimbo wa kuanza wakati wa utekelezaji kuandika kwa usahihi kwenye rejista hii.
Mabadiliko ya DFP ili kuzuia upangaji ramani (XCS-2847) Suluhisho la tatizo la kipengele cha kifaa cha kuweka ramani flash kilichoripotiwa katika AVR128DA28/32/48/64 Silicon Errata (DS80000882) limetekelezwa. Kipengele cha mkusanyaji wa const-data-in-config-mapped-proem hakitatumika kwa chaguomsingi kwa vifaa vilivyoathiriwa, na mabadiliko haya yataonekana katika toleo la AVR-Ex_DFP 2.2.160.
Jenga hitilafu na sinhf au coshf (XCS-2834) Majaribio ya kutumia sinhf () au coshf () utendaji wa maktaba ulisababisha hitilafu ya kiungo, ikielezea rejeleo lisilofafanuliwa. Chaguo za kukokotoa zinazokosekana zilizorejelewa sasa zimejumuishwa katika usambazaji wa mkusanyaji.
Jenga makosa na nopa (XCS-2833) Kutumia sifa ya nopa iliyo na chaguo la kukokotoa ambalo jina lake la mkusanyaji limeainishwa kwa kutumia kama () ilisababisha ujumbe wa makosa kutoka kwa kiunganishi. Mchanganyiko huu hauwezekani.
Kushindwa kwa utendaji wa anuwai na hoja za vielelezo (XCS-2755, XCS-2731) Kazi zilizo na idadi tofauti ya hoja zinatarajia viashiria 24-bit (aina _memo) kupitishwa katika orodha ya hoja zinazobadilika wakati kipengele cha data-gharama-katika-proem kimewashwa. Hoja ambazo zilikuwa viashiria vya kumbukumbu ya data zilikuwa zikipitishwa kama vitu vya biti 16, na kusababisha kushindwa kwa msimbo wakati zilisomwa. Wakati kipengele cha data- in-proem kinapowashwa, hoja zote za viashiria 16 sasa hubadilishwa kuwa viashiria 24-bit. Utendakazi wa maktaba ya strtoxxx haukufaulu (XCS-2620) Wakati kipengele cha const-data-in-proem kiliwashwa, kigezo cha ingiza katika utendakazi wa maktaba ya strtoxxx hakikusasishwa ipasavyo kwa hoja za kamba chanzo zisizo kwenye kumbukumbu ya programu.
Tahadhari kwa waigizaji batili (XCS-2612) Mkusanyaji sasa atatoa hitilafu ikiwa kipengele cha gharama-katika-proem kimewashwa na anwani ya mfuatano halisi inatupwa kwa uwazi kwenye nafasi ya anwani ya data (kuacha kufuzu kwa const), kwa ex.ample, (uint8 t *) "Hujambo Ulimwengu!". Onyo ni suala ikiwa anwani inaweza kuwa batili wakati kielekezi cha data cha const kinatumwa kwa uwazi kwenye nafasi ya anwani ya data.
Uwekaji wa vitu vya const ambavyo havijatumiwa (XCS-2408) Vipengee ambavyo havijaanzishwa vya const na const v olatile havikuwa vikiwekwa kwenye kumbukumbu ya programu kwenye vifaa vinavyoweka ramani yote au sehemu ya kumbukumbu ya programu katika nafasi ya anwani ya data. Kwa vifaa hivi, vitu kama hivyo sasa vimewekwa kwenye kumbukumbu ya programu, na kufanya operesheni yao iwe sawa na vifaa vingine.

Toleo la 2.39 (Toleo la Usalama Utendaji)

Hakuna.

Toleo la 2.36

Hitilafu wakati wa kuchelewesha (XCS-2774) Mabadiliko madogo katika uboreshaji chaguo-msingi wa Hali Huru yalizuia mkunjo wa mara kwa mara wa vielelezo vya uendeshaji hadi kuchelewesha vitendaji vilivyojumuishwa, na kusababisha kuchukuliwa kama watu wasio wawasiliani na kusababisha hitilafu: _buil tin avr delay_ cycles inatarajia ac opile. nambari kamili ya wakati.

Toleo la 2.35

Ugawaji wa pamoja kwa kutumia _at (XCS-2653) Ugawaji sawia wa mahali pa vitu vingi katika sehemu yenye jina sawa na kutumia katika () haikufanya kazi ipasavyo. Kwa mfanoample: constchararrl [ ] at tri butte ((sect on(“.misses”)))) at (Ox50 0 ) = {Oxo , Ox CD} ; cost char arr2[ ] at tri butte ((section(“.my s eke”))) = {Oxen, Ox FE }; inapaswa kuwa imeweka arr2 mara baada ya aril.
Inabainisha anwani za sehemu ya kuanza (XCS-2650) Chaguo la -Wal, -section-start lilikuwa limeshindwa kimya kimya kuweka sehemu kwenye anwani ya kuanzia iliyoteuliwa. Suala hili limerekebishwa kwa sehemu zozote zilizopewa jina maalum; hata hivyo, haitafanya kazi kwa sehemu zozote za kawaida, kama vile . maandishi au. bss, ambayo lazima iwekwe kwa kutumia -Wl, -T chaguo.
Kiungo huacha kufanya kazi wakati wa kupumzika (XCS-2647) Wakati -relax optimization iliwezeshwa na kulikuwa na msimbo au sehemu za data ambazo hazikuendana na kumbukumbu inayopatikana, kiunganishi kilianguka. Sasa, katika hali kama hiyo, ujumbe wa makosa hutolewa badala yake.
Ufikiaji mbaya wa EEPROM (XCS-2629) Utaratibu wa kuzuia leproma _read_ haukufanya kazi ipasavyo kwenye vifaa vya Mega wakati chaguo la -monist-data-in-proem lilipowezeshwa (ambayo ndiyo hali chaguo-msingi), na kusababisha kumbukumbu ya EEPROM kutosomwa ipasavyo.
Mgao batili wa kumbukumbu (XCS-2593, XCS-2651) Wakati chaguo la -Text au -Tata kiunganishi (kwa mfanoample kupita kwa kutumia -Wl dereva chaguo) imebainishwa, asili ya eneo la maandishi/data inayolingana ilisasishwa; hata hivyo, anwani ya mwisho haikurekebishwa ipasavyo, ambayo inaweza kusababisha eneo kuzidi safu ya kumbukumbu ya kifaa lengwa.
Msimbo batili wa kukatiza wa ATtiny (XCS-2465) Wakati uundaji wa vifaa vya Tatin na uboreshaji ulizimwa (-00), utendakazi wa kukatiza huenda ulianzisha utendakazi nje ya masafa ya ujumbe wa kiunganishi.
Chaguo ambazo hazijapitishwa (XCS-2452) Wakati wa kutumia chaguo la -Wl na chaguo nyingi za kiunganishi, zilizotenganishwa kwa koma, sio chaguo zote za kiunganishi zilikuwa zikipitishwa kwa kiunganishi.
Hitilafu katika kusoma kumbukumbu ya programu (XCS-2450) Katika hali zingine, mkusanyaji alitoa hitilafu ya ndani (insn isiyoweza kutambulika) wakati wa kusoma thamani ya byte mbili kutoka kwa pointer hadi kumbukumbu ya programu.

Toleo la 2.32

Ufikiaji wa pili wa maktaba unashindwa (XCS-2381) Inakaribisha toleo la Windows la xc8-ar. exe kiweka kumbukumbu cha maktaba kwa mara ya pili kufikia kumbukumbu iliyopo ya maktaba inaweza kuwa imeshindwa kwa kushindwa kubadilisha jina la ujumbe wa hitilafu.

Toleo la 2.31

Hitilafu za mkusanyaji zisizoelezeka (XCS-2367) Wakati wa kuendesha kwenye majukwaa ya Windows ambayo saraka ya muda ya mfumo imewekwa kwenye njia iliyojumuisha nukta'.' tabia, mkusanyaji anaweza kuwa ameshindwa kutekeleza.

Toleo la 2.30

Lebo za kimataifa zilikosewa baada ya kuelezea (XCS-2299) Msimbo wa mkusanyiko ulioandikwa kwa mkono ambao huweka lebo za kimataifa ndani ya mifuatano ya mikusanyiko ambayo hutolewa kwa uondoaji wa kiutaratibu huenda haujawekwa upya ipasavyo.
Ajali ya kupumzika (XCS-2287) Kutumia chaguo la -merlad kunaweza kusababisha kiunganishi kuanguka wakati uboreshaji wa kupumzika kwa kuruka mkia ulipojaribu kuondoa maagizo ya ret ambayo hayakuwa mwishoni mwa sehemu.
Kuacha kufanya kazi wakati wa kuboresha lebo kama thamani (XCS-2282) Msimbo unaotumia "Lebo kama thamani" kiendelezi cha lugha ya GNU C huenda kilisababisha uboreshaji wa uondoaji wa kiutaratibu kuvurugika, na hitilafu ya urekebishaji ya safu ya mfululizo ya VMA Iliyoainishwa.
Sio ngumu sana (XCS-2271) Prototypes za kuanza () na vitendaji vingine kutoka usibainishe tena kihitimu cha gharama isiyo ya kawaida kwenye viashiria vya kamba vilivyorejeshwa wakati kipengele cha -monist-data inprogmem kimezimwa. Kumbuka kuwa na avrxmega3 na vifaa vya avertin, kipengele hiki kimewashwa kabisa.
Vianzishaji vilivyopotea (XCS-2269) Wakati zaidi ya kigezo kimoja katika kitengo cha kutafsiri kiliwekwa katika sehemu (kwa kutumia sehemu au sifa ((sehemu))), na kigezo cha kwanza kama hicho kilianzishwa sifuri au hakikuwa na kianzilishi, vianzishi vya vigeu vingine katika kitengo sawa cha tafsiri. ambazo ziliwekwa katika sehemu hiyo hiyo zilipotea.

Toleo la 2.29 (Toleo la Usalama Utendaji)

Hakuna.

Toleo la 2.20

Hitilafu na amri ndefu (XCS-1983) Wakati wa kutumia lengo la AVR, mkusanyaji anaweza kuwa ameacha kutumia a file kosa halijapatikana, ikiwa safu ya amri ilikuwa kubwa sana na ilikuwa na herufi maalum nukuu, mikwaruzo, n.k.
Sehemu ya rodata ambayo haijakabidhiwa (XCS-1920) Kiunganishi cha AVR kimeshindwa kukabidhi kumbukumbu kwa sehemu maalum za rodata wakati wa kujenga usanifu wa avrxmega3 na avrtiny, uwezekano wa kusababisha hitilafu za mwingiliano wa kumbukumbu.

Toleo la 2.19 (Toleo la Usalama Utendaji)

Hakuna.

Toleo la 2.10

Kushindwa kwa uhamishaji (XCS-1891) Kigawanyaji bora zaidi kilikuwa kikiacha 'mashimo' ya kumbukumbu kati ya sehemu baada ya kulegea kwa kiunganishi. Kando na kugawanyika kwa kumbukumbu, hii iliongeza uwezekano wa kuwa na hitilafu za kuhamisha kiunganishi zinazohusiana na mirukaji inayohusiana na kompyuta au simu kuwa nje ya anuwai.
Maagizo ambayo hayajabadilishwa na kupumzika (XCS-1889) Utulizaji wa kiunganishi haukutokea kwa maagizo ya kuruka au kupiga simu ambayo shabaha zake zinaweza kufikiwa ikiwa zitalegezwa.
Haipo utendaji (XCSE-388) Ufafanuzi kadhaa kutoka , kama vile clock_ div_ t na clock_prescale_set (), hazikufafanuliwa kwa vifaa, ikiwa ni pamoja na ATmega324PB, ATmega328PB, ATtiny441, na ATtiny841.
Macros zinazokosekana Preprocessor macros_ xcs _MODE_, _xcs VERSION, _xc, na xcs hazikufafanuliwa kiotomatiki na mkusanyaji. Hizi sasa zinapatikana.

Toleo la 2.05

Hitilafu ya mkusanyaji wa ndani (XCS-1822) Wakati wa kujenga chini ya Windows, hitilafu ya mkusanyaji wa ndani inaweza kuwa imetolewa wakati wa kuboresha nambari.
Kiwango cha ziada cha RAM hakijatambuliwa (XCS-1800, XCS-1796) Programu ambazo zilizidi RAM inayopatikana hazikugunduliwa na mkusanyaji katika hali fulani, na kusababisha kutofaulu kwa msimbo wa wakati wa utekelezaji.
Kumbukumbu ya flash iliyoachwa (XCS-1792) Kwa vifaa vya avrxmega3 na avrtiny, sehemu za kumbukumbu ya flash zinaweza kuwa zimeachwa bila kupangwa na MPLAB X IDE.
Kushindwa kutekeleza kuu (XCS-1788) Katika baadhi ya hali ambapo programu haikuwa na vigezo vya kimataifa vilivyofafanuliwa, msimbo wa kuanza wakati wa kukimbia haukutoka na kazi kuu () haikufikiwa kamwe.
Maelezo ya kumbukumbu yasiyo sahihi (XCS-1787) Kwa vifaa vya avrxmega3 na avrtiny, mpango wa ukubwa wa avr ulikuwa ukiripoti kuwa data ya kusoma tu ilikuwa ikitumia RAM badala ya kumbukumbu ya programu.
Kumbukumbu isiyo sahihi ya programu iliyosomwa (XCS-1783) Miradi iliyokusanywa kwa ajili ya vifaa vilivyo na kumbukumbu ya programu iliyopangwa kwenye nafasi ya anwani ya data na ambayo inafafanua vitu kwa kutumia PROGMEM macro/sifa inaweza kuwa imesoma vitu hivi kutoka kwa anwani isiyo sahihi.
Hitilafu ya ndani yenye sifa (XCS-1773) Hitilafu ya ndani ilitokea ikiwa ulifafanua vitu vya pointer na
_at () au attribute() tokeni kati ya jina la kielekezi na aina isiyorejelewa, kwa mfanoample, char *
_kwa ( 0x80015 0) cp; Onyo sasa limetolewa ikiwa nambari kama hiyo itapatikana.
Imeshindwa kutekeleza kuu (XCS-1780, XCS-1767, XCS-1754) Kutumia vigeu vya EEPROM au kufafanua fuse kwa kutumia pragma ya usanidi kunaweza kusababisha uanzishaji usio sahihi wa data na/au kufunga utekelezaji wa programu katika msimbo wa kuanzisha wakati wa kuanza, kabla ya kufikia main () .
Hitilafu ya fuse na vifaa vidogo (XCS-1778, XCS-1742) Vifaa vya attiny4/5/9/10/20/40 vilikuwa na urefu wa fuse usio sahihi uliobainishwa kwenye kichwa chao. files ambayo husababisha makosa ya kiunganishi wakati wa kujaribu kuunda nambari inayofafanua fuse.
Hitilafu ya sehemu (XCS-1777) Hitilafu ya mara kwa mara ya sehemu imerekebishwa.
Ajali ya Assembler (XCS-1761) Kikusanyaji cha avr-as kinaweza kuwa kilianguka wakati mkusanyaji uliendeshwa chini ya Ubuntu 18.
Vitu havijafutwa (XCS-1752) Vipengee vya muda wa hifadhi tuli ambavyo havijaanzishwa huenda havijafutwa na msimbo wa kuanzisha wakati wa utekelezaji.
Vipimo vya kifaa vinavyokinzana vimepuuzwa (XCS-1749) Mkusanyaji hakuwa akizalisha hitilafu wakati chaguo nyingi za ubainishaji wa kifaa zilitumiwa na kuashiria vifaa tofauti.
Uharibifu wa kumbukumbu kwa lundo (XCS-1748) Alama ya heap_ start ilikuwa ikiwekwa kimakosa, na kusababisha uwezekano wa viambajengo vya kawaida kuharibiwa na lundo.
Hitilafu ya kuhamisha kiungo (XCS-1739) Hitilafu ya kuhamisha kiunganishi inaweza kuwa imetolewa wakati msimbo ulikuwa na rjmp au rcall yenye lengo la umbali wa baiti 4k haswa.

Toleo la 2.00

Hakuna.

Masuala Yanayojulikana

Yafuatayo ni mapungufu katika utendakazi wa mkusanyaji. Hizi zinaweza kuwa vikwazo vya jumla vya usimbaji, au
kupotoka kutoka kwa habari iliyomo kwenye mwongozo wa mtumiaji. Lebo zilizo kwenye mabano katika kichwa ni kitambulisho cha suala hilo katika hifadhidata ya ufuatiliaji. Hii inaweza kuwa na manufaa ikiwa unahitaji kuwasiliana na usaidizi. Vipengee hivyo ambavyo havina lebo ni vikwazo vinavyoelezea hali ya uendeshaji na ambavyo vina uwezekano wa kubaki na athari kabisa.

Ujumuishaji wa IDE ya MPLAB X

Ujumuishaji wa Kitambulisho cha MPLAB Ikiwa Kikusanyaji kitatumika kutoka kwa MPLAB IDE, basi lazima usakinishe MPLAB IDE kabla ya kusakinisha Compiler.

Uzalishaji wa Kanuni

Kushindwa kwa mgao wa kumbukumbu ya PA (XCS-2881) Wakati wa kutumia viboreshaji vya kiutaratibu, kiunganishi kinaweza kuripoti hitilafu za ugawaji kumbukumbu wakati ukubwa wa msimbo uko karibu na kiasi cha kumbukumbu ya programu inayopatikana kwenye kifaa, ingawa programu inapaswa kutoshea nafasi inayopatikana.
Sio mahiri sana Smart-IO (XCS-2872) Kipengele cha smart-io cha mkusanyaji kitatoa msimbo halali lakini mdogo kwa utendaji wa mbio mbio ikiwa kipengele cha data-in-proem cha pwani kimezimwa au ikiwa kifaa kina mweko wake wote uliowekwa kwenye kumbukumbu ya data.
Smart-IO (XCS-2869) yenye akili ndogo zaidi Kipengele cha smart-io cha mkusanyaji kitatoa msimbo halali lakini usiofaa wakati chaguzi za bati -floe na -fno-buil zitatumika zote.
Uwekaji wa data ya kusoma pekee (XCS-2849) Kiunganishi kwa sasa hakijui sehemu za kumbukumbu za APPCODE na APPDATA, wala mgawanyiko wa [No-]Soma-Wakati-Andika kwenye ramani ya kumbukumbu. Kwa hivyo, kuna nafasi ndogo kwamba kiunganishi kinaweza kutenga data ya kusoma tu katika eneo lisilofaa la kumbukumbu. Uwezekano wa data iliyokosewa huongezeka ikiwa kipengele cha pwani-data-katika-pragma kimewashwa, hasa ikiwa kipengele cha pwani-data-in-config-mapped-proem pia kimewashwa. Vipengele hivi vinaweza kulemazwa ikiwa inahitajika.
Kitu file agizo la usindikaji (XCS-2863) Mpangilio wa vitu files itachakatwa na kiunganishi inaweza kutofautiana kulingana na utumiaji wa uboreshaji wa kiutaratibu (chaguo la -mpa). Hii ingeathiri tu nambari ambayo inafafanua utendaji dhaifu katika moduli nyingi.
Hitilafu ya kiunganishi na kabisa (XCS-2777) Wakati kitu kimefanywa kuwa kamili kwenye anwani mwanzoni mwa RAM na vitu ambavyo havijaanzishwa pia vimefafanuliwa, hitilafu ya kiunganishi inaweza kuanzishwa.
Vitambulisho vifupi vya kuamka (XCS-2775) Kwa vifaa vya ATA5700/2, rejista za PHID0/1 zinafafanuliwa tu kuwa na upana wa biti 16, badala ya upana wa biti 32.
Kiungo cha kuacha kufanya kazi wakati ishara ya kupiga simu (XCS-2758) Kiunganishi kinaweza kuanguka ikiwa chaguo la -merlad driver linatumiwa wakati msimbo wa chanzo unaita ishara ambayo imefafanuliwa kwa kutumia -Wl, -defsym chaguo la kiunganishi.
Uanzishaji usio sahihi (XCS-2679) Kuna tofauti kati ya ambapo thamani za awali za baadhi ya vitu vya ukubwa wa kimataifa/tuli huwekwa kwenye kumbukumbu ya data na ambapo viambajengo vitafikiwa wakati wa utekelezaji.
ilianza vibaya na kuweka tupu (XCS-2652) Katika hali ambapo mfuatano wa somo wa ubadilishaji kwa ilivyoelezwa () una kile kinachoonekana kuwa nambari ya sehemu inayoelea katika umbizo la kielelezo na kuna herufi isiyotarajiwa baada ya herufi e, basi anwani tupu, ikiwa imetolewa, itaelekeza kwa herufi baada ya e na sio e yenyewe. Kwa mfanoample: alisema ("hooey", tupu); itasababisha kuashiria tupu kwa herufi ya x.
Simu mbaya za utendakazi zisizo za moja kwa moja (XCS-2628) Katika baadhi ya matukio, simu za kukokotoa zinazopigwa kupitia kiashiria cha utendakazi kilichohifadhiwa kama sehemu ya muundo zinaweza kushindwa.
Strtof inarudisha sifuri kwa kuelea kwa hexadecimal (XCS-2626) Maktaba hufanya kazi strtof () et al na scanf () et al, itabadilisha nambari ya sehemu ya kuelea ya heksadesimali ambayo haibainishi kipeo
sufuri. Kwa mfanoample: stator("Bundi", &tupu); itarudisha thamani 0, sio 1.
Ujumbe usio sahihi wa mshauri wa rafu (XCS-2542, XCS-2541) Katika baadhi ya matukio, onyo la mshauri wa rafu kuhusu kujirudia au mrundikano usiojulikana unaotumika (huenda kupitia matumizi ya alloca()) halitozwi.
Imeshindwa na msimbo wa kukatiza nakala (XCS-2421) Ambapo zaidi ya kitendakazi kimoja cha kukatiza kina mwili sawa, kikusanyaji kinaweza kuwa na matokeo ya kitendakazi kimoja cha kukatiza kukiita kingine. Hii itasababisha rejista zote zilizofungwa simu kuhifadhiwa bila sababu, na ukatizaji utawashwa hata kabla ya epilogue ya kidhibiti cha sasa cha kukatiza, ambayo inaweza kusababisha kushindwa kwa msimbo.
Const vitu visivyo kwenye kumbukumbu ya programu (XCS-2408) Kwa miradi ya avrxmega3 na avertins vitu ambavyo havijatekelezwa huwekwa kwenye kumbukumbu ya data, ingawa onyo linapendekeza kuwa vimewekwa kwenye kumbukumbu ya programu. Hii haitaathiri vifaa ambavyo havina kumbukumbu ya programu iliyopangwa kwenye nafasi ya kumbukumbu ya data, wala haitaathiri kitu chochote ambacho kimeanzishwa.
Matokeo mabaya yenye njia batili ya DFP (XCS-2376) Ikiwa mkusanyaji amealikwa kwa njia batili ya DFP na 'spec' file ipo kwa ajili ya kifaa kilichochaguliwa, mkusanyaji haripoti kifurushi cha familia cha kifaa kilichokosekana na badala yake anachagua 'spec'. file, ambayo inaweza kusababisha matokeo batili. 'spec' fileHuenda zisisasishwe na DFP zilizosambazwa na zilikusudiwa kutumiwa na majaribio ya mkusanyaji wa ndani pekee.
Muingiliano wa kumbukumbu haujatambuliwa (XCS-1966) Mkusanyaji haoni mwingiliano wa kumbukumbu wa vitu vilivyofanywa kuwa kamili kwenye anwani (kupitia ()) na vitu vingine kwa kutumia kibainishi cha sehemu () na ambavyo vimeunganishwa kwa anwani sawa.
Kushindwa na utendakazi wa maktaba na _meme (XCS-1763) Vitendaji vya kuelea vinavyoitwa limbic na hoja katika nafasi ya anwani ya _memo vinaweza kushindwa. Kumbuka kuwa taratibu za maktaba zinaitwa kutoka kwa waendeshaji wengine wa C, kwa hivyo, kwa mfanoample, nambari ifuatayo imeathiriwa: rudisha regFloatVar > memxFloatVar;
Utekelezaji mdogo wa viungo (AVRTC-731) Kwa bidhaa za ATTiny4/5/9/10/20/40, utekelezaji wa kawaida wa maktaba ya C/Math katika limbic ni mdogo sana au haupo.
Mapungufu ya kumbukumbu ya programu (AVRTC-732) Picha za kumbukumbu ya programu zaidi ya kb 128 zinaauniwa na mnyororo wa zana; hata hivyo, kuna matukio yanayojulikana ya utoaji mimba wa kiunganishi bila kulegea na bila ujumbe wa hitilafu unaosaidia badala ya kutoa vijiti vya kukokotoa vinavyohitajika wakati chaguo la -relax linatumika.
Vikomo vya nafasi ya jina (AVRTC-733) Nafasi za anwani zilizopewa jina zinatumika na msururu wa zana, kulingana na vikwazo vilivyotajwa katika sehemu ya mwongozo wa mtumiaji Vihitimu vya Aina Maalum.
Kanda za saa The utendakazi wa maktaba huchukulia GMT na hazitumii saa za eneo, kwa hivyo saa za ndani () zitarudi kwa wakati uleule kama gummite (), kwa ex.ample.

MSAADA WA MTEJA

file:///Maombi/microehip/xc8/v 2 .40/docs/Read me_X C 8_ kwa Uhalisia Pepe. htm

Nyaraka / Rasilimali

Programu ya Kukusanya MICROCHIP MPLAB XC8 C [pdf] Mwongozo wa Mmiliki
MPLAB XC8 C, MPLAB XC8 C Programu ya Kukusanya, Programu ya Kukusanya, Programu

Marejeleo

Acha maoni

Barua pepe yako haitachapishwa. Sehemu zinazohitajika zimetiwa alama *