Vidokezo vya Utoaji vya MPLAB® XC8 C Toleo la 2.41 la AVR® MCU
Mwongozo wa Mmiliki
Programu ya Maendeleo ya Mkusanyaji wa 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.
Zaidiview
1.1. Utangulizi
Toleo hili la mkusanyaji wa Microchip MPLAB® XC8 C lina vipengele vipya na marekebisho ya hitilafu.
1.2. Tarehe ya Kujenga
Tarehe rasmi ya ujenzi wa toleo hili la mkusanyaji ni tarehe 8 Februari 2023.
1.3. Toleo Lililotangulia
Toleo la awali la mkusanyaji wa MPLAB XC8 C lilikuwa 2.40 lililojengwa tarehe 3 Julai 2022.
1.4. 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.
1.5. Leseni za Sehemu na Matoleo
Kikusanyaji cha MPLAB XC8 C cha zana za AVR MCUs huandikwa na kusambazwa chini ya Leseni ya Jumla ya GNU ya Umma (GPL) ambayo ina maana kwamba msimbo wake wa chanzo unasambazwa bila malipo na kupatikana kwa umma.
Msimbo wa chanzo wa zana chini ya GNU GPL unaweza kupakuliwa kando na Microchip webtovuti. Unaweza kusoma GNU GPL katika faili iliyotajwa inayopatikana saraka ndogo ya saraka yako ya kusakinisha license.txt avr/doc. Mjadala wa jumla wa kanuni za msingi za GPL unaweza kupatikana hapa.
Msimbo wa usaidizi uliotolewa kwa faili za vichwa, hati za kiunganishi, na maktaba zinazotumika 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.
1.6. 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 macOS zimetiwa saini na kuthibitishwa. Seva ya Leseni ya Mtandao ya MPLAB XC inapatikana kwa aina mbalimbali za mifumo ya uendeshaji ya 64-bit, ikiwa ni pamoja na Microsoft Windows 10 na zaidi; Ubuntu 18.04 na hapo juu; au macOS 10.15 na hapo juu. Seva inaweza pia kutumia mifumo mingine mbalimbali ya uendeshaji ikiwa ni pamoja na Windows Server, usambazaji wa Linux, kama vile Oracle® Enterprise Linux® na Red Hate Enterprise Linux pamoja na matoleo ya zamani ya mifumo ya uendeshaji inayotumika. Hata hivyo, Seva ya Leseni ya Mtandao ya MPLAB XC haijaribiwa kwenye mifumo hii ya uendeshaji. Seva ya Leseni ya Mtandao ya MPLAB XC inaweza kuendeshwa kwenye Mashine Pembeni za Mfumo wa Uendeshaji unaotumika kwa kutumia leseni ya mashine pepe ya leseni za mtandao (SW006021-VM). Matoleo yote ya 32-bit ya Seva ya Mtandao ya MPLAB XC yamekomeshwa kuanzia toleo la 3.00.
Vifaa vilivyoungwa mkono
Kikusanyaji hiki kinaauni vifaa vyote vinavyopatikana vya 8-bit AVR MCU wakati wa kutolewa. Tazama (kwenye saraka ya mkusanyaji) kwa orodha ya vifaa vyote vinavyotumika. Faili hizi pia zimeorodheshwa
avr_chipinfo.html mipangilio ya biti ya usanidi wa hati kwa kila kifaa.
1.7. 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.
1.8. Ufungaji na Uanzishaji
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 (Windows), (Linux) au (macOS) .exe .run .programu ya kusanikisha kisakinishi, kwa mfano na ufuate maelekezo kwenye skrini. XC8-1.00.11403-windows.exe 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 utumiaji wa leseni za mtandao zinazoelea. Inalenga watumiaji wa simu, kipengele hiki kinaruhusu 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.
1.8.1. Kutatua Masuala ya Ufungaji
Ikiwa utapata 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 faili kulia, chagua Sifa, kichupo cha Usalama, chagua mtumiaji, hariri.)
Weka ruhusa za folda ya muda kuwa 'Udhibiti Kamili'.
Kuamua eneo la folda ya temp, chapa% temp% kwenye amri ya Run (ufunguo wa nembo ya Windows + R).
Hii itafungua kidirisha cha kichunguzi cha faili kinachoonyesha saraka hiyo na itakuruhusu kuamua njia ya folda hiyo.
1.9. 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.
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.

