MICROCHIP XC8 C Compiler Version 2.45 Nodiadau Rhyddhau ar gyfer AVR MCU
Gwybodaeth Cynnyrch
Offeryn meddalwedd yw MPLAB XC8 C Compiler a ddefnyddir i dargedu dyfeisiau Microsglodyn AVR. Fe'i cynlluniwyd i lunio cod C a chynhyrchu gweithredadwy files ar gyfer y dyfeisiau hyn. Y fersiwn casglwr y cyfeirir ati yn y llawlyfr defnyddiwr hwn yw 2.45, gyda dyddiad adeiladu swyddogol o Awst 18, 2023. Y fersiwn flaenorol oedd 2.41, a adeiladwyd ar Chwefror 8, 2023. Daw'r casglwr â Llawlyfr Diogelwch Swyddogaethol, sy'n darparu gwybodaeth ychwanegol a chanllawiau wrth ddefnyddio casglwyr MPLAB XC gyda chymwysiadau diogelwch swyddogaethol. Mae'r llawlyfr hwn wedi'i gynnwys yn y pecyn dogfennaeth pan fyddwch chi'n prynu trwydded diogelwch swyddogaethol. Mae Compiler MPLAB XC8 C yn cefnogi'r holl ddyfeisiau MCU AVR 8-did sydd ar gael ar adeg rhyddhau. Gallwch gyfeirio at y avr_chipinfo.html file yng nghyfeiriadur doc y casglwr ar gyfer rhestr o'r holl ddyfeisiau a gefnogir a'u gosodiadau bit ffurfweddu. Mae yna rifynnau gwahanol o'r casglwr MPLAB XC8 ar gael. Mae'r rhifyn trwyddedig (PRO) yn darparu lefel uwch o optimeiddio o'i gymharu â'r rhifyn rhad ac am ddim. I actifadu'r casglwr fel cynnyrch trwyddedig, mae angen i chi brynu allwedd actifadu. Fodd bynnag, gellir defnyddio'r fersiwn didrwydded am gyfnod amhenodol heb drwydded. Ar gyfer cymwysiadau diogelwch swyddogaethol, mae casglwr Diogelwch Swyddogaethol MPLAB XC8 ar gael. Mae angen trwydded diogelwch swyddogaethol a brynwyd gan Microsglodyn i'w actifadu. Ar ôl ei actifadu, gellir defnyddio pob lefel optimeiddio a nodweddion casglwr. Mae Casglwr Diogelwch Swyddogaethol MPLAB XC hefyd yn cefnogi'r Drwydded Gweinyddwr Rhwydwaith. Mae gwybodaeth fanwl am osod, actifadu, mathau o drwyddedau, a materion mudo i'w gweld yn y ddogfen Gosod a Thrwyddedu Crynwyr MPLAB XC C (DS50002059).
Cyfarwyddiadau Defnydd Cynnyrch
- Cyn rhedeg meddalwedd MPLAB XC8 C Compiler, darllenwch y llawlyfr defnyddiwr am wybodaeth a chyfarwyddiadau pwysig sy'n benodol i dargedu dyfeisiau Microsglodyn AVR.
- Os ydych chi'n defnyddio'r casglwr ar gyfer dyfeisiau PIC 8-did, cyfeiriwch at Nodiadau Rhyddhau Crynhoydd MPLAB XC8 C ar gyfer dogfen PIC.
- Sicrhewch fod eich system weithredu yn bodloni gofynion y system ar gyfer rhedeg y casglwr. Mae deuaidd ar gyfer macOS wedi'u llofnodi â chod a'u notarized. Mae Gweinydd Trwydded Rhwydwaith MPLAB XC ar gael ar gyfer Microsoft Windows 10 ac uwch, Ubuntu 18.04 ac uwch, a macOS 10.15 ac uwch. Sylwch nad yw Gweinydd Trwydded Rhwydwaith MPLAB XC yn cael ei brofi ar y systemau gweithredu hyn.
- Gellir rhedeg Gweinyddwr Trwydded Rhwydwaith MPLAB XC ar Peiriannau Rhithwir yr OS a gefnogir gan ddefnyddio trwydded peiriant rhithwir ar gyfer trwyddedau rhwydwaith (SW006021-VM). Mae pob fersiwn 32-did o Weinydd Rhwydwaith MPLAB XC yn dod i ben gan ddechrau o fersiwn 3.00.
- I actifadu Crynhoadwr MPLAB XC8 C fel cynnyrch trwyddedig (PRO), prynwch allwedd actifadu. Bydd hyn yn darparu lefel uwch o optimeiddio o'i gymharu â'r fersiwn am ddim. Fodd bynnag, gellir gweithredu'r casglwr didrwydded am gyfnod amhenodol heb drwydded.
- Os ydych chi'n defnyddio'r Compiler Diogelwch Swyddogaethol MPLAB XC8 ar gyfer cymwysiadau diogelwch swyddogaethol, rhaid ei actifadu gyda thrwydded diogelwch swyddogaethol a brynwyd gan Microchip. Ni fydd y casglwr yn gweithredu heb y drwydded hon. Ar ôl ei actifadu, gallwch ddewis unrhyw lefel optimeiddio a defnyddio'r holl nodweddion casglwr. Cefnogir y Drwydded Gweinyddwr Rhwydwaith gan y datganiad hwn o'r Compiler Diogelwch Swyddogaethol MPLAB XC.
- I gael cyfarwyddiadau manwl ar osod, actifadu a thrwyddedu Crynhoadwr MPLAB XC8 C, cyfeiriwch at y ddogfen Gosod a Thrwyddedu Crynhowyr MPLAB XC C (DS50002059).
- Os ydych chi'n rhedeg y casglwr o dan y drwydded werthuso, byddwch chi'n cael rhybudd yn ystod y cyfnod llunio pan fyddwch chi o fewn 14 diwrnod i ddiwedd eich cyfnod gwerthuso. Rhoddir yr un rhybudd os ydych o fewn 14 diwrnod i ddiwedd eich tanysgrifiad HPA.
Drosoddview
Rhagymadrodd
Mae'r datganiad hwn o'r casglwr Microsglodyn MPLAB® XC8 C yn cynnwys sawl nodwedd newydd, atgyweiriadau nam, a chefnogaeth ar gyfer dyfeisiau newydd.
Dyddiad Adeiladu
Dyddiad adeiladu swyddogol y fersiwn casglwr hwn yw 18 Awst 2023.
Fersiwn Blaenorol
Fersiwn crynodwr blaenorol MPLAB XC8 C oedd 2.41, a adeiladwyd ar 8 Chwefror, 2023.
Llawlyfr Diogelwch Swyddogaethol
Mae Llawlyfr Diogelwch Swyddogaethol ar gyfer casglwyr MPLAB XC ar gael yn y pecyn dogfennaeth pan fyddwch chi'n prynu trwydded diogelwch swyddogaethol.
Trwyddedau Cydran a Fersiynau
Mae'r Crynhoadwr MPLAB XC8 C ar gyfer offer MCUs AVR yn cael ei ysgrifennu a'i ddosbarthu o dan Drwydded Gyhoeddus Gyffredinol GNU (GPL) sy'n golygu bod ei god ffynhonnell yn cael ei ddosbarthu'n rhydd ac ar gael i'r cyhoedd. Gellir lawrlwytho'r cod ffynhonnell ar gyfer offer o dan y GNU GPL ar wahân i Microsglodyn websafle. Gallwch ddarllen y GNU GPL yn y file a enwir lleoli is-gyfeiriadur eich cyfeiriadur gosod. Mae trafodaeth gyffredinol o'r egwyddorion sy'n sail i'r GPL i'w gweld yma. Darperir cod cymorth ar gyfer y pennawd files, sgriptiau cysylltwyr, a llyfrgelloedd amser rhedeg yn god perchnogol ac nid ydynt yn dod o dan y GPL. Mae'r casglwr hwn yn gweithredu fersiwn GCC 5.4.0, fersiwn binutils 2.26, ac mae'n defnyddio fersiwn avr-libc 2.0.0.
Gofynion y System
Mae casglwr MPLAB XC8 C a'r feddalwedd drwyddedu y mae'n ei defnyddio ar gael ar gyfer amrywiaeth o systemau gweithredu, gan gynnwys fersiynau 64-bit o'r canlynol: Rhifynnau proffesiynol o Microsoft® Windows® 10, Ubuntu® 18.04, macOS® 13.2 (Ventura), a Fedora 34. Mae deuaidd ar gyfer Windows wedi'u llofnodi â chod. Mae deuaidd ar gyfer macOS wedi'u llofnodi â chod a'u notarized. Mae Gweinydd Trwydded Rhwydwaith MPLAB XC ar gael ar gyfer amrywiaeth o systemau gweithredu 64-bit, gan gynnwys Microsoft Windows 10 ac uwch; Ubuntu 18.04 ac uwch; neu macOS 10.15 ac uwch. Gall y gweinydd hefyd redeg ar systemau gweithredu amrywiol eraill gan gynnwys Windows Server, dosbarthiadau Linux, megis Oracle® Enterprise Linux® a Red Hat® Enterprise Linux yn ogystal â fersiynau hŷn o systemau gweithredu â chymorth. Fodd bynnag, nid yw Gweinydd Trwydded Rhwydwaith MPLAB XC yn cael ei brofi ar y systemau gweithredu hyn. Gellir rhedeg Gweinyddwr Trwydded Rhwydwaith MPLAB XC ar Peiriannau Rhithwir yr OS a gefnogir gan ddefnyddio trwydded peiriant rhithwir ar gyfer trwyddedau rhwydwaith (SW006021-VM). Mae pob fersiwn 32-did o Weinydd Rhwydwaith MPLAB XC yn dod i ben gan ddechrau o fersiwn 3.00.
Dyfeisiau a Gefnogir
Mae'r casglwr hwn yn cefnogi'r holl ddyfeisiau MCU AVR 8-did sydd ar gael ar adeg rhyddhau. Gweler avr_chipinfo.html (yng nghyfeiriadur doc y casglwr) am restr o'r holl ddyfeisiau a gefnogir. Mae'r ffeiliau hyn hefyd yn rhestru gosodiadau bit cyfluniad ar gyfer pob dyfais.
Rhifynnau ac Uwchraddio Trwyddedau
Gellir actifadu casglwr MPLAB XC8 fel cynnyrch trwyddedig (PRO) neu ddidrwydded (Am Ddim). Mae angen i chi brynu allwedd actifadu i drwyddedu'ch casglwr. Mae trwydded yn caniatáu lefel uwch o optimeiddio o'i gymharu â'r cynnyrch Am Ddim. Gellir gweithredu casglwr didrwydded am gyfnod amhenodol heb drwydded. Rhaid actifadu casglwr Diogelwch Gweithredol MPLAB XC8 gyda thrwydded diogelwch swyddogaethol a brynwyd gan Microsglodyn. Ni fydd y casglwr yn gweithredu heb y drwydded hon. Ar ôl ei actifadu, gallwch ddewis unrhyw lefel optimeiddio a defnyddio'r holl nodweddion casglwr. Mae'r datganiad hwn o'r MPLAB XC Functional Safety Compiler yn cefnogi'r Drwydded Gweinyddwr Rhwydwaith. Gweler y ddogfen Gosod a Thrwyddedu Crynwyr MPLAB XC C (DS50002059) am wybodaeth am fathau o drwyddedau a gosod y casglwr gyda thrwydded.
Gosod a Activation
Gweler hefyd yr adrannau Materion a Chyfyngiadau Ymfudo i gael gwybodaeth bwysig am y rheolwr trwydded diweddaraf sydd wedi'i chynnwys gyda'r casglwr hwn. Os ydych chi'n defnyddio MPLAB IDE, gwnewch yn siŵr eich bod chi'n gosod y fersiwn MPLAB X IDE diweddaraf 5.0 neu'n ddiweddarach cyn gosod yr offeryn hwn. Gadael y DRhA cyn gosod y casglwr. Rhedeg y .run (Linux) neu .app (macOS) cymhwysiad gosodwr casglwr, ee XC8-1.00.11403-windows.exe a dilynwch y cyfarwyddiadau ar y sgrin. Argymhellir y cyfeiriadur gosod rhagosodedig. Os ydych chi'n defnyddio Linux, rhaid i chi osod y casglwr gan ddefnyddio terfynell ac o gyfrif gwraidd. Gosodwch gan ddefnyddio cyfrif macOS gyda breintiau gweinyddwr. Mae actifadu bellach yn cael ei wneud ar wahân i'r gosodiad. Gweler y ddogfen Rheolwr Trwydded ar gyfer MPLAB® XC C Compilers (DS52059) am ragor o wybodaeth. Os byddwch yn dewis rhedeg y casglwr o dan y drwydded werthuso, byddwch yn awr yn cael rhybudd yn ystod y llunio pan fyddwch o fewn 14 diwrnod i ddiwedd eich cyfnod gwerthuso. Rhoddir yr un rhybudd os ydych o fewn 14 diwrnod i ddiwedd eich tanysgrifiad HPA. Mae Gweinydd Trwydded Rhwydwaith XC yn osodwr ar wahân ac nid yw wedi'i gynnwys yn y gosodwr casglwr un defnyddiwr. Mae Rheolwr Trwydded XC bellach yn cefnogi crwydro trwyddedau rhwydwaith fel y bo'r angen. Wedi'i anelu at ddefnyddwyr ffonau symudol, mae'r nodwedd hon yn caniatáu trwydded symudol i fynd oddi ar y rhwydwaith am gyfnod byr o amser. Gan ddefnyddio'r nodwedd hon, gallwch ddatgysylltu o'r rhwydwaith a dal i ddefnyddio'ch casglwr MPLAB XC. Gweler ffolder doc y gosodiad XCLM am fwy ar y nodwedd hon. Mae MPLAB X IDE yn cynnwys ffenestr Trwyddedau (Offer > Trwyddedau) i reoli crwydro yn weledol.
Datrys Problemau Gosod
Os ydych chi'n cael anawsterau wrth osod y casglwr o dan unrhyw un o systemau gweithredu Windows, rhowch gynnig ar yr awgrymiadau canlynol.
- Rhedeg y gosodiad fel gweinyddwr.
- Gosodwch ganiatâd y rhaglen gosodwr i 'Rheolaeth lawn'. (De-gliciwch y ffeil, dewiswch Priodweddau, tab Diogelwch, dewis defnyddiwr, golygu.)
- Gosod caniatâd y ffolder dros dro i 'Rheolaeth Lawn'.
I bennu lleoliad y ffolder dros dro, teipiwch % temp% i'r gorchymyn Run (allwedd logo Windows + R). Bydd hyn yn agor deialog fforiwr ffeil sy'n dangos y cyfeiriadur hwnnw a bydd yn caniatáu ichi bennu llwybr y ffolder honno.
Dogfennaeth Casglwr
Gellir agor canllawiau defnyddiwr y casglwr o'r dudalen HTML sy'n agor yn eich porwr wrth glicio ar y botwm cymorth glas yn dangosfwrdd MPLAB X IDE, fel y nodir yn y sgrinlun.
Os ydych chi'n adeiladu ar gyfer targedau AVR 8-did, mae Canllaw Defnyddiwr Cryno MPLAB® XC8 C ar gyfer AVR® MCU yn cynnwys gwybodaeth am yr opsiynau casglwr a'r nodweddion hynny sy'n berthnasol i'r bensaernïaeth hon.
Cefnogaeth i Gwsmeriaid
Gallwch ofyn cwestiynau i ddefnyddwyr eraill y cynnyrch hwn yn Fforwm XC8. Mae microsglodyn yn croesawu adroddiadau nam, awgrymiadau neu sylwadau am y fersiwn casglwr hwn. Cyfeiriwch unrhyw adroddiadau nam neu geisiadau nodwedd trwy'r System Gymorth.
Diweddariadau Dogfennau
I gael fersiynau ar-lein a chyfredol o ddogfennaeth MPLAB XC8, ewch i Dogfennaeth Dechnegol Ar-lein Microchip websafle.
Dogfennaeth AVR newydd neu wedi'i diweddaru yn y datganiad hwn:
Dim
- Mae Canllaw Ymfudo AVR® GNU i MPLAB® XC8 yn disgrifio'r newidiadau i'r cod ffynhonnell a'r opsiynau adeiladu a allai fod yn ofynnol pe baech yn penderfynu mudo prosiect seiliedig ar C o'r AVR 8-bit GNU Toolchain i'r Microsglodyn MPLAB XC8 C Compiler.
- Mae Canllaw Cyfeirio Llyfrgell Safonol Microsglodyn yn disgrifio ymddygiad a rhyngwyneb i'r ffwythiannau a ddiffinnir gan y Llyfrgell Safonol Microsglodyn Unffurf, yn ogystal â'r defnydd bwriedig o'r mathau o lyfrgelloedd a macros. Roedd rhywfaint o'r wybodaeth hon wedi'i chynnwys yn flaenorol yng Nghanllaw Defnyddiwr Crynhoad MPLAB® XC8 C ar gyfer AVR® MCU. Mae gwybodaeth llyfrgell sy'n benodol i ddyfais yn dal i gael ei chynnwys yn y canllaw casglu hwn.
- Os ydych chi newydd ddechrau gyda dyfeisiau 8-did a'r Compiler MPLAB XC8 C, y Defnyddiwr MPLAB® XC8
- Canllaw ar gyfer Peirianwyr Embedded – Mae gan AVR® MCUs (DS50003108) wybodaeth am sefydlu prosiectau yn y MPLAB X IDE ac ysgrifennu cod ar gyfer eich prosiect MPLAB XC8 C cyntaf. Mae'r canllaw hwn bellach yn cael ei ddosbarthu gyda'r casglwr.
- Mae'r Canllaw Defnyddiwr Hexmate wedi'i fwriadu ar gyfer y rhai sy'n rhedeg Hexmate fel cymhwysiad annibynnol.
Beth sy'n Newydd
Mae'r canlynol yn nodweddion targed AVR newydd y mae'r casglwr bellach yn eu cefnogi. Mae rhif y fersiwn yn yr is-benawdau yn nodi'r fersiwn casglwr cyntaf i gefnogi'r nodweddion sy'n dilyn.
Fersiwn 2.45
Rheolwr trwydded gyffredinol (XC8-3175, XCLM-224) Mae'r fersiwn macOS o'r rheolwr trwydded a ddefnyddir gyda'r casglwr bellach yn gyffredinol, gan gynnig cefnogaeth frodorol ar gyfer peiriannau Intel ac M1. Mae fersiwn Linux y rheolwr trwydded bellach angen o leiaf fersiwn 2.25 o glibc. Deuaidd cyffredinol Mac (XC8-3168, XC8-2951) Mae'r ffeiliau deuaidd casglwr ar gyfer macOS bellach yn gyffredinol, gan gynnig cefnogaeth frodorol ar gyfer peiriannau sy'n seiliedig ar Intel ac M1. Llai o feintiau llyfrgell pwynt arnofio (XC8-3112, XC8-3071) Mae gwelliannau wedi'u gwneud i swyddogaethau llyfrgell pwynt arnawf, gan gynnwys sinf() pow(), sqrt(), expf(), log1fp(), a nextafterf() , sy'n gweld gostyngiad ym maint y cod ar gyfer yr arferion hyn. Cymorth dyfais newydd Mae cefnogaeth bellach ar gael ar gyfer y rhannau AVR canlynol: AVR16EA28, AVR16EA32, AVR16EA48, AVR32EA28, AVR32EA32, AVR32EA48, AVR16EB14, AVR16EB20, AVR16EB28, ac AVR16EB32.
Fersiwn 2.41
- Cefnogaeth Bootrow (XC8-3053) Bydd y casglwr yn gosod cynnwys unrhyw adrannau gyda rhagddodiad .bootrow yn y cyfeiriad 0x860000 yn y ffeil HEX. Defnyddir yr adrannau hyn ar gyfer cof BOOTROW, sydd wedi'i gynllunio ar gyfer storio allweddi a gwybodaeth ddiogel arall a ddylai fod yn hygyrch i lwythwr cychwyn yn unig.
- Dileu dychweliadau diangen (XC8-3048) Bydd y casglwr nawr yn dileu cyfarwyddiadau diswyddiad segur mewn swyddogaethau gyda naid gynffon pan ddefnyddir sgriptiau cysylltu personol. Mae hwn yn optimeiddiad tebyg i'r hyn a berfformiwyd yn flaenorol, ond fe'i perfformir bellach ar bob adran amddifad, hyd yn oed os defnyddir sgript cysylltu arfer ac nad yw'r cynllun dyrannu ffit orau ar waith.
- Newid math amser (XC8-2982, 2932) Mae math llyfrgell safonol C99, time_t wedi'i newid o hir hir i fath hir heb ei lofnodi, sy'n rhoi gwelliannau maint cod mewn rhai swyddogaethau sy'n gysylltiedig ag amser, megis mktime().
- Nop newydd (XC8-2946, 2945) Mae'r macro NOP() wedi'i ychwanegu at . Mae'r macro hwn yn mewnosod cyfarwyddyd dim gweithrediad yn yr allbwn.
- Diweddariad i XCLM (XC8-2944) Mae'r rheolwr trwydded a ddefnyddiwyd gyda'r casglwr wedi'i ddiweddaru ac mae bellach yn fwy ymatebol wrth wirio manylion trwydded y casglwr.
- Trampgalwadau olin (XC8-2760) Bellach gall y casglwr gyflawni galwadau cymharol fyrrach yn lle cyfarwyddiadau galwad ffurf hir pan fyddai ffurfiau perthynol y cyfarwyddiadau fel arfer y tu allan i'w cyrchfan. Yn y sefyllfa hon, bydd y casglwr yn ceisio disodli cyfarwyddiadau rcall i gyfarwyddyd galwad jmp a fydd yn trampoline' i'r cyfeiriad gofynol, am example:
Fersiwn 2.40
- Cymorth dyfais newydd Mae cymorth bellach ar gael ar gyfer y rhannau AVR canlynol: AT90PWM3, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVREA64EA28, AVR64, a AVR32.
- Gwell echdynnu gweithdrefnol Mae'r offeryn optimeiddio tynnu gweithdrefnol (PA) wedi'i wella fel y gellir amlinellu cod sy'n cynnwys cyfarwyddyd galwad ffwythiant (galwad/galwad). Bydd hyn ond yn digwydd os na ddefnyddir y pentwr i drosglwyddo dadleuon i'r swyddogaeth na chael gwerth dychwelyd ohoni. Mae'r pentwr yn cael ei ddefnyddio wrth alw ffwythiant gyda rhestr dadl newidiol neu wrth alw swyddogaeth sy'n cymryd mwy o ddadleuon nag sydd o gofrestrau wedi'u dynodi at y diben hwn. Gellir analluogi'r nodwedd hon gan ddefnyddio'r opsiwn - mno-pa-amlinellol-alwadau, neu gellir analluogi tynnu gweithdrefnol yn gyfan gwbl ar gyfer ffeil gwrthrych ac neu swyddogaeth trwy ddefnyddio'r -mno-pa-ar-file -mno-pa-ar-swyddogaeth, yn y drefn honno, neu drwy ddefnyddio'r briodwedd nopa (nodweddydd __nopa) yn ddetholus gyda ffwythiannau.
- Maccro cwmpas y cod Mae'r casglwr nawr yn diffinio'r macro __CODECOV os pennir opsiwn -mcodecov dilys.
- Opsiwn cadw cof Bydd y gyrrwr xc8-cc nawr yn derbyn yr opsiwn -mreserve=space@start:end wrth adeiladu ar gyfer targedau AVR. Mae'r opsiwn hwn yn cadw'r ystod cof penodol yn y gofod cof data neu raglen, gan atal y cysylltydd rhag poblogi cod neu wrthrychau yn yr ardal hon.
- IO craffach Mae nifer o welliannau wedi'u gwneud i swyddogaethau Smart IO, gan gynnwys newidiadau cyffredinol i'r cod craidd printf, trin y manyleb trosi %n fel amrywiad annibynnol, gan gysylltu arferion vararg pop yn ôl y galw, gan ddefnyddio mathau data byrrach lle bo modd i'w trin Dadleuon swyddogaeth IO, a ffactorio cod cyffredin mewn lled maes a thrin manwl gywir. Gall hyn arwain at arbedion cod a data sylweddol, yn ogystal â chynyddu cyflymder gweithredu IO.
Fersiwn 2.39 (Datganiad Diogelwch Swyddogaethol)
Trwydded Gweinyddwr Rhwydwaith Mae'r datganiad hwn o'r Compiler Diogelwch Swyddogaethol MPLAB XC8 yn cefnogi'r Drwydded Gweinyddwr Rhwydwaith.
Fersiwn 2.36
Dim.
Fersiwn 2.35
- Cefnogaeth dyfais newydd Mae cefnogaeth ar gael ar gyfer y rhannau AVR canlynol: ATTINY3224, ATTINY3226, ATTINY3227, AVR64DD14, AVR64DD20, AVR64DD28, ac AVR64DD32.
- Gwell newid cyd-destun Mae'r opsiwn newydd -mcall-isr-prologues yn newid sut mae swyddogaethau torri ar draws yn arbed cofrestrau wrth iddynt ddod i mewn a sut mae'r cofrestrau hynny'n cael eu hadfer pan fydd y drefn dorri ar draws yn dod i ben. Mae'n gweithio mewn ffordd debyg i'r opsiwn -mcall-prologues, ond dim ond yn effeithio ar swyddogaethau torri ar draws (ISRs).
- Newid cyd-destun gwell fyth Mae'r opsiwn -mgas-isr-prologues newydd yn rheoli'r cod switsh cyd-destun a gynhyrchir ar gyfer arferion gwasanaeth ymyrraeth bach. Pan fydd wedi'i galluogi, bydd y nodwedd hon yn cael y cydosodwr yn sganio'r ISR ar gyfer defnydd o'r gofrestr a dim ond yn cadw'r cofrestrau ail-law hyn os oes angen.
- Mapio fflach ffurfweddadwy Mae gan rai dyfeisiau yn y teulu AVR DA ac AVR DB SFR (ee FLMAP) sy'n pennu pa adran 32k o gof y rhaglen fydd yn cael ei mapio i'r cof data. Gellir defnyddio'r opsiwn newydd - mconst-data-in-config-mapped-progmem i gael y cysylltydd i osod yr holl ddata cymwys mewn un adran 32k a chychwyn y gofrestr SFR berthnasol yn awtomatig i sicrhau bod y data hwn yn cael ei fapio yn y gofod cof data , lle bydd mynediad mwy effeithiol ato.
- Llyfrgelloedd Safonol Microsglodyn Bydd pob crynhoydd MPLAB XC yn rhannu Llyfrgell Safonol Microsglodyn, sydd bellach ar gael gyda'r datganiad hwn o MPLAB XC8. Nid yw Canllaw Defnyddiwr Crynhoad MPLAB® XC8 C ar gyfer AVR® MCU bellach yn cynnwys y dogfennau ar gyfer y swyddogaethau safonol hyn. Mae'r wybodaeth hon bellach i'w chael yng Nghanllaw Cyfeirio'r Llyfrgell Safonol Microsglodyn. Sylwch nad yw rhai swyddogaethau a ddiffiniwyd yn flaenorol gan avr-libc ar gael bellach. (Gweler swyddogaeth y Llyfrgell.)
- IO Clyfar Fel rhan o'r llyfrgelloedd unedig newydd, mae swyddogaethau IO yn y teuluoedd printf a scanf bellach yn cael eu cynhyrchu'n benodol ar bob adeilad, yn seiliedig ar sut mae'r swyddogaethau hyn yn cael eu defnyddio yn y rhaglen. Gall hyn leihau'n sylweddol yr adnoddau a ddefnyddir gan raglen.
- Opsiwn cymorth IO Clyfar Wrth ddadansoddi galwadau i ffwythiannau IO clyfar (fel printf() neu scanf() ni all y casglwr bob amser benderfynu o'r llinyn fformat neu gasglu o'r dadleuon y manylebau trosi hynny sy'n ofynnol gan yr alwad. Yn flaenorol, byddai'r casglwr bob amser yn gwneud dim rhagdybiaethau a sicrhau bod ffwythiannau IO cwbl weithredol wedi'u cysylltu â delwedd y rhaglen derfynol Mae opsiwn -msmart-io-format=fmt newydd wedi'i ychwanegu fel bod y defnyddiwr yn gallu hysbysu'r casglwr yn lle hynny am y manylebau trosi a ddefnyddir gan smart IO swyddogaethau y mae eu defnydd yn amwys, sy'n atal arferion IO rhy hir rhag cael eu cysylltu. (Gweler Opsiwn fformat smart-io am ragor o fanylion.)
- Gosod adrannau arferiad Yn flaenorol, roedd yr opsiwn -Wl,–section-start dim ond yn gosod yr adran benodedig yn y cyfeiriad y gofynnwyd amdano pan oedd y sgript cysylltu yn diffinio adran allbwn gyda'r un enw. Pan nad oedd hynny'n wir, gosodwyd yr adran mewn cyfeiriad a ddewiswyd gan y cysylltydd ac anwybyddwyd yr opsiwn yn y bôn. Nawr bydd yr opsiwn yn cael ei anrhydeddu ar gyfer pob adran arfer, hyd yn oed os nad yw'r sgript cysylltu yn diffinio'r adran. Sylwch, fodd bynnag, ar gyfer adrannau safonol, megis .text, .bss neu .data , y bydd gan y dyrannwr ffit orau reolaeth lwyr o hyd dros eu lleoliad, ac ni fydd yr opsiwn yn cael unrhyw effaith. Defnyddiwch yr opsiwn -Wl, -Tsection=addr, fel y disgrifir yn y canllaw defnyddiwr.
Fersiwn 2.32
- Canllawiau Stack Ar gael gyda thrwydded casglwr PRO, gellir defnyddio nodwedd canllaw stac y casglwr i amcangyfrif dyfnder mwyaf unrhyw stac a ddefnyddir gan raglen. Mae'n llunio ac yn dadansoddi graff galwad rhaglen, yn pennu defnydd pentwr pob swyddogaeth, ac yn cynhyrchu adroddiad, y gellir casglu o'r dyfnder y staciau a ddefnyddir gan y rhaglen. Mae'r nodwedd hon wedi'i galluogi trwy'r opsiwn llinell orchymyn -mchp-stack-usage. Mae crynodeb o'r defnydd o stac yn cael ei argraffu ar ôl ei weithredu. Mae adroddiad stac manwl ar gael yn y ffeil mapiau, y gellir gofyn amdano yn y ffordd arferol.
- Cymorth dyfais newydd Mae cymorth ar gael ar gyfer y rhannau AVR canlynol: ATTINY427, ATTINY424, ATTINY426, ATTINY827, ATTINY824, ATTINY826, AVR32DB32, AVR64DB48, AVR64DB64, AVR64DB28, AVR32DBVR28, AVR64.
- Cymorth dyfais tynnu'n ôl Nid yw cymorth ar gael bellach ar gyfer y rhannau AVR canlynol: AVR16DA28, AVR16DA32 ac, AVR16DA48.
Fersiwn 2.31
Dim.
Fersiwn 2.30
- Opsiwn newydd i atal cychwyn data Mae opsiwn gyrrwr -mno-data-init newydd yn atal cychwyn data a chlirio adrannau bss. Mae'n gweithio trwy atal allbwn y symbolau do_clear_bss mewn ffeiliau cydosod, a fydd yn ei dro yn atal cynnwys y rheolweithiau hynny gan y cysylltydd.
- Gwelliannau i'w hoptimeiddio Mae nifer o welliannau optimeiddio wedi'u gwneud, gan gynnwys cael gwared ar gyfarwyddiadau dychwelyd diangen, cael gwared ar rai neidiau yn dilyn cyfarwyddyd sgip-os-did-yw, a gwell tynnu gweithdrefnol a'r gallu i ailadrodd y broses hon.
Mae opsiynau ychwanegol ar gael nawr i reoli rhai o'r optimeiddiadau hyn, yn benodol - fsection- anchors , sy'n caniatáu mynediad i wrthrychau statig i gael eu perfformio mewn perthynas ag un symbol; -mpa- iterations=n , sy'n caniatáu i nifer yr iteriadau tynnu gweithdrefnol gael eu newid o'r rhagosodiad o 2; a, -mpa-callcost-shortcall, sy'n perfformio tynnu gweithdrefnol mwy ymosodol, yn y gobaith y gall y cysylltydd ymlacio galwadau hir. Gall yr opsiwn olaf hwn gynyddu maint y cod os na chaiff y tybiaethau sylfaenol eu gwireddu. - Cymorth dyfais newydd Mae cefnogaeth ar gael ar gyfer y rhannau AVR canlynol: AVR16DA28, AVR16DA32, AVR16DA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR128 AVR28DA128, AVR32DB a AVR128DB VR48DB128.
- Nid yw Cymorth Cymorth dyfais wedi'i dynnu'n ôl ar gael bellach ar gyfer y rhannau AVR canlynol: ATA5272, ATA5790, ATA5790N, ATA5791, ATA5795, ATA6285, ATA6286, ATA6612C, ATA6613C, ATA6614Q, ATA6616CATA, ATA6617C, ATA664251C, ATAXNUMXC
Fersiwn 2.29 (Datganiad Diogelwch Swyddogaethol)
- Ffeil pennyn ar gyfer y casglwr adeiledig Er mwyn sicrhau bod y casglwr yn gallu cydymffurfio â manylebau iaith megis MISRA, mae'r , wedi'i ddiweddaru. Mae'r pennyn hwn yn cynnwys y prototeipiau ar gyfer yr holl swyddogaethau mewnol, megis __builtin_avr_nop() a __builtin_avr_delay_cycles() . Efallai na fydd rhai adeiladau adeiledig yn cydymffurfio â MISRA; gellir hepgor y rhain trwy ychwanegu'r diffiniad __XC_STRICT_MISRA i linell orchymyn y crynhoydd. Mae'r adeiladau mewnol a'u datganiadau wedi'u diweddaru i ddefnyddio mathau o led sefydlog.
Fersiwn 2.20
- Cefnogaeth dyfais newydd Mae cefnogaeth ar gael ar gyfer y rhannau AVR canlynol: ATTINY1624, ATTINY1626, ac ATTINY1627.
- Dyraniad gwell ffit Mae'r dyranwr ffit orau (BFA) yn y casglwr wedi'i wella fel bod adrannau'n cael eu dyrannu mewn trefn sy'n caniatáu optimeiddio gwell. Mae'r BFA bellach yn cefnogi mannau cyfeiriad a enwir ac yn trin cychwyn data yn well.
- Gwell echdynnu gweithdrefnol Mae'r optimeiddiadau tynnu gweithdrefnol bellach yn cael eu perfformio ar fwy o ddilyniannau cod. Ymdriniwyd â sefyllfaoedd blaenorol lle gallai'r optimeiddio hwn fod wedi cynyddu maint cod trwy wneud y cod optimeiddio yn ymwybodol o broses casglu sbwriel y cysylltydd.
- Absenoldeb Cydosodwr AVR Nid yw'r Cydosodwr AVR bellach wedi'i gynnwys gyda'r dosbarthiad hwn.
Fersiwn 2.19 (Datganiad Diogelwch Swyddogaethol)
Dim.
Fersiwn 2.10
- Cwmpas y Cod Mae'r datganiad hwn yn cynnwys nodwedd cwmpas cod sy'n hwyluso dadansoddiadau o'r graddau y mae cod ffynhonnell prosiect wedi'i weithredu. Defnyddiwch yr opsiwn -mcodecov= hwrdd i'w alluogi. Ar ôl gweithredu'r rhaglen ar eich caledwedd, bydd gwybodaeth cwmpas cod yn cael ei choladu yn y ddyfais, a gall hyn gael ei drosglwyddo i'r MPLAB X IDE a'i arddangos trwy ategyn sylw cod. Gweler y ddogfennaeth DRhA i gael gwybodaeth am yr ategyn hwn.
Gellir defnyddio'r #pragma nocodecov i eithrio swyddogaethau dilynol o'r dadansoddiadau cwmpas. Yn ddelfrydol dylid ychwanegu'r pragma ar ddechrau'r ffeil i eithrio'r ffeil gyfan honno o'r dadansoddiadau sylw. Fel arall, gellir defnyddio'r __nodwedd__((nocodecov)) i eithrio swyddogaeth benodol o'r dadansoddiadau cwmpas. - Ffeiliau disgrifiad dyfais Mae ffeil dyfais newydd o'r enw avr_chipinfo.html wedi'i lleoli yng nghyfeirlyfr docs dosbarthiad y casglwr. Mae'r ffeil hon yn rhestru'r holl ddyfeisiau a gefnogir gan y casglwr. Cliciwch ar enw dyfais, a bydd yn agor tudalen yn dangos yr holl barau gosodiadau/gwerth didau cyfluniad a ganiateir ar gyfer y ddyfais honno, gydag e.e.amples.
- Tynnu'n weithdrefnol Mae optimeiddiadau tynnu gweithdrefnol, sy'n disodli blociau cyffredin o god cydosod gyda galwadau i gopi wedi'i dynnu o'r bloc hwnnw, wedi'u hychwanegu at y casglwr. Mae'r rhain yn cael eu perfformio gan raglen ar wahân, sy'n cael ei weithredu'n awtomatig gan y casglwr wrth ddewis optimeiddiadau lefel 2, 3 neu s. Mae'r optimeiddiadau hyn yn lleihau maint y cod, ond gallant leihau cyflymder gweithredu a dadleuadwyedd cod. Gellir analluogi tynnu gweithdrefnol ar lefelau optimeiddio uwch gan ddefnyddio'r opsiwn -mno-pa, neu gellir ei alluogi ar lefelau optimeiddio is (yn amodol ar eich trwydded) trwy ddefnyddio -mpa. Gellir ei analluogi ar gyfer ffeil gwrthrych gan ddefnyddio -mno-pa-on-file=fileenw , neu wedi'i analluogi ar gyfer ffwythiant trwy ddefnyddio -mno-pa-on- function=function. Y tu mewn i'ch cod ffynhonnell, gellir analluogi tynnu gweithdrefnol ar gyfer ffwythiant trwy ddefnyddio __attribute__((nopa)) gyda diffiniad y ffwythiant, neu drwy ddefnyddio __nopa, sy'n ehangu i __attribute__((nopa, noinline)) ac felly'n atal mewnliniad swyddogaeth rhag digwydd a bod tyniad o god amlinellol.
- Cefnogaeth did clo mewn pragma Bellach gellir defnyddio'r cyfluniad #pragma i nodi'r darnau clo AVR yn ogystal â'r darnau cyfluniad eraill. Gwiriwch y ffeil avr_chipinfo.html (a grybwyllir uchod) am y parau gosodiad/gwerth i'w defnyddio gyda'r pragma hwn.
- Cefnogaeth dyfais newydd Mae cefnogaeth ar gael ar gyfer y rhannau canlynol: AVR28DA128, AVR64DA128, AVR32DA128, ac AVR48DA128.
Fersiwn 2.05
- Mwy o ddarnau ar gyfer eich arian Mae fersiwn macOS o'r casglwr a'r rheolwr trwydded hwn bellach yn gymhwysiad 64-did. Bydd hyn yn sicrhau y bydd y casglwr yn gosod ac yn rhedeg heb rybuddion ar fersiynau diweddar o macOS.
- Gwrthrychau Const mewn cof rhaglen Gall y casglwr nawr osod gwrthrychau â chymhwyster const yng nghof Flash y rhaglen, yn hytrach na lleoli'r rhain mewn RAM. Mae'r casglwr wedi'i addasu fel bod data byd-eang cymwysedig yn cael ei storio yng nghof fflach y rhaglen a gellir cyrchu'r data hwn yn uniongyrchol ac yn anuniongyrchol gan ddefnyddio'r cyfarwyddiadau cof rhaglen priodol. Mae'r nodwedd newydd hon wedi'i galluogi yn ddiofyn ond gellir ei hanalluogi gan ddefnyddio'r opsiwn -mno-const-data-in-progmem. Ar gyfer pensaernïaeth avrxmega3 ac avrtiny, nid oes angen y nodwedd hon ac mae bob amser yn anabl, gan fod cof rhaglen wedi'i fapio i'r gofod cyfeiriad data ar gyfer y dyfeisiau hyn.
- Mae fersiynau di-drwydded (am ddim) safonol o'r casglwr hwn bellach yn caniatáu optimeiddio hyd at a chan gynnwys lefel 2. Bydd hyn yn caniatáu allbwn tebyg, er nad yw'n union yr un fath, i'r hyn a oedd yn bosibl yn flaenorol gan ddefnyddio trwydded Safonol.
- Croeso AVRASM2 Mae'r cydosodwr AVRASM2 ar gyfer dyfeisiau 8-did bellach wedi'i gynnwys yn y gosodwr casglwr XC8. Nid yw'r cydosodwr hwn yn cael ei ddefnyddio gan y casglwr XC8, ond mae ar gael ar gyfer prosiectau sy'n seiliedig ar ffynhonnell cydosod a ysgrifennwyd â llaw.
- Cefnogaeth dyfais newydd Mae cefnogaeth ar gael ar gyfer y rhannau canlynol: ATMEGA1608, ATMEGA1609, ATMEGA808, ac ATMEGA809.
Fersiwn 2.00
- Gyrrwr Lefel Uchaf Mae gyrrwr newydd, o'r enw xc8-cc, bellach yn eistedd uwchben y gyrrwr avr-gcc blaenorol a'r gyrrwr xc8, a gall alw'r casglwr priodol yn seiliedig ar ddewis y ddyfais darged. Mae'r gyrrwr hwn yn derbyn opsiynau arddull GCC, sydd naill ai'n cael eu cyfieithu ar gyfer neu'n cael eu trosglwyddo i'r casglwr sy'n cael ei weithredu. Mae'r gyrrwr hwn yn caniatáu set debyg o opsiynau gyda semanteg tebyg i'w defnyddio gydag unrhyw darged AVR neu PIC ac felly dyma'r ffordd a argymhellir i alw'r casglwr. Os oes angen, gellir galw'r hen yrrwr avr-gcc yn uniongyrchol gan ddefnyddio'r opsiynau hen arddull a dderbyniodd mewn fersiynau casglwr cynharach.
- Rhyngwyneb C Cyffredin Gall y crynhoydd hwn bellach gydymffurfio â Rhyngwyneb Cyffredin C MPLAB, gan ganiatáu i'r cod ffynhonnell gael ei drosglwyddo'n haws ar draws holl gasglwyr MPLAB XC. Mae'r opsiwn -mext=cci yn gofyn am y nodwedd hon, gan alluogi cystrawen arall ar gyfer llawer o estyniadau iaith.
- Gyrrwr llyfrgellydd newydd Mae gyrrwr llyfrgellydd newydd wedi'i leoli uwchben y llyfrgellydd PIC blaenorol a'r llyfrgellydd AVR avr-ar. Mae'r gyrrwr hwn yn derbyn opsiynau arddull GCC-archiver, sydd naill ai'n cael eu cyfieithu ar gyfer neu'n cael eu trosglwyddo i'r llyfrgellydd sy'n cael ei weithredu. Mae'r gyrrwr newydd yn caniatáu defnyddio set debyg o opsiynau gyda semanteg tebyg i greu neu drin unrhyw ffeil llyfrgell PIC neu AVR ac felly dyma'r ffordd a argymhellir i alw'r llyfrgellydd ar waith. Os oes angen ar gyfer prosiectau etifeddiaeth, gellir galw'r llyfrgellydd blaenorol yn uniongyrchol gan ddefnyddio'r opsiynau hen arddull a dderbyniodd mewn fersiynau casglwr cynharach.
Materion Ymfudo
Mae'r canlynol yn nodweddion sydd bellach yn cael eu trin yn wahanol gan y casglwr. Efallai y bydd angen addasu'r newidiadau hyn i'ch cod ffynhonnell os ydych yn trosglwyddo'r cod i'r fersiwn casglwr hwn. Mae rhif y fersiwn yn yr is-benawdau yn nodi fersiwn y casglwr cyntaf i gefnogi'r newidiadau sy'n dilyn.
Fersiwn 2.45
Dim.
Fersiwn 2.41
Tynnu ffwythiannau fma anghywir (XC8-2913) Llyfrgell safonol C99 ( ) heb gyfrifo lluosi-adio gyda thrachywiredd anfeidrol i dalgrynnu sengl, ond yn hytrach wedi cronni gwallau talgrynnu gyda phob gweithrediad. Mae'r swyddogaethau hyn wedi'u tynnu o'r llyfrgell a ddarparwyd.
Fersiwn 2.40
Dim.
Fersiwn 2.39 (Datganiad Diogelwch Swyddogaethol)
Dim.
Fersiwn 2.36
Dim.
Fersiwn 2.35
- Trin gwaelodion llinyn i mewn (XC8-2420) Er mwyn sicrhau cysondeb â chasglwyr XC eraill, ni fydd y ffwythiannau llinyn-i-i XC8, fel strtol() ac ati, bellach yn ceisio trosi llinyn mewnbwn os yw'r sylfaen a bennir yn fwy na 36 a bydd yn gosod yn lle hynny . Nid yw safon C yn nodi ymddygiad y swyddogaethau pan eir y tu hwnt i'r gwerth sylfaenol hwn.
- Optimeiddio cyflymder amhriodol Roedd optimeiddiadau tynnu dŵr gweithdrefnol yn cael eu galluogi wrth ddewis optimeiddio lefel 3 (-O3). Mae'r optimizations hyn yn lleihau maint cod ar draul cyflymder cod, felly ni ddylid bod wedi'u perfformio. Efallai y bydd prosiectau sy'n defnyddio'r lefel optimeiddio hon yn gweld gwahaniaethau mewn maint cod a chyflymder gweithredu pan gânt eu hadeiladu gyda'r datganiad hwn.
- Swyddogaeth y llyfrgell Mae'r cod ar gyfer llawer o swyddogaethau llyfrgell safonol C yn awr yn dod o Lyfrgell Safonol Microchip, a all ddangos ymddygiad gwahanol mewn rhai amgylchiadau o gymharu â'r hyn a ddarparwyd gan yr hen lyfrgell avr-libc. Am gynampLe, nid oes angen cysylltu yn y llyfrgell lprintf_flt mwyach (opsiwn -lprintf_flt) i droi cefnogaeth IO wedi'i fformatio ymlaen ar gyfer manylebau fformat fflôt. Mae nodweddion IO craff y Llyfrgell Safonol Microchip Unifi yn golygu nad oes angen yr opsiwn hwn. Yn ogystal, nid oes angen defnyddio rheolweithiau ôl-osodedig _P ar gyfer ffwythiannau llinynnol a chof (ee strcpy_P() ac ati.) sy'n gweithredu ar linynnau const mewn fflach bellach. Bydd y rheolweithiau safonol C (ee strcpy() yn gweithio'n gywir gyda data o'r fath pan fydd y nodwedd const-data-yn-rhaglen-cof wedi'i galluogi.
Fersiwn 2.32
Dim.
Fersiwn 2.31
Dim.
Fersiwn 2.30
Dim.
Fersiwn 2.29 (Datganiad Diogelwch Swyddogaethol)
Dim.
Fersiwn 2.2
Cynllun DFP wedi'i newid Mae'r casglwr bellach yn rhagdybio cynllun gwahanol a ddefnyddir gan DFPs (Device Family Packs). Bydd hyn yn golygu efallai na fydd DFP hŷn yn gweithio gyda'r datganiad hwn, ac ni fydd casglwyr hŷn yn gallu defnyddio'r DFPs diweddaraf.
Fersiwn 2.19 (Datganiad Diogelwch Swyddogaethol)
Dim.
Fersiwn 2.10
Dim
Fersiwn 2.05
Gwrthrychau Const yng nghof rhaglen Sylwch y bydd y gwrthrychau sydd â chymwysterau cyson yn cael eu gosod a'u cyrchu yng nghof y rhaglen (fel y disgrifir yma). Bydd hyn yn effeithio ar faint a chyflymder gweithredu eich prosiect, ond dylai leihau'r defnydd o RAM. Gellir analluogi'r nodwedd hon, os oes angen, gan ddefnyddio'r opsiwn -mno-const-data-in-progmem.
Fersiwn 2.00
- Ffiwsiau cyfluniad Bellach gall ffiwsiau cyfluniad y ddyfais raglennu gan ddefnyddio pragma config ac yna gosod parau gwerth i nodi cyflwr y ffiwsiau, ee #pragma config WDTON = SET #pragma config BODLEVEL = BODLEVEL_4V3
- Gwrthrychau a ffwythiannau absoliwt Bellach gellir gosod gwrthrychau a ffwythiannau mewn cyfeiriad penodol yn y cof gan ddefnyddio'r manyleb CCI __at(cyfeiriad), ar gyfer cyn.ample:
- #cynnwys
int foobar __at(0x800100);
torgoch __at(0x250) getID(int offset) { … }
Rhaid i'r ddadl i'r manylebwr hwn fod yn gysonyn sy'n cynrychioli'r cyfeiriad y gosodir y beit neu'r cyfarwyddyd cyntaf ynddo. Nodir cyfeiriadau RAM trwy ddefnyddio gwrthbwyso o 0x800000. Galluogi'r CCI i ddefnyddio'r nodwedd hon.
- #cynnwys
- Cystrawen ffwythiant torri ar draws newydd Mae'r casglwr nawr yn derbyn y manyleb CCI __interrupt(num) i ddangos mai ffwythiannau C yw trinwyr ymyriadau. Mae'r pennodwr yn cymryd rhif ymyrrol, ar gyfer example: #cynnwys gwagle __ torri ar draws (SPI_STC_vect_num) spi_Isr(gwag) { … }
Materion Sefydlog
Mae'r canlynol yn gywiriadau sydd wedi'u gwneud i'r casglwr. Gallai'r rhain drwsio bygiau yn y cod a gynhyrchwyd neu newid gweithrediad y casglwr i'r hyn a fwriadwyd neu a bennwyd gan ganllaw'r defnyddiwr. Mae rhif y fersiwn yn yr is-benawdau yn nodi bod fersiwn y casglwr cyntaf yn cynnwys atebion ar gyfer y materion sy'n dilyn. Y label(iau) mewn cromfachau yn y teitl yw adnabyddiaeth y mater hwnnw yn y gronfa ddata olrhain. Gall y rhain fod yn ddefnyddiol os oes angen i chi gysylltu â chymorth.
Sylwch fod rhai materion dyfais-benodol yn cael eu cywiro yn y Pecyn Teulu Dyfais (DFP) sy'n gysylltiedig â'r ddyfais. Gweler Rheolwr Pecyn MPLAB am wybodaeth am newidiadau a wnaed i DFPs ac i lawrlwytho'r pecynnau diweddaraf.
Fersiwn 2.45
- Methiant trwydded crwydro (XCLM-235) Methodd trwyddedau crwydro â gweithio'n gywir ar lwyfannau Linux gan ddefnyddio fersiynau glibc yn hwyrach na 2.28.
- Gwall mewnol gydag araeau o strwythurau (XC8-3069) Pan oedd aelodau arae aml-ddimensiwn o strwythur yn cael eu prosesu, ni chafodd y cymwysydd gofod cyfeiriad ei ledaenu'n gywir i'r arae. Arweiniodd hyn at ddiffyg cyfatebiaeth yn y wybodaeth cymhwyso gofod cyfeiriad a gwall casglwr mewnol. Mae'r sefyllfa hon wedi'i chywiro.
- Yn ysgrifennu drwg i ffrydiau anghychwynnol (ML-353, XC8-3100) Os na chafodd y ffrydiau allbwn/gwall safonol eu gosod yn benodol gan ddefnyddio FDEV_SETUP_STREAM neu _init_stdout/_init_stderr , roedd ceisio ysgrifennu atynt wedi arwain at ymddygiad heb ei ddiffinio. Roedd hyn hefyd yn effeithio ar ysgrifeniadau o swyddogaethau stdlib, megis pererror(). Bydd unrhyw ysgrifen at y ffrydiau hyn cyn iddynt gael eu cychwyn yn awr yn cael eu hanwybyddu.
- Diwygiwr heb ei gefnogi (XC8-2505) Nid oedd y llyfrgell avr-libc yn cefnogi'r * modifiers in printf-style sition full versions, for exampgyda “%.*f”. Cefnogir hyn bellach gyda chyflwyniad y Microsglodyn Un Llyfrgell Safonol.
- Rhybuddion anghychwynnol lluosog (XC8-2409) Roedd y casglwr yn cyhoeddi nifer o negeseuon rhybudd union yr un fath wrth ddod ar draws cyfres const na chafodd ei gychwyn. Dylai'r neges fod wedi cael ei chyhoeddi unwaith yn unig, sydd bellach yn wir pan fydd y sefyllfa hon yn digwydd.
Fersiwn 2.41
- Cyhoeddi dongle ar Ventura (XC8-3088) Mae'n bosibl na fyddai donglau a ddefnyddiwyd i drwyddedu'r casglwr wedi'u darllen yn iawn ar westeion MacOS Ventura, gan arwain at fethiannau trwyddedu. Mae newidiadau i reolwr trwydded XCLM yn cywiro'r mater hwn.
- Arwydd anghywir o ddyraniad cof (XC8-2925) Ceisio dyrannu SIZE_MAX beit (neu werth yn agos at hyn) o gof gan ddefnyddio swyddogaethau rheoli cof safonol y llyfrgell (malloc() et al) y gofynnwyd amdanynt wrth ddefnyddio'r gweithrediad dyrannu cof deinamig syml. Bydd pwyntydd NULL nawr yn cael ei ddychwelyd a bydd gwall yn cael ei osod i ENOMEM mewn sefyllfaoedd o'r fath.
- Swyddogaethau fma anghywir wedi'u dileu (XC8-2913) Fma() llyfrgell safonol C99 - swyddogaethau teulu ( ) heb gyfrifo lluosi-adio gyda thrachywiredd anfeidrol i dalgrynnu sengl, ond yn hytrach wedi cronni gwallau talgrynnu gyda phob gweithrediad. Mae'r swyddogaethau hyn wedi'u tynnu o'r llyfrgell a ddarparwyd.
- Trin trawsnewid llinyn yn wael (XC8-2921, XC8-2652) Pan oedd 'dilyniant pwnc' ar gyfer trosi gan strtod() yn cynnwys yr hyn a oedd yn ymddangos yn rif pwynt arnawf mewn fformat esbonyddol ac roedd nod annisgwyl ar ôl yr e/E cymeriad, yna lle darparwyd endptr, rhoddwyd cyfeiriad iddo a oedd yn cyfeirio at y nod ar ôl y , tra dylai fod wedi bod yn pwyntio at y nod e//E ei hun, gan nad oedd hwnnw wedi'i drosi. Am gynample, dylai strtod ("100exx", & ep) ddychwelyd 100.00 a gosod ep i bwyntio at ran "exx" y llinyn, tra bod y swyddogaeth yn dychwelyd y gwerth cywir ond yn gosod rhan "xx" o'r llinyn.
Fersiwn 2.40
- Rhy hamddenol (XC8-2876) Wrth ddefnyddio'r opsiwn -mrelax, nid oedd y casglwr yn dyrannu rhai adrannau gyda'i gilydd, gan arwain at feintiau cod llai optimaidd. Gallai hyn fod wedi digwydd gyda chod a ddefnyddiodd y llyfrgelloedd MUSL newydd neu gyda symbolau gwan.
- Nid yw'r nodwedd mapio wedi'i hanalluogi fel y nodir yn y rhybudd (XC8-2875) Mae'r nodwedd rhaglen const-data-in-config-mapped-progmem yn dibynnu ar alluogi'r nodwedd const-data-in-progmem. Pe bai'r nodwedd const-data-in-config-mapped-progmem wedi'i galluogi'n benodol gan ddefnyddio'r opsiwn a bod y nodwedd const-data-in-progmem wedi'i hanalluogi, methodd y cam cyswllt, er gwaethaf neges rhybudd yn nodi bod y const-data-in-in roedd nodwedd -config-mapped-progmem wedi'i hanalluogi'n awtomatig, nad oedd yn gwbl gywir. Mae'r nodwedd const-data-in-config-mapped-progmem bellach wedi'i hanalluogi'n llawn yn y sefyllfa hon.
- Newidiadau DFP i gael mynediad cywir i NVMCTRL (XC8-2848) Nid oedd y cod cychwyn amser rhedeg a ddefnyddir gan ddyfeisiau AVR64EA yn ystyried bod y gofrestr NVMCTRL o dan Amddiffyniad Newid Ffurfwedd (CCP) ac nid oedd yn gallu gosod yr IO SFR i'r dudalen a ddefnyddiwyd gan y nodwedd compiler const-data-in-config-mapped-progmem. Bydd newidiadau a wneir yn fersiwn AVR-Ex_DFP 2.2.55 yn caniatáu i'r cod cychwyn amser rhedeg ysgrifennu'n gywir i'r gofrestr hon.
- Newidiadau DFP i osgoi mapio fflach (XC8-2847) Mae gwaith datrys problem gyda'r nodwedd dyfais mapio fflach a adroddwyd yn yr AVR128DA28/32/48/64 Silicon Errata (DS80000882) wedi'i roi ar waith. Ni fydd y nodwedd compiler const-data-in-config-mapped-progmem yn cael ei gymhwyso yn ddiofyn ar gyfer dyfeisiau yr effeithir arnynt, a bydd y newid hwn yn ymddangos yn fersiwn AVR-Dx_DFP 2.2.160.
- Gwall adeiladu gyda sinhf neu coshf (XC8-2834) Arweiniodd ymdrechion i ddefnyddio ffwythiannau llyfrgell sinhf() neu coshf() at wall cyswllt, gan ddisgrifio cyfeiriad anniffiniedig. Mae'r ffwythiant coll y cyfeiriwyd ato bellach wedi'i gynnwys yn y dosbarthiad casglwr.
- Adeiladu gwallau gyda nopa (XC8-2833) Gan ddefnyddio'r briodwedd nopa gyda ffwythiant sydd wedi cael ei enw cyfosodwr wedi'i bennu gan ddefnyddio __asm__() ysgogwyd negeseuon gwall o'r cydosodwr. Nid yw'r cyfuniad hwn yn bosibl.
- Methiant ffwythiant amrywiol gyda dadleuon pwyntydd (XC8-2755, XC8-2731) Mae ffwythiannau gyda nifer amrywiol o ddadleuon yn disgwyl i awgrymiadau 24-bit (math __memx) gael eu pasio yn y rhestr dadl newidiol pan fo'r nodwedd const-data-in-progmem galluogi. Roedd dadleuon a oedd yn awgrymiadau i gof data yn cael eu trosglwyddo fel gwrthrychau 16-bit, gan achosi methiant cod pan gawsant eu darllen yn y pen draw. Pan fydd y nodwedd const-data-in-progmem wedi'i galluogi, mae pob dadl pwyntydd 16-did bellach yn cael ei throsi i awgrymiadau 24-did.
- ffwythiannau llyfrgell strtoxxx yn methu (XC8-2620) Pan alluogwyd nodwedd const-data-in-progmem, ni chafodd y paramedr endptr yn swyddogaethau llyfrgell strtoxxx ei ddiweddaru'n iawn ar gyfer dadleuon llinynnol ffynhonnell nad ydynt yng nghof y rhaglen.
- Rhybuddion ar gyfer castiau annilys (XC8-2612) Bydd y casglwr nawr yn cyhoeddi gwall os yw nodwedd const-in-progmem wedi'i galluogi a bod cyfeiriad llythrennol llinyn yn cael ei daflu'n benodol i'r gofod cyfeiriad data (gan ollwng y cymhwyster cyson), ar gyfer example, (uint8_t*) “Helo Fyd!” . Mae rhybudd yn broblem os gallai'r cyfeiriad fod yn annilys pan fydd pwyntydd data const yn cael ei fwrw'n benodol i ofod cyfeiriad data.
- Lleoli gwrthrychau cyson anghychwynnol (XC8-2408) Gwrthrychau anweddol ac anweddol const
nad oeddent yn cael eu gosod yng nghof rhaglen ar ddyfeisiau sy'n mapio'r cyfan neu ran o'u cof rhaglen i'r gofod cyfeiriad data. Ar gyfer y dyfeisiau hyn, mae gwrthrychau o'r fath bellach yn cael eu gosod yng nghof y rhaglen, gan wneud eu gweithrediad yn gyson â dyfeisiau eraill.
Fersiwn 2.39 (Datganiad Diogelwch Swyddogaethol)
Dim.
Fersiwn 2.36
Gwall wrth oedi (XC8-2774) Mân newidiadau yn y rhagosodiad Roedd optimeiddio modd rhad ac am ddim yn atal plygu mynegiadau operand yn gyson i'r oedi swyddogaethau adeiledig, gan arwain at eu trin fel rhai nad ydynt yn gyson a sbarduno'r gwall: __builtin_avr_delay_cycles yn disgwyl cyfanrif amser llunio cyson.
Fersiwn 2.35
- Dyraniad cyffiniol gan ddefnyddio __at (XC8-2653) Nid oedd dyraniad cyffiniol o leoedd gwrthrychau lluosog mewn adran â'r un enw a defnyddio __at() yn gweithio'n gywir. Am gynample:
const torgoch arr1[] __attribute__((adran(“.mysec”))) __at (0x500) = {0xAB, 0xCD}; const torgoch arr2[] __attribute__((adran(“.mysec”))) = {0xEF, 0xFE}; dylai fod wedi gosod arr2 yn syth ar ôl arr1 - Pennu cyfeiriadau cychwyn yr adrannau (XC8-2650) Roedd yr opsiwn -Wl,-section-start yn dawel yn methu â gosod adrannau yn y cyfeiriad cychwyn a enwebwyd. Mae'r mater hwn wedi'i ddatrys ar gyfer unrhyw adrannau a enwir yn arbennig; fodd bynnag, ni fydd yn gweithio ar gyfer unrhyw adrannau safonol, megis .text neu .bss, y mae'n rhaid eu gosod gan ddefnyddio opsiwn -Wl,-T. Cysylltiad yn damwain wrth ymlacio (XC8-2647) Pan alluogwyd yr optimeiddio -mrelax a bod adrannau cod neu ddata nad oeddent yn ffitio i'r cof oedd ar gael, chwalodd y cysylltydd. Nawr, mewn amgylchiadau o'r fath, mae negeseuon gwall yn cael eu cyhoeddi yn lle hynny.
- Dim wrth gefn (XC8-2646) Ni weithredwyd yr opsiwn dim wrth gefn yn gywir, ac ni chafodd ei ddogfennu. Gellir dewis hwn nawr i sicrhau na fydd y casglwr yn disgyn yn ôl i osodiad optimeiddio is os yw'r casglwr heb drwydded, ac yn lle hynny bydd yn cyhoeddi gwall.
- Optimeiddiadau cyflymder amhriodol (XC8-2637) Roedd optimeiddiadau tynnu gweithdrefnol yn cael eu galluogi wrth ddewis optimeiddiadau lefel 3 (-O3). Mae'r optimizations hyn yn lleihau maint cod ar draul cyflymder cod, felly ni ddylid bod wedi'u perfformio.
- Mynediad EEPROM gwael (XC8-2629) Ni weithiodd y drefn eeprom_read_block yn gywir ar ddyfeisiau Xmega pan alluogwyd yr opsiwn – mconst-data-in-progmem (sef y cyflwr rhagosodedig), gan olygu nad oedd cof EEPROM yn cael ei ddarllen yn gywir.
- Dyraniad cof annilys (XC8-2593, XC8-2651) Pan fydd yr opsiwn cysylltydd -Ttext neu -Tdata (ar gyfer cynampWedi pasio drwodd gan ddefnyddio opsiwn gyrrwr -Wl), diweddarwyd y tarddiad rhanbarth testun/data cyfatebol; fodd bynnag, ni addaswyd y cyfeiriad terfynol yn unol â hynny, a allai fod wedi arwain at y rhanbarth yn rhagori ar ystod cof y ddyfais darged.
- Cwymp gyda ffwythiant wedi'i or-briodoli (XC8-2580) Cwympodd y casglwr os datgenir ffwythiant gan ddefnyddio mwy nag un o'r nodweddion ymyriadol, signal neu nmi, ee, __attribute__((__signal__, __interrupt__)).
- Cod ymyrraeth ATtiny annilys (XC8-2465) Wrth adeiladu ar gyfer dyfeisiau ATtiny a bod yr optimeiddiadau wedi'u hanalluogi (-O0), mae'n bosibl bod swyddogaethau ymyrraeth wedi sbarduno operand allan o ystod
- Opsiynau nad ydynt yn cael eu trosglwyddo (XC8-2452) Wrth ddefnyddio'r opsiwn -Wl gydag opsiynau cysylltu lluosog, wedi'u gwahanu gan goma, nid oedd pob un o'r opsiynau cysylltu yn cael eu trosglwyddo i'r cysylltydd.
- Gwall wrth ddarllen cof rhaglen yn anuniongyrchol (XC8-2450) Mewn rhai achosion, cynhyrchodd y casglwr wall mewnol ( insn anadnabyddadwy ) wrth ddarllen gwerth dau beit o bwyntydd i gof rhaglen
Fersiwn 2.32
Ail fynediad i'r llyfrgell yn methu (XC8-2381) Mae'n bosibl bod galw fersiwn Windows o'r archifydd llyfrgell xc8-ar.exe yr eildro i gael mynediad i archif llyfrgell bresennol wedi methu â neges gwall methu â ailenwi.
Fersiwn 2.31
Methiannau casglwr anesboniadwy (XC8-2367) Wrth redeg ar lwyfannau Windows a oedd â chyfeiriadur dros dro'r system wedi'i osod i lwybr a oedd yn cynnwys dot '.' cymeriad, efallai bod y casglwr wedi methu â gweithredu.
Fersiwn 2.30
- Labeli byd-eang wedi'u camleoli ar ôl amlinellu (XC8-2299) Mae'n bosibl nad yw cod cydosod wedi'i ysgrifennu â llaw sy'n gosod labeli byd-eang o fewn dilyniannau cydosod sy'n cael eu ffactorio gan dynnu gweithdrefnol wedi'u hail-leoli'n gywir.
- Damwain ymlaciol (XC8-2287) Gallai defnyddio'r opsiwn -mrelax fod wedi achosi i'r cysylltydd chwalu pan geisiodd optimeiddiadau ymlacio naid gynffon ddileu cyfarwyddyd ret nad oedd ar ddiwedd adran.
- Cwymp wrth optimeiddio labeli fel gwerthoedd (XC8-2282) Cod gan ddefnyddio'r “Labels fel gwerthoedd” Gallai estyniad iaith GNU C fod wedi achosi i'r optimeiddiadau tynnu gweithdrefnol chwalu, gyda gwall atgyweiria ystod rhychwantau.
- Nid felly const (XC8-2271) Mae'r prototeipiau ar gyfer strstr() a swyddogaethau eraill o Nid yw bellach yn nodi'r cymhwyster ansafonol ar awgrymiadau llinynnol a ddychwelwyd pan fydd y nodwedd const -mconst-data-in- progmem wedi'i hanalluogi. Sylwch, gyda dyfeisiau avrxmega3 ac avrtiny, mae'r nodwedd hon wedi'i galluogi'n barhaol.
- Cychwynwyr coll (XC8-2269) Pan osodwyd mwy nag un newidyn mewn uned gyfieithu mewn adran (gan ddefnyddio __section neu __nodwedd__((adran)) ), a chafodd y newidyn cyntaf o'r fath ei gychwyn yn sero neu nid oedd ganddo gychwynnwr, dechreuwyr ar gyfer collwyd newidynnau eraill yn yr un uned gyfieithu a osodwyd yn yr un adran.
Fersiwn 2.29 (Datganiad Diogelwch Swyddogaethol)
Dim.
Fersiwn 2.20
- Gwall gyda gorchmynion hir (XC8-1983) Wrth ddefnyddio targed AVR, efallai y bydd y casglwr wedi stopio gyda ffeil heb ei ganfod, os oedd y llinell orchymyn yn fawr iawn ac yn cynnwys nodau arbennig fel dyfyniadau, slaes, ac ati.
- Adran rodata heb ei neilltuo (XC8-1920) Methodd y cysylltydd AVR â aseinio cof ar gyfer adrannau rodata arferol wrth adeiladu ar gyfer pensaernïaeth avrxmega3 ac avrtiny, gan gynhyrchu gwallau gorgyffwrdd cof o bosibl
Fersiwn 2.19 (Datganiad Diogelwch Swyddogaethol)
Dim.
Fersiwn 2.10
- Methiannau adleoli (XC8-1891) Y dyraniad ffit gorau oedd gadael 'tyllau' cof rhwng adrannau ar ôl ymlacio'r cysylltydd. Ar wahân i'r cof darnio, cynyddodd hyn y posibilrwydd o fethiannau adleoli cysylltwyr yn ymwneud â neidiau pc-perthynas neu alwadau'n mynd allan o ystod.
- Cyfarwyddiadau heb eu trawsnewid gan ymlacio (XC8-1889) Ni chafwyd ymlacio cysylltydd ar gyfer cyfarwyddiadau naid neu alwad y mae eu targedau yn dod yn gyraeddadwy os cânt eu llacio.
- Ar goll ymarferoldeb (XC8E-388) Sawl diffiniad o , megis clock_div_t a clock_prescale_set() , heb eu diffinio ar gyfer dyfeisiau, gan gynnwys yr ATmega324PB, ATmega328PB, ATtiny441, ac ATtiny841.
- Macros ar goll Mae'r macros rhagbrosesydd _XC8_MODE_, __XC8_VERSION, __XC , a __XC8 yn cael eu diffinio'n awtomatig gan y casglwr. Mae'r rhain ar gael nawr.
Fersiwn 2.05
- Gwall casglwr mewnol (XC8-1822) Wrth adeiladu o dan Windows, efallai bod gwall casglwr mewnol wedi'i gynhyrchu wrth optimeiddio cod.
- Heb ganfod gorlif RAM (XC8-1800, XC8-1796) Ni chanfuwyd rhaglenni a oedd yn fwy na'r RAM oedd ar gael gan y casglwr mewn rhai sefyllfaoedd, gan arwain at fethiant cod amser rhedeg.
- Cof fflach wedi'i hepgor (XC8-1792) Ar gyfer dyfeisiau avrxmega3 ac avrtiny, mae'n bosibl bod rhannau o'r cof fflach heb eu rhaglennu gan yr MPLAB X IDE.
- Methiant i weithredu'r brif bibell (XC8-1788) Mewn rhai sefyllfaoedd lle nad oedd newidynnau byd-eang wedi'u diffinio yn y rhaglen, ni adawodd y cod cychwyn amser rhedeg ac ni chyrhaeddwyd y prif() swyddogaeth byth.
- Gwybodaeth cof anghywir (XC8-1787) Ar gyfer dyfeisiau avrxmega3 ac avrtiny, roedd y rhaglen maint avr yn adrodd bod data darllen yn unig yn defnyddio RAM yn lle cof rhaglen.
- Darllen cof rhaglen anghywir (XC8-1783) Prosiectau a luniwyd ar gyfer dyfeisiau gyda chof rhaglen wedi'u mapio i'r gofod cyfeiriad data ac sy'n diffinio gwrthrychau gan ddefnyddio macro/nodwedd PROGMEM a allai fod wedi darllen y gwrthrychau hyn o'r cyfeiriad anghywir.
- Gwall mewnol gyda phriodweddau (XC8-1773) Digwyddodd gwall mewnol os diffiniwyd gwrthrychau pwyntydd gyda'r tocynnau __at() neu briodoledd() rhwng enw'r pwyntydd a'r math dadgyfeiriedig, ar gyfer e.e.ample, torgoch * __at(0x800150) cp; Rhoddir rhybudd nawr os deuir ar draws cod o'r fath.
- Methiant i weithredu'r brif bibell (XC8-1780, XC8-1767, XC8-1754) Gallai defnyddio newidynnau EEPROM neu ddiffinio ffiwsiau gan ddefnyddio'r pragma config fod wedi achosi cychwyniad data anghywir a/neu gloi gweithrediad rhaglen yn y cod cychwyn amser rhedeg, cyn cyrraedd y prif gyflenwad( ).
- Gwall ffiws gyda dyfeisiau bach (XC8-1778, XC8-1742) Roedd gan y dyfeisiau attiny4/5/9/10/20/40 hyd ffiws anghywir wedi'i nodi yn eu ffeiliau pennyn sy'n arwain at wallau cysylltydd wrth geisio adeiladu cod a oedd yn diffinio ffiwsiau .
- Nam segmentu (XC8-1777) Mae nam segmentu ysbeidiol wedi'i gywiro.
- Damwain cydosodwr (XC8-1761) Mae'n bosibl bod y cydosodwr avr-as wedi damwain pan gafodd y casglwr ei redeg o dan Ubuntu 18.
- Gwrthrychau heb eu clirio (XC8-1752) Mae'n bosibl na fyddai gwrthrychau storio sefydlog anghyfarwyddedig wedi'u clirio gan y cod cychwyn amser rhedeg.
- Manyleb dyfais sy'n gwrthdaro wedi'i hanwybyddu (XC8-1749) Nid oedd y casglwr yn cynhyrchu gwall pan ddefnyddiwyd opsiynau manyleb dyfeisiau lluosog ac yn nodi dyfeisiau gwahanol.
- Llygredd cof fesul domen (XC8-1748) Roedd y symbol __heap_start yn cael ei osod yn anghywir, gan arwain at y posibilrwydd y gallai newidynnau cyffredin gael eu llygru gan y domen.
- Gwall adleoli cysylltydd (XC8-1739) Mae'n bosibl bod gwall adleoli cysylltydd wedi'i allyrru pan oedd y cod yn cynnwys rjmp neu alwad ffôn gyda tharged union 4k beit i ffwrdd.
Fersiwn 2.00
Dim.
Materion Hysbys
Mae'r canlynol yn gyfyngiadau yng ngweithrediad y casglwr. Gall y rhain fod yn gyfyngiadau codio cyffredinol, neu wyriadau oddi wrth wybodaeth sydd yn llawlyfr y defnyddiwr. Y label(iau) mewn cromfachau yn y teitl yw adnabyddiaeth y mater hwnnw yn y gronfa ddata olrhain. Gall hyn fod o fudd os oes angen i chi gysylltu â chymorth. Mae'r eitemau hynny nad oes ganddynt labeli yn gyfyngiadau sy'n disgrifio modi operandi ac sy'n debygol o aros mewn grym yn barhaol.
Integreiddiad MPLAB X IDE
- Integreiddio MPLAB IDE Os yw Compiler i'w ddefnyddio o MPLAB IDE, yna rhaid i chi osod MPLAB IDE cyn gosod Compiler.
- Gwybodaeth dadfygio arae (XC8-3157) Nid yw'r wybodaeth dadfygio a gynhyrchir gan y casglwr yn cyfleu'n gywir y math o wrthrych ar gyfer araeau yn y gofod cyfeiriad __memx. Bydd hyn yn atal arsylwi'r gwrthrych mewn DRhA.
Cynhyrchu Cod
- Segfault ag opsiwn angorau adran (XC8-3045) Gallai rhaglen a ddiffiniodd ffwythiannau gyda rhestrau dadl newidiol ac sy'n defnyddio'r opsiwn -fsection-anchors fod wedi sbarduno gwall casglwr mewnol: Nam segmentu
- Gwybodaeth dadfygio allan o gysoni (XC8-2948) Pan fydd optimeiddiadau ymlacio cysylltydd yn crebachu cyfarwyddiadau (ar gyfer cynampgyda chyfarwyddiadau galwad i rcall), efallai na fydd mapiadau llinell ffynhonnell i gyfeiriad yn parhau i fod yn gyson pan fo mwy nag un gweithrediad crebachu yn digwydd mewn adran. Yn yr isod example, mae dwy alwad i foo sy'n dod i ben yn hamddenol i alwadau cymharol.
- Methiant dyrannu cof PA (XC8-2881) Wrth ddefnyddio'r optimizers tynnu gweithdrefnol, efallai y bydd y cysylltydd yn adrodd am wallau dyrannu cof pan fydd maint y cod yn agos at faint o gof rhaglen sydd ar gael ar y ddyfais, er y dylai'r rhaglen allu ffitio'r un sydd ar gael gofod.
- Ddim mor smart Smart-IO (XC8-2872) Bydd nodwedd smart-io y casglwr yn cynhyrchu cod dilys ond is-optimaidd ar gyfer y swyddogaeth snprintf os yw'r nodwedd const-data-in-progmem wedi'i hanalluogi neu os oes gan y ddyfais ei holl fflach wedi'i fapio i gof data.
- Hyd yn oed yn llai smart-IO (XC8-2869) Bydd nodwedd smart-io y casglwr yn cynhyrchu cod dilys ond is-optimaidd pan ddefnyddir yr opsiynau -flto a -fno-builtin.
- Lleoliad data darllen yn unig is-optimaidd (XC8-2849) Ar hyn o bryd nid yw'r cysylltydd yn ymwybodol o'r adrannau cof APPCODE ac APPDATA, na'r rhaniadau [Dim-]Darllen-Wrth-Ysgrifennu yn y map cof. O ganlyniad, mae siawns fach y gallai'r cysylltydd ddyrannu data darllen yn unig mewn maes cof anaddas. Mae'r siawns o ddata wedi'i gamleoli yn cynyddu os yw'r nodwedd const-data-in-progmem wedi'i galluogi, yn enwedig os yw'r nodwedd const-data-in-config-mapped-progmem hefyd wedi'i galluogi. Gellir analluogi'r nodweddion hyn os oes angen.
- Gorchymyn prosesu ffeil gwrthrych (XC8-2863) Gallai'r drefn y bydd ffeiliau gwrthrychau yn cael eu prosesu gan y cysylltydd fod yn wahanol ar sail y defnydd o optimeiddiadau tynnu gweithdrefnol (opsiwn -mpa). Byddai hyn ond yn effeithio ar god sy'n diffinio ffwythiannau gwan ar draws modiwlau lluosog.
- Gwall cysylltydd ag absoliwt (XC8-2777) Pan fydd gwrthrych wedi'i wneud yn absoliwt mewn cyfeiriad ar ddechrau RAM a gwrthrychau anghychwynnol wedi'u diffinio hefyd, mae'n bosibl y bydd gwall cysylltydd yn cael ei sbarduno.
- IDau deffro byr (XC8-2775) Ar gyfer dyfeisiau ATA5700/2, dim ond 0 did o led y caiff cofrestri PHID1/16 eu diffinio fel rhai 32 did o led, yn hytrach na XNUMX did o led.
- Chwalfa cysylltydd wrth ffonio symbol (XC8-2758) Mae'n bosibl y bydd y cysylltydd yn chwalu os defnyddir yr opsiwn gyrrwr -mrelax pan fydd y cod ffynhonnell yn galw symbol sydd wedi'i ddiffinio gan ddefnyddio'r opsiwn cysylltydd – Wl,–defsym.
- Cychwyn anghywir (XC8-2679) Mae anghysondeb rhwng lle mae'r gwerthoedd cychwynnol ar gyfer rhai gwrthrychau maint beit byd-eang/statig yn cael eu gosod mewn cof data a lle bydd y newidynnau ar gael ar amser rhedeg.
- Galwadau ffwythiant anuniongyrchol drwg (XC8-2628) Mewn rhai achosion, gallai galwadau ffwythiant a wneir trwy bwyntydd ffwythiant sydd wedi'u storio fel rhan o strwythur fethu.
- Mae strtof yn dychwelyd sero ar gyfer fflotiau hecsadegol (XC8-2626) Bydd swyddogaethau'r llyfrgell strtof() et al a scanf() et al, bob amser yn trosi rhif pwynt arnawf hecsadegol nad yw'n nodi esboniwr i sero. Am gynample: strtof("0x1", &endptr); yn dychwelyd y gwerth 0, nid 1.
- Negeseuon cynghorydd stac anghywir (XC8-2542, XC8-2541) Mewn rhai achosion, nid yw'r rhybudd gan gynghorydd y pentwr ynghylch dychwelyd neu stac amhenodol a ddefnyddir (o bosibl trwy ddefnyddio aloca()) yn cael ei ollwng.
- Methiant gyda chod ymyrraeth dyblyg (XC8-2421) Pan fo gan fwy nag un ffwythiant ymyrraeth yr un corff, efallai y bydd gan y casglwr allbwn un ffwythiant ymyriadol a'r llall. Bydd hyn yn arwain at gadw'r holl gofrestrau sydd wedi'u clobio â galwadau yn ddiangen, a bydd yr ymyriadau'n cael eu galluogi hyd yn oed cyn i epilog y triniwr ymyriadau presennol redeg, a allai arwain at fethiant y cod.
- Allbwn gwael gyda llwybr DFP annilys (XC8-2376) Os gweithredir y casglwr â llwybr DFP annilys a bod ffeil 'spec' yn bodoli ar gyfer y ddyfais a ddewiswyd, nid yw'r casglwr yn adrodd am y pecyn teulu dyfais sydd ar goll ac yn hytrach yn dewis y 'spec' ffeil, a allai wedyn arwain at allbwn annilys. Mae'n bosibl nad oedd y ffeiliau 'spec' yn gyfredol â'r DFPs a ddosbarthwyd ac fe'u bwriadwyd i'w defnyddio gyda phrofion casglwyr mewnol yn unig.
- Gorgyffwrdd cof heb ei ganfod (XC8-1966) Nid yw'r casglwr yn canfod gorgyffwrdd cof gwrthrychau a wnaed yn absoliwt mewn cyfeiriad (trwy __at()) a gwrthrychau eraill gan ddefnyddio'r manyleb __adran() ac sy'n gysylltiedig â'r un cyfeiriad.
- Gallai methu â swyddogaethau llyfrgell a __memx (XC8-1763) a elwir yn ffwythiannau arnofio libgcc gyda dadl yn y gofod cyfeiriad __memx fethu. Sylwch y gelwir arferion llyfrgell gan rai gweithredwyr C, felly, ar gyfer cynample, effeithir ar y cod canlynol: dychwelyd regFloatVar > memxFloatVar;
- Gweithredu libgcc cyfyngedig (AVRTC-731) Ar gyfer y cynhyrchion ATTiny4/5/9/10/20/40, mae gweithrediad safonol llyfrgell C / Math yn libgcc yn gyfyngedig iawn neu ddim yn bresennol.
- Cyfyngiadau cof rhaglen (AVRTC-732) Mae delweddau cof rhaglen y tu hwnt i 128 kb yn cael eu cefnogi gan y gadwyn offer; fodd bynnag, mae achosion hysbys o erthylu cysylltwyr heb ymlacio a heb neges gwall ddefnyddiol yn hytrach na chynhyrchu'r bonion swyddogaeth gofynnol pan ddefnyddir yr opsiwn -mrelax.
- Cyfyngiadau gofod enw (AVRTC-733) Cefnogir bylchau cyfeiriad a enwir gan y gadwyn offer, yn amodol ar y cyfyngiadau a grybwyllir yn yr adran canllaw defnyddiwr Cymwyswyr Math Arbennig.
- Parthau amser Mae'r mae swyddogaethau llyfrgell yn cymryd yn ganiataol GMT ac nid ydynt yn cefnogi parthau amser lleol, felly bydd localtime() yn dychwelyd yr un amser â gmtime() , ar gyfer example.
Dogfennau / Adnoddau
![]() |
MICROCHIP XC8 C Compiler Version 2.45 Nodiadau Rhyddhau ar gyfer AVR MCU [pdfCyfarwyddiadau AVR MCU, XC8 C, XC8 C Compiler Fersiwn 2.45 Nodiadau Rhyddhau ar gyfer AVR MCU, Compiler Fersiwn 2.45 Nodiadau Rhyddhau ar gyfer AVR MCU, Fersiwn 2.45 Nodiadau Rhyddhau ar gyfer AVR MCU, Nodiadau Rhyddhau ar gyfer AVR MCU, Nodiadau ar gyfer AVR MCU, AVR MCU |