1.10. Msaada 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:
- Mwongozo wa Watumiaji wa Mkusanyaji wa MPLAB® XC8 C kwa AVR® MCU (marekebisho G)
- Mwongozo wa Uhamiaji wa AVR® GNU hadi MPLAB® XC8 (marekebisho A)
- Mwongozo wa Mtumiaji wa Hexmate (marekebisho B)
Mwongozo wa Uhamiaji wa AVR® GNU hadi MPLAB® XC8 unafafanua mabadiliko ya msimbo wa chanzo na chaguo za kuunda ambazo zinaweza kuhitajika iwapo utaamua kuhamisha mradi unaotegemea C kutoka kwa AVR 8-bit GNU Toolchain hadi Kikusanyaji cha Microchip MPLAB XC8 C. 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 yalikuwemo awali katika 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) una maelezo kuhusu kusanidi miradi katika MPLAB X IDE na kuandika msimbo kwa ajili yako. mradi wa kwanza wa MPLAB XC8 C. Mwongozo huu sasa unasambazwa na mkusanyaji.
Mwongozo wa Mtumiaji wa Hexmate unakusudiwa wale wanaoendesha Hexmate 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.
3.1. Toleo la 2.41
Usaidizi wa Bootrow (XC8-3053) Mkusanyaji ataweka maudhui ya sehemu zozote na kiambishi awali katika anwani ya.bootrow 0x860000 katika faili ya HEX. Sehemu hizi hutumiwa kwa kumbukumbu ya BOOTROW, ambayo imeundwa kwa ajili ya uhifadhi wa funguo na taarifa nyingine salama ambazo zinapaswa kupatikana tu kwa bootloader.
Uondoaji wa urejeshaji usiohitajika (XC8-3048) Kikusanyaji sasa kitaondoa maagizo yasiyo ya lazima katika utendakazi wa kurudisha nyuma kwa kuruka mkia wakati hati za kiunganishi maalum zinatumika. Huu ni uboreshaji sawa na ule uliotekelezwa hapo awali, lakini sasa unafanywa kwa sehemu zote za watoto yatima, hata kama hati ya kiunganishi maalum inatumiwa na mpango bora zaidi wa ugawaji wa fitna hautumiki. Mabadiliko ya aina ya wakati (XC8-2982, 2932) Aina ya maktaba ya kawaida ya C99, imebadilishwa kutoka time_t hadi aina, ambayo inatoa uboreshaji wa ukubwa wa msimbo katika baadhi ya vipengele virefu vinavyohusiana na muda, kama vile. haijasainiwa kwa muda mrefu mktime()
Nop mpya (XC8-2946, 2945) Jumla imeongezwa kwa. Jumla hii inaingiza no- NOP() maagizo ya operesheni ya nop kwenye pato.
Sasisho la XCLM (XC8-2944) Kidhibiti cha leseni kinachotumiwa na kikusanyaji kimesasishwa na sasa kinaitikia zaidi anapokagua maelezo ya leseni ya mkusanyaji.
Trampsimu zilizopigwa (XC8-2760) Mkusanyaji sasa anaweza kubadilisha maagizo ya simu ya fomu ndefu na simu fupi za jamaa wakati aina za maagizo kwa kawaida zitakuwa nje ya anuwai ya marudio yao. Katika hali hii, mkusanyaji atajaribu kubadilisha na maagizo ya kuita rcall maagizo ambayo 'trampoline' kwa anwani inayohitajika, kwa mfanoamphuu :jmp
rcall tramp_foo ;aliitwa foo
…
rcall tramp_foo
…
tramp_foo:
jmp foo
Uboreshaji huu, pamoja na uboreshaji sawa wa mtiririko wa programu, unadhibitiwa na chaguo la -mrelax.
3.2. Toleo la 2.40
Usaidizi mpya wa usaidizi wa kifaa sasa unapatikana kwa sehemu zifuatazo za AVR: AT90PWM3, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR64EA28, AVR64EA32, AVR64, AVR48, AVRXNUMX na AVRXNUMXEAXNUMX.
Uondoaji wa kiutaratibu ulioboreshwa Zana ya uboreshaji ya uondoaji wa kiutaratibu (PA) imeboreshwa ili msimbo ulio na maagizo ya simu ya kukokotoa (/ ) uweze kutajwa. Hii itafanyika tu piga simu rcall ikiwa mrundikano hautumiwi kupitisha hoja au 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, au uondoaji wa kiutaratibu unaweza kuzimwa kabisa kwa faili ya kitu au utendakazi kwa kutumia - na, mtawalia, au kwa kutumia sifa (maalum) kwa kuchagua na vitendaji.
mno-pa-outline-calls -mno-pa-on-file -mno-pa-on-function nopa Ufunikaji wa msimbo jumla Mkusanyaji sasa anafafanua jumla ikiwa chaguo halali __nopa __CODECOV -mcodecov imebainishwa.
Chaguo la kuhifadhi kumbukumbu Dereva sasa atakubali xc8-cc -mreserve=space@start:end chaguo wakati wa kujenga kwa shabaha za AVR. Chaguo hili huhifadhi safu ya kumbukumbu iliyobainishwa katika nafasi ya kumbukumbu ya data au programu, na kuzuia kiunganishi kisijaze msimbo au vitu katika eneo hili. IO smart zaidi Maboresho kadhaa yamefanywa kwa vitendaji vya Smart IO, ikijumuisha marekebisho ya jumla kwenye msimbo wa msingi wa printf, kuchukulia kibainishi cha ubadilishaji cha %n kama kibadala kinachojitegemea, kinachounganisha katika mifumo ya vararg pop inapohitajika, kwa kutumia aina fupi za data inapowezekana kushughulikia. Hoja za utendakazi za IO, na kuweka msimbo wa kawaida katika upana wa uwanja na ushughulikiaji wa usahihi. Hii inaweza kusababisha uokoaji wa nambari na data, na pia kuongeza kasi ya utekelezaji wa IO.
3.3. Toleo la 2.39 (Toleo la Usalama Utendaji)
Leseni ya Seva ya Mtandao Toleo hili la Kikusanyaji cha Usalama Kitendaji cha MPLAB XC8 kinaauni Leseni ya Seva ya Mtandao.
3.4. Toleo la 2.36
Hakuna.
3.5. Toleo la 2.35
Usaidizi wa kifaa kipya 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 wa muktadha ulioboreshwa zaidi Chaguo jipya la -mgas-isr-prologues hudhibiti msimbo wa kubadili muktadha 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.
Uwekaji ramani wa mweko unaoweza 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-progmem inaweza kutumika kufanya kiunganishi kuweka data zote zilizohitimu katika sehemu moja ya 32k na kuanzisha kiotomatiki rejista husika ya SFR ili kuhakikisha kuwa data hii imechorwa kwenye kumbukumbu ya data. nafasi, ambapo itafikiwa kwa ufanisi zaidi.
Microchip Unified Standard Maktaba Wakusanyaji wote wa MPLAB XC watashiriki Maktaba ya Kawaida ya Microchip Unified, ambayo sasa inapatikana kwa toleo hili la MPLAB XC8. Mwongozo wa Mtumiaji wa Mkusanyaji wa MPLA# XC8 C kwa AVO MCU haujumuishi 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 utendaji wa Lila.)
Smart I0 Kama sehemu ya maktaba mpya zilizounganishwa, chaguo za kukokotoa za I0 katika familia za printf na scanf sasa zimetolewa maalum kwa kila muundo, kulingana na jinsi vipengele hivi vinatumika katika programu. Hii inaweza kupunguza kwa kiasi kikubwa rasilimali zinazotumiwa na programu.
Chaguo la usaidizi la Smart ICI Wakati wa kuchanganua simu kwa vitendaji mahiri vya I0 (kama vile kuchapisha f () au scanf ()), kikusanyaji hakiwezi kubaini kila wakati kutoka kwa mfuatano wa umbizo au kukisia kutoka kwa hoja vibainishi hivyo vya ubadilishaji vinavyohitajika na simu. Hapo awali, mkusanyaji hangeweza kudhani kila wakati na kuhakikisha kuwa vipengele 10 vinavyofanya kazi kikamilifu viliunganishwa kwenye picha ya mwisho ya programu. Chaguo jipya - msmart-io-format=fmt limeongezwa ili mkusanyaji aweze kufahamishwa na mtumiaji wa viambishi vya ubadilishaji vinavyotumiwa na vitendaji mahiri vya I0 ambavyo utumiaji wake haueleweki, hivyo basi kuzuia taratibu 10 za muda mrefu kuunganishwa. (Angalia Chaguo la umbizo la smart-io kwa maelezo zaidi.)
Kuweka sehemu maalum Hapo awali, chaguo la -W1, -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 -ton, -Tsection=addr chaguo, kama ilivyoelezwa kwenye mwongozo wa mtumiaji.
3.6. Toleo la 2.32
Mwongozo wa Rafu Unapatikana kwa 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 usaidizi wa kifaa kipya unapatikana kwa sehemu zifuatazo za AVR: ATTINY427, ATTINY424, ATTINY426, ATTINY827, ATTINY824, ATTINY826, AVR32DB32, AVR64DB48, AVR64DB64, AVR64DB28, AVR32DB28, AVR64DB32, AVR32DB48, AVR16DB28, AVR16DB32, AVR16DB48, ATTINYXNUMX Usaidizi wa kifaa kilichobatilishwa haupatikani tena kwa sehemu zifuatazo za AVR: AVRXNUMXDAXNUMX, AVRXNUMXDAXNUMX na, AVRXNUMXDAXNUMX.
3.7. Toleo la 2.31
Hakuna.
3.8. Toleo la 2.30
Chaguo jipya la kuzuia uanzishaji wa data Chaguo jipya la kiendeshi -mno-data-init huzuia uanzishaji wa data na ufutaji wa sehemu za bss. Inafanya kazi kwa kukandamiza matokeo ya do copy data na kufanya alama za bss wazi 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. Chaguzi za ziada sasa zinapatikana ili kudhibiti baadhi ya uboreshaji huu, haswa -f sehemu-nanga, ambayo inaruhusu ufikiaji wa vitu tuli kutekelezwa kulingana na ishara moja; -mpa-iterations=n, ambayo inaruhusu idadi ya marudio ya uondoaji wa kiutaratibu kubadilishwa kutoka chaguo-msingi ya 2; na, -mpa-callcost-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 mpya wa usaidizi wa kifaa unapatikana kwa sehemu zifuatazo za AVR: AVR16DA28, AVR16DA32, AVR16DA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR128DA28, AVR128DB, AVR32DB, AVR128DB, AVR48DB128DB, AVR64DB5272DB, AVR5790DA5790 AVR5791DA5795, AVR6285DA6286DB Usaidizi wa Usaidizi wa kifaa kilichorejeshwa haupatikani tena kwa sehemu zifuatazo za AVR: ATA6612, ATA6613, ATA6614N, ATA6616, ATA6617, ATA664251, ATAXNUMX, ATAXNUMXC, ATAXNUMXC, ATAXNUMXQ, ATAXNUMXATAXNUMXATAXNUMXATAXNUMXATAXNUMXATAXNUMXATAXNUMXATAXNUMXATAXNUMXATA.
3.9. 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 buildin_avr_nop ( ) na buildin avr delay_cycles () . Baadhi ya majengo yanaweza yasikubaliane na MISRA; hizi zinaweza kuachwa kwa kuongeza defineXCSTRICT_MISRA kwenye safu ya amri ya mkusanyaji. Mipangilio na matamko yake yamesasishwa ili kutumia aina za upana usiobadilika.
3.10. Toleo la 2.20
Usaidizi wa kifaa kipya unapatikana kwa sehemu zifuatazo za AVR: ATTINY1624, ATTINY1626, na ATTINY1627.
Ugawaji bora zaidi wa kufaa Kigawanyaji bora zaidi (BFA) katika kikusanyaji kimeboreshwa ili sehemu zigawiwe kwa utaratibu 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 misimbo. 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 Kikusanyaji cha AVR Kikusanyaji cha AVR hakijajumuishwa tena kwenye usambazaji huu.
3.11. Toleo la 2.19 (Toleo la Usalama Utendaji)
Hakuna.
3.12. Toleo la 2.10
Ufikiaji wa Msimbo Toleo hili linajumuisha kipengele cha ufunikaji wa msimbo ambacho huwezesha 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 nocodecov inaweza kutumika kutenga vitendakazi vifuatavyo kwenye uchanganuzi wa chanjo. Kwa kweli pragma inapaswa kuongezwa mwanzoni mwa file kuwatenga yote hayo file kutoka kwa uchambuzi wa chanjo. Vinginevyo, _attribute_ ( (nocodecov) ) inaweza kutumika kutenga chaguo za kukokotoa mahususi kutoka kwa uchanganuzi wa chanjo.
Maelezo ya kifaa files Kifaa kipya file inaitwa 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 usanidi/maumivu yote ya thamani ya 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 hutekelezwa na programu tofauti, ambayo inaombwa kiotomatiki na mkusanyaji wakati wa kuchagua uboreshaji wa kiwango cha 2, 3 au s. 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-on-function=function. Ndani ya msimbo wako wa chanzo, uondoaji wa kiutaratibu unaweza kuzimwa kwa chaguo la kukokotoa kwa kutumia sifa ( ( (nopa) ) iliyo na ufafanuzi wa kitendakazi, au kwa kutumia nopa, ambayo hupanuka hadi sifa ( (nopa, noinline) ) na hivyo kuzuia utendaji kazi usifanyike. na kuna uondoaji wa msimbo uliowekwa ndani.
Funga uwezo wa biti katika pragma Mipangilio ya #pragma sasa inaweza kutumika kubainisha sehemu za kufuli za AVR pamoja na biti zingine za usanidi. Angalia avr_chipinfo . html file (iliyotajwa hapo juu) kwa mpangilio/jozi za thamani za kutumia na pragma hii. Usaidizi wa kifaa kipya unapatikana kwa sehemu zifuatazo: AVR28DAl28, AVR64DAl28, AVR32DA 128, na AVR48DA 128.
3.13. Toleo la 2.05
Biti zaidi za pesa yako Toleo la macOS la mkusanyaji na msimamizi wa leseni sasa ni programu-tumizi ya biti 64. 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 cons t-qualified data global kuhifadhiwa katika kumbukumbu ya programu flash na data hii inaweza kufikiwa moja kwa moja na kwa njia isiyo ya 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.
Matoleo ya kawaida bila malipo 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 unapatikana kwa sehemu zifuatazo: ATMEGA1608, ATMEGA1609, ATMEGA808, na ATMEGA809.
3.14. Toleo la 2.00
Kiendeshaji cha 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 Kawaida cha MPLAB, kikiruhusu msimbo wa chanzo kusambazwa kwa urahisi 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.
4.1. Toleo la 2.41
Vitendaji vya fma visivyo sahihi vimeondolewa (XC8-2913) Maktaba ya kawaida ya C99 fma 0 -kazi za familia ( ) haikujumuisha ongeza-zidishi kwa usahihi usio na kikomo kwa mduara mmoja, lakini badala yake ilikusanya makosa ya kuzunguka kwa kila operesheni. Vipengele hivi vimeondolewa kwenye maktaba iliyotolewa.
4.2. Toleo la 2.40
Hakuna.
4.3. Toleo la 2.39 (Toleo la Usalama Utendaji)
Hakuna.
4.4. Toleo la 2.36 Hakuna.
4.5. Toleo la 2.35
Ushughulikiaji wa kamba-kwa besi (XC8-2420) Ili kuhakikisha uwiano na wakusanyaji wengine wa XC, utendakazi wa mfuatano wa XC8, kama vile strtol () n.k., hautajaribu tena kubadilisha mfuatano wa ingizo ikiwa besi iliyobainishwa ni kubwa kuliko 36. na badala yake itaweka 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 1printf flt (-1printf_flt chaguo) ili kuwasha umbizo I0 msaada kwa viambishi vya umbizo la kuelea. Wenye akili I0 vipengele vya Maktaba ya Kawaida ya Microchip Unified hufanya chaguo hili kuwa la ziada. Zaidi ya hayo, utumiaji wa _P wa utaratibu wa kiambishi kwa mfuatano na vitendaji vya kumbukumbu (km strcpy_P ( ) n.k..) zinazofanya kazi kwenye tungo za const katika mweko hazihitajiki tena. Taratibu za kawaida za C (km strcpy ) zitafanya kazi ipasavyo na data kama hiyo wakati kipengele cha const-data-in-program-memory kimewashwa.
4.6. Toleo la 2.32
Hakuna.
4.7. Toleo la 2.31
Hakuna.
4.8. Toleo la 2.30
Hakuna.
4.1. Toleo la 2.29 (Toleo la Usalama Utendaji)
Hakuna.
4.2. 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.
4.3. Toleo la 2.19 (Toleo la Usalama Utendaji)
Hakuna.
4.4. Toleo la 2.10
Hakuna
4.5. Toleo la 2.05
Const vitu katika kumbukumbu ya programu Kumbuka kwamba kwa chaguo-msingi, vitu vilivyohitimu vitawekwa na kufikiwa kwenye kumbukumbu ya programu (kama ilivyoelezwa hue). Hii itaathiri ukubwa na kasi ya utekelezaji wa mradi wako, lakini inapaswa kupunguza matumizi ya RAM. Kipengele hiki kinaweza kuzimwa, ikihitajika, kwa kutumia -mnoconst-data-in-progmem chaguo.
4.6. 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.
#usanidi wa pragma WDTON = SET
#pragma config BODLEVEL = BODLEVEL_4V3
Vitu na kazi kamili Vitu na utendakazi sasa vinaweza kuwekwa kwenye anwani maalum kwenye kumbukumbu kwa kutumia kibainishi cha CCI (anwani), kwa mfano.ample:
#pamoja na
int foobar_at(0x800100);
char __at(0x250) getID(int offset) { … }
Hoja kwa kibainishi hiki lazima iwe mara kwa mara ambayo inawakilisha anwani ambayo byte ya kwanza au maagizo 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 CCI _interrupt (num) ili kuonyesha kuwa kazi za C ni vidhibiti vya kukatiza. Kiainishi huchukua nambari ya kukatiza, kwa mfanoample:
#pamoja na
batili __interrupt(SPI_STC_vect_num) spi_Isr(batili) { … }
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 kwa masuala yanayofuata. Lebo zilizo kwenye mabano katika kichwa ni vitambulisho vya 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.
5.1. Toleo la 2.41
Masuala ya Dongle kwenye Ventura (XC8-3088) Dongles inayotumika kutoa leseni ya mkusanyaji inaweza kuwa haijasomwa ipasavyo kwenye wapangishi wa macOS Ventura, na kusababisha kushindwa kwa leseni. Mabadiliko kwa msimamizi wa leseni ya XCLM hurekebisha suala hili.
Dalili isiyo sahihi ya mgao wa kumbukumbu (XC8-2925) Jaribio la kutenga baiti SIZE_MAX (au thamani iliyo karibu na hii) ya kumbukumbu kwa kutumia vitendakazi vya kawaida vya usimamizi wa kumbukumbu ya maktaba (malloc () et al) haikufaulu. Haikuzingatia kwamba byte za ziada zilihitajika kwa kuongeza kizuizi kilichoombwa wakati wa kutumia utekelezaji rahisi wa ugawaji wa kumbukumbu. Kielekezi NULL sasa kitarejeshwa na errno itawekwa kuwa ENOMEM katika hali kama hizi.
Vitendaji vya fma visivyo sahihi vimeondolewa (XC8-2913) Maktaba ya kawaida ya C99 fma ( ) -kazi za familia ( ) haikujumuisha ongeza-zidishi kwa usahihi usio na kikomo kwa mduara mmoja, lakini badala yake ilikusanya makosa ya kuzunguka kwa kila operesheni. Vipengele hivi vimeondolewa kwenye maktaba iliyotolewa.
Ushughulikiaji mbaya wa ubadilishaji wa kamba (XC8-2921, XC8-2652) Wakati 'mlolongo wa somo' wa ubadilishaji na strtod Cr ulikuwa na kile kilichoonekana kuwa nambari ya sehemu inayoelea katika umbizo la kielelezo na kulikuwa na herufi isiyotarajiwa baada ya herufi ya e/E, basi ambapo endptr ilikuwa imetolewa, ilipewa anwani ambayo ingeelekeza kwa mhusika baada ya e/E, ilhali ilipaswa kuwa inaelekeza kwa herufi ya e/E yenyewe, kwani hiyo haikuwa imegeuzwa. Kwa mfanoample, strtod (“100exx”, &ep) inapaswa kurudisha 100.00 na kuweka ep ili kuelekeza sehemu ya “exx” ya mfuatano, ilhali kipengele cha kukokotoa kilikuwa kinarudisha thamani sahihi lakini kuweka ep kuelekeza sehemu ya “xx” ya mfuatano. .
5.2. 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 (XC8-2875) Kipengele cha const-data-in-config-mappedprogmem kinategemea kipengele cha const-data-in-progmem kuwashwa. Ikiwa kipengele cha const-data-inconfig-mapped-progmem kiliwezeshwa kwa uwazi kwa kutumia chaguo na kipengele cha const-data-inprogmem kilizimwa, hatua ya kuunganisha ilishindwa, licha ya ujumbe wa onyo unaosema kuwa const-data-in-con fig- kipengele cha mapped-progmem kilikuwa kimezimwa kiotomatiki, jambo ambalo halikuwa sahihi kabisa. Kipengele cha const-data-in-config-mapped-progmem sasa kimezimwa kikamilifu katika hali hii.
Mabadiliko ya DFP kufikia NVMCTRL (XC8-2848) kwa usahihi Msimbo wa kuanza wakati wa utekelezaji unaotumiwa na vifaa vya AVR64EA haukuzingatia kuwa rejista ya NVMCTRL ilikuwa chini ya Ulinzi wa Mabadiliko ya Usanidi (CCP) na haikuweza kuweka I0 SFR kwenye ukurasa unaotumiwa na programu-jalizi ya const-data-in-configmapped. kipengele cha mkusanyaji. 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 kuepuka flash ramani (XC8-2847) Kazi ya kuzunguka kwa tatizo na kipengele cha kifaa cha ramani-mwenye kilichoripotiwa katika AVR128DA28/32/48/64 Silicon Errata (D580000882) imetekelezwa. Kipengele cha mkusanyaji cha const-data-in-config-mapped-progmem hakitatumika kwa chaguomsingi kwa vifaa vilivyoathiriwa, na mabadiliko haya yataonekana katika toleo la 2.2.160 la AVR-Dx_DFP.
Jenga hitilafu na sinhf au coshf (XC8-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 (XC,8-2833) Kutumia sifa ya nopa iliyo na chaguo la kukokotoa ambalo jina lake la kiukusanyaji limebainishwa kwa kutumia asm ( ) kulisababisha ujumbe wa makosa kutoka kwa kiunganishi. Mchanganyiko huu hauwezekani.
Kushindwa kwa utendaji wa anuwai na hoja za vielelezo (XC8-2755, XC8-2731) Kazi zilizo na idadi tofauti ya hoja zinatarajia viashiria 24-bit ( aina ya memx) kupitishwa katika orodha ya hoja zinazobadilika wakati kipengele cha const-data-in-progmem 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 constdata-in-progmem kimewashwa, hoja zote za viashiria 16 sasa hubadilishwa kuwa viashiria 24-bit.
Kazi za maktaba za strtoxxx hazifanyi kazi (XC8-2620) Wakati kipengele cha const-data-in-progmem kiliwashwa, kigezo cha endptr katika vitendaji vya maktaba ya strtoxxx hakikusasishwa ipasavyo kwa hoja za mfuatano wa chanzo zisizo kwenye kumbukumbu ya programu.
Tahadhari kwa waigizaji batili (XC8-2612) Mkusanyaji sasa atatoa hitilafu ikiwa kipengele cha const-in-progmem kimewashwa na anwani ya mfuatano halisi inatupwa kwa uwazi kwenye nafasi ya anwani ya data (kuacha kifuzu cha const), kwa ex.ample, (uint 8_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 (XC8-2408) Vipengee ambavyo havijaanzishwa vya const na const tete havikuwa vikiwekwa kwenye kumbukumbu ya programu kwenye vifaa vinavyoweka ramani yote au sehemu ya kumbukumbu ya programu kwenye nafasi ya anwani ya data. Kwa vifaa hivi, vitu hivyo sasa vimewekwa kwenye kumbukumbu ya programu, na kufanya operesheni yao iwe sawa na vifaa vingine.
5.3. Toleo la 2.39 (Toleo la Usalama Utendaji)
Hakuna.
5.4. Toleo la 2.36
Hitilafu wakati wa kuchelewesha (XC8-2774) Mabadiliko madogo katika uboreshaji wa hali ya chaguomsingi Bila malipo yalizuia kukunjana mara kwa mara kwa misemo ya uendeshaji hadi kucheleweshwa kwa vitendaji vilivyojumuishwa, na kusababisha zichukuliwe kama zisizo mara kwa mara na kusababisha hitilafu: buildin avr delay_cycles inatarajia mkusanyiko kamili wa muda usiobadilika.
5.5. Toleo la 2.35
Mgao wa pamoja kwa kutumia _at (XC8-2653) Ugawaji sawia wa mahali pa vitu vingi katika sehemu yenye jina sawa na kutumia _at ( ) haikufanya kazi ipasavyo. Kwa mfanoample:
const char arr1[] __attribute__((sehemu(“.mysec”)))) __at (0x500) = {0xAB, 0xCD};
const char arr2[] __attribute__((sehemu(“.mysec”))) = {0xEF, 0xFE};
ilipaswa kuweka arr2 mara baada ya arr1.
Inabainisha anwani za kuanza kwa sehemu (XC8-2650) The Chaguo la -W1, -section-start lilishindwa kuweka sehemu kimya kimya 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 -W1, -T chaguo.
Kiungo huacha kufanya kazi wakati wa kupumzika (XC8-2647) Wakati uboreshaji -mrelax ulipowashwa na kulikuwa na sehemu za msimbo au data ambazo hazikutoshea kwenye kumbukumbu inayopatikana, kiunganishi kilianguka. Sasa, katika hali kama hiyo, ujumbe wa makosa hutolewa badala yake.
Hakuna kurudi nyuma (XC8-2646) The Chaguo la -nofallback halikutekelezwa kwa usahihi, wala kurekodiwa. Hii sasa inaweza kuchaguliwa ili kuhakikisha kuwa mkusanyaji hatarudi kwenye mpangilio wa chini wa uboreshaji ikiwa mkusanyaji hana leseni, na badala yake atatoa hitilafu.
Uboreshaji wa kasi usiofaa (X03-2637) 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.
EEPROM mbaya ufikiaji (XC8-2629) The Utaratibu wa eeprom_read_block haukufanya kazi ipasavyo kwenye vifaa vya Xmega wakati -mconst-data-in-progmem chaguo lilipowezeshwa (ambayo ndiyo hali chaguo-msingi), na kusababisha kumbukumbu ya EEPROM kutosomwa ipasavyo.
Mgao batili wa kumbukumbu (XC8-2593, XC8-2651) Wakati Chaguo la kiunganishi cha Ttext au -Tdata (kwa mfanoample kupita kwa kutumia -vl 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.
Kuacha kufanya kazi kwa kipengele cha kukokotoa zaidi (XC8-2580) Kikusanyaji kilianguka ikiwa kipengele cha kukokotoa kilitangazwa kwa kutumia zaidi ya moja ya sifa za kukatiza, ishara au nmi, kwa mfano, sifa ( ( signal , interrupt ) ).
Msimbo batili wa kukatiza wa ATtiny (XC8-2465) Wakati wa kujenga vifaa vya ATtiny na uboreshaji kuzimwa (-00), utendakazi wa kukatiza huenda ulianzisha utendakazi nje ya masafa ya ujumbe wa kiunganishi.
Chaguzi ambazo hazijapitishwa (XC8-2452) Wakati wa kutumia chaguo na chaguo nyingi, zilizotenganishwa kwa koma, sio chaguo zote za kiunganishi zilikuwa zikipitishwa kwa kiunganishi.
Hitilafu katika kusoma kumbukumbu ya programu (X03-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.
5.6. Toleo la 2.32
Ufikiaji wa pili wa maktaba inashindwa (XC8-2381) Inakaribisha toleo la Windows la xc8-ar. .exe kiweka kumbukumbu cha maktaba kwa mara ya pili ili kufikia kumbukumbu iliyopo ya maktaba huenda imeshindwa kwa kushindwa kubadilisha jina la ujumbe wa hitilafu.
5.7. Toleo la 2.31
Kikusanyaji kisichoelezeka kushindwa (XC8-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.
5.8. Toleo la 2.30
Lebo za kimataifa zilikosewa baada ya kuelezea (XC8-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 (XC8-2287) Kutumia -mrelax chaguo kunaweza kusababisha kiunganishi kuanguka wakati uboreshaji wa utulivu wa kuruka mkia ulipojaribu kuondoa maagizo ya ret ambayo hayakuwa mwishoni mwa sehemu.
Kuacha kufanya kazi wakati wa kuboresha lebo kama thamani (XC8-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 hivyo const (XC8-2271) Prototypes za st rstr ( ) na vitendaji vingine kutoka usibainishe tena kichujio kisicho cha kawaida cha const kwenye viashiria vya kamba vilivyorejeshwa wakati kipengele cha -mconst-data-inprogmem kimezimwa. Kumbuka kuwa ukiwa na avrxmega3 na vifaa vya avrtiny, kipengele hiki kimewashwa kabisa.
Vianzilishi vilivyopotea (XC8-2269) Wakati zaidi ya kigezo kimoja katika kitengo cha tafsiri kiliwekwa katika sehemu (kwa kutumia _section au _attribute_ ( (section) )), na kigezo cha kwanza kama hicho kilianzishwa sifuri au hakikuwa na kianzilishi, vianzishi vya viambishi vingine katika kitengo kile kile cha tafsiri ambacho kiliwekwa. katika sehemu hiyo hiyo walipotea.
5.1. Toleo la 2.29 (Toleo la Usalama Utendaji)
Hakuna.
5.2. Toleo la 2.20
Hitilafu na amri ndefu (XC8-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 (XC8-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.
5.3. Toleo la 2.19 (Toleo la Usalama Linalofanya Kazi)
Hakuna.
5.4. Toleo la 2.10
Kushindwa kwa uhamishaji (XC8-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 kwa kustarehesha (XC8-1889) Urejeshaji wa kiunganishi haukutokea kwa maagizo ya kuruka au kupiga simu ambayo malengo yake yanaweza kufikiwa yakilegezwa.
Haipo utendakazi (XC8E-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 Macro za awali _XC8_MODE_, _XC8_VERS ION, _XC, na _XC8 hazikufafanuliwa kiotomatiki na mkusanyaji. Hizi sasa zinapatikana.
5.5. Toleo la 2.05
Hitilafu ya mkusanyaji wa ndani (XC8-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 (XC8-1800, XC8-1796) Programu ambazo zilizidi RAM inayopatikana hazikutambuliwa na mkusanyaji katika hali fulani, na kusababisha kushindwa kwa msimbo wa wakati wa kutekeleza.
Kumbukumbu ya flash iliyoachwa (XC8-1792) Kwa vifaa vya avrxmega3 na avrtiny, sehemu za kumbukumbu ya flash zinaweza kuwa zimeachwa bila kupangwa na MPLAB X. IDE.
Kushindwa kutekeleza kuu (XC8-1788) Katika baadhi ya hali ambapo programu haikuwa na vigezo vya kimataifa vilivyofafanuliwa, msimbo wa uanzishaji wa wakati wa utekelezaji haukutoka na kazi kuu ( ) haikufikiwa kamwe.
Taarifa zisizo sahihi za kumbukumbu (XC8-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 (XC8-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 (XC8-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 (0x800150) cp; Onyo sasa limetolewa ikiwa nambari kama hiyo itapatikana.
Imeshindwa kutekeleza kuu (XC8-1780, XC8-1767, XC8-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 (XC8-1778, XC8-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.
Mgawanyiko kosa (XC8-1777) Hitilafu ya sehemu ya vipindi imerekebishwa.
Ajali ya Assembler (XC8-1761) Kikusanyaji cha avr-as kinaweza kuwa kilianguka wakati mkusanyaji uliendeshwa chini ya Ubuntu 18.
Vitu havijafutwa (XC8-1752) Vipengee vya muda wa hifadhi tuli ambavyo havijaanzishwa huenda havijafutwa na msimbo wa kuanzisha wakati wa utekelezaji.
Vipimo vya kifaa vinavyokinzana vimepuuzwa (XC8-1749) Mkusanyaji hakuwa akizalisha hitilafu wakati chaguo nyingi za ubainishaji wa kifaa zilitumiwa na kuashiria vifaa tofauti.
Uharibifu wa kumbukumbu kwa lundo (XC8-1748) The _heap_start ishara ilikuwa ikiwekwa kimakosa, na kusababisha uwezekano wa viambajengo vya kawaida kuharibiwa na lundo.
Hitilafu ya kuhamisha kiungo (XC8-1739) Hitilafu ya kuhamisha kiunganishi inaweza kuwa imetolewa wakati msimbo ulikuwa na rjmp au rcall yenye lengo la umbali wa baiti 4k haswa.
5.6. Toleo la 2.00
Hakuna.
Masuala Yanayojulikana
Yafuatayo ni mapungufu katika utendakazi wa mkusanyaji. Hizi zinaweza kuwa vikwazo vya jumla vya usimbaji, au mikengeuko kutoka kwa maelezo yaliyomo 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 vizuizi vinavyoelezea modi operandi na ambavyo vina uwezekano wa kubaki na athari kabisa.
6.1. Kitambulisho cha MPLAB X Kuunganisha
Kitambulisho cha MPLAB ujumuishaji Ikiwa Kikusanyaji kitatumika kutoka kwa IDE ya MPLAB, basi lazima usakinishe IDE ya MPLAB kabla ya kusakinisha Kikusanyaji.
6.2. Uzalishaji wa Kanuni
Segfault yenye chaguo la sehemu-nanga (XC8-3045) Programu ambayo ilifafanua utendakazi na orodha za hoja zinazobadilika na zinazotumia chaguo la -fsection-anchors huenda zilisababisha hitilafu ya mkusanyaji wa ndani: Hitilafu ya sehemu.
Maelezo ya utatuzi hayajasawazishwa (XC8-2948) Wakati uboreshaji wa kiunganishi unapunguza maagizo (kwa mfanoample call to rcall maelekezo), mstari wa chanzo wa kushughulikia michoro huenda usisawazishe wakati kuna zaidi ya operesheni moja ya kupunguza inayotokea katika sehemu.
Katika exampna, kuna simu mbili kwa foo ambazo huishia kupumzika kwa simu za jamaa.
Kushindwa kwa mgao wa kumbukumbu ya PA (XC8-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-I0 (XC8-2872) Kipengele cha smart-io cha mkusanyaji kitatoa msimbo halali lakini usio bora zaidi wa kitendakazi cha snprint f ikiwa kipengele cha const-data-in-progmem kimezimwa au ikiwa kifaa kina mweko wake wote uliowekwa kwenye kumbukumbu ya data.
Smart-I0 yenye akili kidogo (XC8-2869) Kipengele cha smart-io cha mkusanyaji kitatoa msimbo halali lakini usiofaa wakati chaguzi za -flto na -fno-builtin zote zinatumika.
Uwekaji wa data ya kusoma pekee (XC8-2849) Kiunganishi kwa sasa hajui kuhusu sehemu za kumbukumbu za APPCODE na APPDATA, wala mgawanyiko wa [No-Soma-Wakati-Andika katika ramani ya kumbukumbu. Kwa hivyo, kuna nafasi ndogo kwamba kiunganishi kinaweza kutenga data ya kusoma tu katika eneo lisilofaa la kumbukumbu. Uwezekano wa data iliyopotoka huongezeka ikiwa kipengele cha const-data-in-progmem kimewashwa, hasa ikiwa kipengele cha const-data-in-config-mapped-progmem pia kimewashwa. Vipengele hivi vinaweza kulemazwa ikiwa inahitajika.
Kitu file agizo la usindikaji (XC8-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 (XC8-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 (XC8-2775) Kwa vifaa vya ATA5700/2, rejista za PHIDO/1 zinafafanuliwa tu kuwa na upana wa biti 16, badala ya upana wa biti 32.
Kuacha kufanya kazi kwa kiungo wakati wa kupiga simu ishara (XC8-2758) Kiunganishi kinaweza kuanguka ikiwa chaguo la -mrelax la kiendeshi litatumika wakati msimbo wa chanzo unapoita ishara ambayo imefafanuliwa kwa kutumia -cc., -de f sym chaguo la kiunganishi.
Uanzishaji usio sahihi (XC8-2679) Hapo ni 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.
Simu mbaya za utendakazi zisizo za moja kwa moja (XC8-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 (XC8-2626) Maktaba hufanya kazi strtof et al na scanf ( ) et al, itabadilisha nambari ya sehemu inayoelea ya heksadesimali ambayo haibainishi kipeo hadi sufuri. Kwa mfanoample:
strtof (“Oxl”, &endptr) ;
itarudisha thamani 0, sio mimi.
Ujumbe usio sahihi wa mshauri wa rafu (XC8-2542, XC8-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 (XC8-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.
Matokeo mabaya yenye njia batili ya DFP (XC8-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 (XC8-1966) Mkusanyaji haoni mwingiliano wa kumbukumbu wa vitu vilivyofanywa kuwa kamili kwenye anwani (kupitia _at ( )) na vitu vingine kwa kutumia kibainishi cha sehemu ( ) na ambavyo vimeunganishwa kwa anwani sawa.
Kukosa utendakazi wa maktaba na _memx (XC8-1763) Inayoitwa kazi za kuelea za libgcc na hoja katika nafasi ya anwani ya memx inaweza 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 libgcc (AVRTC-731) Kwa bidhaa za ATTiny4/5/9/10/20/40, utekelezaji wa kawaida wa maktaba ya C/Math katika libgcc 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 vinavyohitajika wakati chaguo la -mre lax linatumiwa.
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 wakati wa ndani ( ) utarudi kwa wakati uleule gmtime ( ) , kwa ex.ample.
file:///Applications/microchip/xc8/v2.41/docs/Readme_XC8_for_AVR.htm
Nyaraka / Rasilimali
![]() |
Programu ya Ukuzaji ya Mkusanyaji wa MICROCHIP MPLAB XC8 C [pdf] Mwongozo wa Mmiliki MPLAB XC8 C, MPLAB XC8 C Programu ya Ukuzaji wa Kikusanyaji, Programu ya Ukuzaji wa Mkusanyaji, Programu ya Maendeleo, Programu |




