MICROCHIP XC8 C Compiler Version 2.45 Release Notes para sa AVR MCU

Impormasyon sa Produkto
Ang MPLAB XC8 C Compiler usa ka software tool nga gigamit sa pag-target sa Microchip AVR device. Gidisenyo kini sa pag-compile sa C code ug pagmugna og executable files alang niini nga mga himan. Ang bersyon sa compiler nga gitumong niini nga manwal sa paggamit mao ang 2.45, nga adunay opisyal nga petsa sa pagtukod sa Agosto 18, 2023. Ang miaging bersyon mao ang 2.41, gitukod niadtong Pebrero 8, 2023. Ang compiler adunay usa ka Functional Safety Manual, nga naghatag og dugang nga impormasyon ug mga giya kung gamiton ang mga compiler sa MPLAB XC nga adunay magamit nga mga aplikasyon sa kaluwasan. Kini nga manwal gilakip sa pakete sa dokumentasyon kung nagpalit ka usa ka lisensya sa kaluwasan nga magamit. Gisuportahan sa MPLAB XC8 C Compiler ang tanan nga magamit nga 8-bit AVR MCU nga mga aparato sa panahon sa pagpagawas. Mahimo nimong i-refer ang avr_chipinfo.html file sa direktoryo sa doc sa compiler alang sa usa ka lista sa tanan nga gisuportahan nga mga aparato ug ang ilang mga setting sa gamay nga pag-configure. Adunay lainlaing mga edisyon sa MPLAB XC8 compiler nga magamit. Ang lisensyado (PRO) nga edisyon naghatag og mas taas nga lebel sa pag-optimize kumpara sa libre nga edisyon. Aron ma-aktibo ang compiler ingon usa ka lisensyado nga produkto, kinahanglan nimo nga mopalit usa ka yawe sa pagpaaktibo. Bisan pa, ang dili lisensyado nga bersyon mahimong magamit hangtod sa hangtod nga wala’y lisensya. Para sa functional nga mga aplikasyon sa kaluwasan, usa ka MPLAB XC8 Functional Safety compiler anaa. Nagkinahanglan kini og usa ka lisensya sa kaluwasan nga gipalit gikan sa Microchip alang sa pagpaaktibo. Kung ma-aktibo, ang tanan nga lebel sa pag-optimize ug mga bahin sa compiler mahimong magamit. Ang MPLAB XC Functional Safety Compiler nagsuporta usab sa Network Server License. Ang detalyado nga kasayuran bahin sa pag-install, pagpaaktibo, mga tipo sa lisensya, ug mga isyu sa paglalin makita sa dokumento sa Pag-install ug Paglilisensya sa MPLAB XC C Compiler (DS50002059).
Mga Instruksyon sa Paggamit sa Produkto
- Sa dili pa ipadagan ang software sa MPLAB XC8 C Compiler, basaha ang manwal sa paggamit alang sa importanteng impormasyon ug mga instruksiyon nga espesipiko sa pag-target sa mga device sa Microchip AVR.
- Kung gigamit nimo ang compiler para sa 8-bit nga PIC device, tan-awa ang MPLAB XC8 C Compiler Release Notes para sa PIC nga dokumento.
- Siguruha nga ang imong operating system nakatagbo sa mga kinahanglanon sa sistema alang sa pagpadagan sa compiler. Ang mga binary alang sa macOS gipirmahan sa code ug gi-notaryo. Ang MPLAB XC Network License Server anaa alang sa Microsoft Windows 10 pataas, Ubuntu 18.04 ug pataas, ug macOS 10.15 ug pataas. Timan-i nga ang MPLAB XC Network License Server wala gisulayan sa kini nga mga operating system.
- Ang MPLAB XC Network License Server mahimong ipadagan sa Virtual Machines sa gisuportahan nga OS gamit ang virtual machine license para sa network license (SW006021-VM). Ang tanan nga 32-bit nga bersyon sa MPLAB XC Network Server gihunong sugod sa bersyon 3.00.
- Aron ma-aktibo ang MPLAB XC8 C Compiler ingon usa ka lisensyado (PRO) nga produkto, pagpalit usa ka yawe sa pagpaaktibo. Maghatag kini og mas taas nga lebel sa pag-optimize kumpara sa libre nga bersyon. Bisan pa, ang dili lisensyado nga compiler mahimong maoperahan hangtod sa hangtod nga wala’y lisensya.
- Kung gigamit nimo ang MPLAB XC8 Functional Safety Compiler alang sa mga aplikasyon sa kaluwasan sa pagpaandar, kinahanglan kini nga ma-aktibo gamit ang usa ka lisensya sa kaluwasan sa pagpaandar nga gipalit gikan sa Microchip. Ang compiler dili molihok kung wala kini nga lisensya. Sa higayon nga ma-aktibo, mahimo nimong pilion ang bisan unsang lebel sa pag-optimize ug gamiton ang tanan nga mga bahin sa compiler. Ang Network Server License gisuportahan sa kini nga pagpagawas sa MPLAB XC Functional Safety Compiler.
- Para sa detalyadong instruksyon sa pag-instalar, pagpaaktibo, ug paglilisensya sa MPLAB XC8 C Compiler, tan-awa ang dokumento sa Pag-install ug Paglilisensya sa MPLAB XC C Compiler (DS50002059).
- Kung imong gipadagan ang compiler sa ilawom sa lisensya sa pagtimbang-timbang, makadawat ka usa ka pasidaan sa panahon sa pag-compile kung naa ka sa sulod sa 14 ka adlaw pagkahuman sa imong panahon sa pagtimbang. Ang parehas nga pasidaan gihatag kung naa ka sa sulod sa 14 ka adlaw pagkahuman sa imong suskrisyon sa HPA.
Tapos naview
Pasiuna
Kini nga pagpagawas sa Microchip MPLAB® XC8 C compiler adunay daghang mga bag-ong bahin, pag-ayo sa bug, ug suporta alang sa mga bag-ong aparato.
Petsa sa Pagtukod
Ang opisyal nga petsa sa pagtukod niini nga bersyon sa compiler mao ang 18 Agosto 2023.
Nauna nga Bersyon
Ang miaging MPLAB XC8 C compiler nga bersyon mao ang 2.41, gitukod kaniadtong 8 Pebrero, 2023.
Functional Safety Manual
Usa ka Functional Safety Manual alang sa MPLAB XC compiler anaa sa dokumentasyon nga pakete kung mopalit ka og functional safety license.
Mga Lisensya sa Component ug Bersyon
Ang MPLAB XC8 C Compiler para sa AVR MCUs nga mga himan gisulat ug giapod-apod ubos sa GNU General Public License (GPL) nga nagpasabot nga ang source code niini libre nga gipang-apod-apod ug magamit sa publiko. Ang source code alang sa mga himan ubos sa GNU GPL mahimong i-download nga bulag gikan sa Microchip's website. Mahimo nimong basahon ang GNU GPL sa file ginganlan nga nahimutang ang subdirectory sa imong install directory. Ang usa ka kinatibuk-ang paghisgot sa mga prinsipyo nga nagpahipi sa GPL mahimong makit-an dinhi. Suporta nga code nga gihatag alang sa header files, linker scripts, ug runtime library kay proprietary code ug dili sakop sa GPL. Kini nga compiler kay usa ka pagpatuman sa GCC version 5.4.0, binutils version 2.26, ug naggamit sa avr-libc version 2.0.0.
Mga Kinahanglanon sa Sistema
Ang MPLAB XC8 C compiler ug ang licensing software nga gigamit niini anaa alang sa lain-laing operating system, lakip ang 64-bit nga mga bersyon sa mosunod: Propesyonal nga mga edisyon sa Microsoft® Windows® 10, Ubuntu® 18.04, macOS® 13.2 (Ventura), ug Fedora 34. Ang mga binary para sa Windows gipirmahan sa code. Ang mga binary alang sa macOS gipirmahan sa code ug gi-notaryo. Ang MPLAB XC Network License Server anaa alang sa nagkalain-laing 64-bit operating system, lakip ang Microsoft Windows 10 ug pataas; Ubuntu 18.04 ug pataas; o macOS 10.15 ug pataas. Ang server mahimo usab nga modagan sa lain-laing mga operating system lakip ang Windows Server, Linux distributions, sama sa Oracle® Enterprise Linux® ug Red Hat® Enterprise Linux ingon man ang mga daan nga bersyon sa gisuportahan nga operating system. Bisan pa, ang MPLAB XC Network License Server wala gisulayan sa kini nga mga operating system. Ang MPLAB XC Network License Server mahimong ipadagan sa Virtual Machines sa gisuportahan nga OS gamit ang virtual machine license para sa network license (SW006021-VM). Ang tanan nga 32-bit nga bersyon sa MPLAB XC Network Server gihunong sugod sa bersyon 3.00.
Gisuportahan ang mga lalang
Gisuportahan sa kini nga compiler ang tanan nga magamit nga 8-bit AVR MCU nga mga aparato sa panahon sa pagpagawas. Tan-awa ang avr_chipinfo.html (sa doc directory sa compiler) para sa listahan sa tanang gisuportahan nga device. Kini nga mga file naglista usab sa mga setting sa pag-configure sa bit para sa matag aparato.
Mga Edisyon ug Pag-upgrade sa Lisensya
Ang MPLAB XC8 compiler mahimong ma-aktibo ingon usa ka lisensyado (PRO) o dili lisensyado (Libre) nga produkto. Kinahanglan ka nga mopalit usa ka yawe sa pagpaaktibo aron ma-lisensya ang imong compiler. Ang usa ka lisensya nagtugot alang sa usa ka mas taas nga lebel sa pag-optimize kumpara sa Libre nga produkto. Ang usa ka walay lisensya nga compiler mahimong operahan sa walay katapusan nga walay lisensya. Ang usa ka MPLAB XC8 Functional Safety compiler kinahanglan nga ma-aktibo sa usa ka lisensya sa kaluwasan nga gipalit gikan sa Microchip. Ang compiler dili molihok kung wala kini nga lisensya. Sa higayon nga ma-aktibo, mahimo nimong pilion ang bisan unsang lebel sa pag-optimize ug gamiton ang tanan nga mga bahin sa compiler. Kini nga pagpagawas sa MPLAB XC Functional Safety Compiler nagsuporta sa Network Server License. Tan-awa ang dokumento sa Pag-install ug Paglilisensya sa MPLAB XC C Compiler (DS50002059) alang sa kasayuran sa mga tipo sa lisensya ug pag-instalar sa compiler nga adunay lisensya.
Instalar ug Pagpaaktibo
Tan-awa usab ang Mga Isyu sa Paglalin ug Limitasyon nga mga seksyon alang sa importante nga impormasyon bahin sa pinakabag-o nga manager sa lisensya nga gilakip niini nga compiler. Kung naggamit sa MPLAB IDE, siguroha nga i-install ang pinakabag-o nga MPLAB X IDE nga bersyon 5.0 o mas ulahi sa dili pa i-install kini nga himan. Hunonga ang IDE sa dili pa i-install ang compiler. Pagdalagan ang .run (Linux) o .app (macOS) compiler installer application, eg XC8-1.00.11403-windows.exe ug sunda ang mga direksyon sa screen. Girekomenda ang default nga direktoryo sa pag-install. Kung naggamit ka sa Linux, kinahanglan nimo nga i-install ang compiler gamit ang usa ka terminal ug gikan sa usa ka root account. Pag-install gamit ang macOS account nga adunay mga pribilehiyo sa tagdumala. Ang pagpaaktibo karon gihimo nga gilain sa pag-instalar. Tan-awa ang dokumento License Manager para sa MPLAB® XC C Compiler (DS52059) para sa dugang impormasyon. Kung imong pilion ang pagpadagan sa compiler ubos sa lisensya sa pagtimbang-timbang, makadawat ka na karon og pasidaan sa panahon sa pag-compile kung naa ka sulod sa 14 ka adlaw sa pagtapos sa imong panahon sa pagtimbang-timbang. Ang parehas nga pasidaan gihatag kung naa ka sa sulod sa 14 ka adlaw pagkahuman sa imong suskrisyon sa HPA. Ang XC Network License Server kay lahi nga installer ug wala giapil sa single-user compiler installer. Ang XC License Manager karon nagsuporta sa roaming sa naglutaw nga mga lisensya sa network. Gipunting sa mga tiggamit sa mobile, kini nga bahin nagtugot sa usa ka naglutaw nga lisensya nga mawala sa network sa mubo nga panahon. Gamit kini nga bahin, mahimo nimong idiskonekta ang network ug gamiton gihapon ang imong MPLAB XC compiler. Tan-awa ang doc folder sa XCLM instalar alang sa dugang niini nga bahin. Ang MPLAB X IDE naglakip sa Licenses window (Tools > Licenses) para biswal nga madumala ang roaming.
Pagsulbad sa mga Isyu sa Pag-instalar
Kung makasinati ka og mga kalisud sa pag-instalar sa compiler ubos sa bisan unsang mga operating system sa Windows, sulayi ang mosunod nga mga sugyot.
- Pagdalagan ang pag-install ingon usa ka tagdumala.
- Ibutang ang mga permiso sa aplikasyon sa installer sa 'Full control'. (I-right-click ang file, pilia ang Properties, Security tab, pilia ang user, edit.)
- Ibutang ang mga permiso sa temp folder sa 'Full Control'.
Aron mahibal-an ang lokasyon sa temp folder, i-type ang% temp% sa Run command (Windows logo key + R). Kini mag-abli sa usa ka file explorer dialog nga nagpakita niana nga direktoryo ug magtugot kanimo sa pagtino sa dalan sa maong folder.
Dokumentasyon sa Compiler
Ang mga giya sa tiggamit sa compiler mahimong maablihan gikan sa HTML nga panid nga nagbukas sa imong browser kung gi-klik ang asul nga buton sa tabang sa dashboard sa MPLAB X IDE, ingon sa gipakita sa screenshot.
Kung nagtukod ka alang sa 8-bit nga mga target sa AVR, ang Giya sa Gumagamit sa MPLAB® XC8 C Compiler alang sa AVR® MCU adunay kasayuran bahin sa mga kapilian sa compiler ug mga bahin nga magamit sa kini nga arkitektura.
Suporta sa Kustomer
Mahimo kang mangutana sa ubang mga tiggamit niini nga produkto sa XC8 Forum. Gidawat sa Microchip ang mga taho sa bug, sugyot o komento bahin sa kini nga bersyon sa compiler. Palihug idirekta ang bisan unsang mga taho sa bug o mga hangyo sa feature pinaagi sa Support System.
Mga Update sa Dokumentasyon
Para sa on-line ug up-to-date nga mga bersyon sa MPLAB XC8 documentation, palihog bisitaha ang Microchip's Online Technical Documentation website.
Bag-o o gi-update nga dokumentasyon sa AVR niini nga pagpagawas:
Wala
- Ang AVR® GNU Toolchain sa MPLAB® XC8 Migration Guide naghulagway sa mga pagbag-o sa source code ug paghimo og mga opsyon nga mahimong gikinahanglan kung modesisyon ka nga mobalhin ug C-based nga proyekto gikan sa AVR 8-bit GNU Toolchain ngadto sa Microchip MPLAB XC8 C Compiler.
- Ang Microchip Unified Standard Library Reference Guide naghulagway sa pamatasan ug interface sa mga gimbuhaton nga gipiho sa Microchip Unified Standard Library, ingon man ang gituyo nga paggamit sa mga tipo sa librarya ug macros. Ang uban niini nga impormasyon kay kanhi anaa sa MPLAB® XC8 C Compiler User's Guide para sa AVR® MCU. Ang impormasyon sa librarya nga espesipiko sa device anaa gihapon niining giya sa compiler.
- Kung nagsugod ka pa sa 8-bit nga mga aparato ug ang MPLAB XC8 C Compiler, ang MPLAB® XC8 User's
- Giya alang sa Embedded Engineers - AVR® MCUs (DS50003108) adunay impormasyon sa pag-set up sa mga proyekto sa MPLAB X IDE ug pagsulat code alang sa imong unang MPLAB XC8 C nga proyekto. Kini nga giya giapod-apod na karon uban sa compiler.
- Ang Giya sa Gumagamit sa Hexmate gituyo alang niadtong nagpadagan sa Hexmate isip usa ka stand-alone nga aplikasyon.
Unsay Bag-o
Ang mosunod mao ang bag-ong AVR-target nga mga feature nga gisuportahan karon sa compiler. Ang numero sa bersyon sa mga subheadings nagpaila sa unang bersyon sa compiler nga mosuporta sa mga feature nga mosunod.
Bersyon 2.45
Universal license manager (XC8-3175, XCLM-224) Ang macOS nga bersyon sa license manager nga gigamit sa compiler kay unibersal na karon, nga nagtanyag ug lumad nga suporta para sa Intel- ug M1-based nga mga makina. Ang bersyon sa Linux sa manager sa lisensya karon nanginahanglan ug labing menus nga bersyon 2.25 sa glibc. Mac universal binaries (XC8-3168, XC8-2951) Ang compiler binary file para sa macOS kay unibersal na, nga nagtanyag ug lumad nga suporta para sa Intel- ug M1-based nga mga makina. Gipakunhod ang floating-point nga mga gidak-on sa librarya (XC8-3112, XC8-3071) Ang mga pag-ayo gihimo sa floating-point library functions, lakip ang sinf() pow(), sqrt(), expf(), log1fp(), ug nextafterf() , nga nakakita sa pagkunhod sa gidak-on sa code alang niini nga mga rutina. Ang suporta sa bag-ong device anaa na karon alang sa mosunod nga mga bahin sa AVR: AVR16EA28, AVR16EA32, AVR16EA48, AVR32EA28, AVR32EA32, AVR32EA48, AVR16EB14, AVR16EB20, AVR16EB28, ug AVR16EB32.
Bersyon 2.41
- Suporta sa bootrow (XC8-3053) Ang compiler mobutang sa sulod sa bisan unsang mga seksyon nga adunay .bootrow prefix sa address 0x860000 sa HEX file. Kini nga mga seksyon gigamit alang sa BOOTROW nga panumduman, nga gidisenyo alang sa pagtipig sa mga yawe ug uban pang luwas nga kasayuran nga kinahanglan ra nga ma-access sa usa ka bootloader.
- Redundant return elimination (XC8-3048) Ang compiler karon magwagtang sa sobra nga ret instructions sa mga function nga adunay tail jump kung gamiton ang custom linker scripts. Kini usa ka susama nga pag-optimize sa gihimo kaniadto, apan kini gihimo na karon sa tanan nga mga orphaned nga mga seksyon, bisan kung ang usa ka custom linker script gigamit ug ang labing maayo nga angay nga laraw sa alokasyon wala sa dula.
- Pagbag-o sa tipo sa oras (XC8-2982, 2932) Ang C99 nga standard nga tipo sa librarya, ang time_t giusab gikan sa usa ka taas nga taas hangtod sa usa ka dili pirmahan nga taas nga tipo, nga naghatag mga pag-uswag sa gidak-on sa code sa pipila nga mga gimbuhaton nga may kalabotan sa oras, sama sa mktime ().
- Bag-ong nop (XC8-2946, 2945) Ang macro NOP() gidugang sa . Kini nga macro nagsal-ot sa usa ka nop no-operation nga instruksyon ngadto sa output.
- Pag-update sa XCLM (XC8-2944) Ang tagdumala sa lisensya nga gigamit sa compiler na-update ug karon mas mosanong sa pagsusi sa mga detalye sa lisensya sa compiler.
- Trampolined calls (XC8-2760) Ang compiler makahimo na karon sa pag-ilis sa taas nga porma sa mga instruksyon sa tawag nga adunay mas mugbo nga relative nga mga tawag kung ang mga relatibong porma sa mga instruksiyon kasagarang wala sa sakup sa ilang destinasyon. Niini nga sitwasyon, ang compiler mosulay sa pag-ilis sa rcall nga mga instruksyon sa usa ka jmp call nga instruksyon nga 'trampoline' pagpatuman sa gikinahanglan nga adres, alang sa example:
Bersyon 2.40
- Ang suporta sa bag-ong device anaa na karon alang sa mosunod nga mga bahin sa AVR: AT90PWM3, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR64EA28, AVR64EA32, AVR64EA48, AVRXNUMXEAXNUMX, AVRXNUMXEAXNUMX.
- Mas maayo nga pamaagi abstraction Ang pamaagi abstraction (PA) optimization himan nga milambo aron ang code nga adunay usa ka function tawag pagtudlo (tawag/rcall) mahimong outline. Mahitabo lamang kini kung ang stack dili gamiton aron ipasa ang mga argumento o dili makakuha og pagbalik nga kantidad gikan sa function. Ang stack gigamit kung nagtawag sa usa ka function nga adunay usa ka variable nga lista sa argumento o kung nagtawag sa usa ka function nga nagkinahanglag daghang mga argumento kaysa adunay mga rehistro nga gitudlo alang niini nga katuyoan. Kini nga feature mahimong ma-disable gamit ang – mno-pa-outline-calls nga opsyon, o ang procedure abstraction mahimong hingpit nga ma-disable para sa object file ug function pinaagi sa paggamit sa -mno-pa-on-file -mno-pa-on-function, matag usa, o pinaagi sa paggamit sa nopa attribute (__nopa specifier) nga pilion uban sa mga function.
- Code coverage macro Ang compiler karon naghubit sa macro __CODECOV kung ang usa ka balido nga -mcodecov nga opsyon gitakda.
- Opsyon sa pagpareserba sa memorya Ang drayber sa xc8-cc modawat na sa -mreserve=space@start:end nga opsyon kon magtukod alang sa mga target sa AVR. Kini nga opsyon nagreserba sa espesipikong hanay sa panumduman sa data o programa sa memory space, nga nagpugong sa linker sa pagpopula sa code o mga butang niini nga dapit.
- Mas maalam nga IO Daghang mga pag-uswag ang nahimo sa mga gimbuhaton sa Smart IO, lakip ang mga kinatibuk-ang pag-tweak sa printf core code, nga nagtratar sa %n nga espesipiko sa pagkakabig ingon usa ka independente nga variant, nag-link sa mga rutina sa vararg pop kung gipangayo, gamit ang labi ka mubu nga mga tipo sa datos kung mahimo alang sa pagdumala. Ang mga argumento sa function sa IO, ug ang pag-factor sa komon nga code sa gilapdon sa kapatagan ug pagdumala sa katukma. Kini mahimong moresulta sa mahinungdanong code ug data savings, ingon man usab sa pagdugang sa execution speed sa IO.
Bersyon 2.39 (Functional Safety Release)
Lisensya sa Network Server Kini nga pagpagawas sa MPLAB XC8 Functional Safety Compiler nagsuporta sa Network Server License.
Bersyon 2.36
Wala.
Bersyon 2.35
- Ang Suporta sa bag-ong device anaa alang sa mosunod nga mga bahin sa AVR: ATTINY3224, ATTINY3226, ATTINY3227, AVR64DD14, AVR64DD20, AVR64DD28, ug AVR64DD32.
- Gipauswag nga pagbalhin sa konteksto Ang bag-ong -mcall-isr-prologues nga kapilian nagbag-o kung giunsa ang mga interrupt function nagtipig sa mga rehistro sa pagsulod ug kung giunsa ang mga rehistro gipasig-uli kung ang paghunong nga rutina matapos. Naglihok kini sa susama nga paagi sa -mcall-prologues nga kapilian, apan makaapekto lamang sa mga interrupt function (ISRs).
- Mas maayo pa nga pagbalhin sa konteksto Ang bag-ong -mgas-isr-prologues nga opsyon nagkontrolar sa context switch code nga namugna alang sa gagmay nga interrupt service routines. Kung ma-enable, kini nga bahin adunay assembler nga mag-scan sa ISR alang sa paggamit sa rehistro ug i-save lamang kini nga gigamit nga mga rehistro kung gikinahanglan.
- Ma-configure nga flash mapping Ang ubang mga device sa AVR DA ug AVR DB nga pamilya adunay SFR (eg FLMAP) nga nagtino kung asa nga 32k nga seksyon sa memorya sa programa ang ma-map sa data memory. Ang bag-o nga - mconst-data-in-config-mapped-progmem nga kapilian mahimong magamit aron ang linker ibutang ang tanan -kwalipikado nga datos sa usa ka 32k nga seksyon ug awtomatik nga magsugod sa may kalabutan nga SFR nga rehistro aron masiguro nga kini nga datos ma-map sa data memory space. , diin kini ma-access nga mas epektibo.
- Microchip Unified Standard Libraries Ang tanang MPLAB XC compiler mopaambit ug Microchip Unified Standard Library, nga anaa na karon niining pagpagawas sa MPLAB XC8. Ang Giya sa Gumagamit sa MPLAB® XC8 C Compiler para sa AVR® MCU wala na maglakip sa dokumentasyon alang niining mga sumbanan nga gimbuhaton. Kini nga impormasyon makita na sa Microchip Unified Standard Library Reference Guide. Timan-i nga ang pipila ka gamit nga gihubit kaniadto sa avr-libc dili na magamit. (Tan-awa ang gamit sa Library.)
- Ang Smart IO Isip kabahin sa bag-ong nahiusa nga mga librarya, ang mga function sa IO sa printf ug scanf nga mga pamilya kay custom-generated na sa matag build, base sa kung giunsa kini nga mga function gigamit sa programa. Kini makapakunhod pag-ayo sa mga kapanguhaan nga gigamit sa usa ka programa.
- Kapilian sa tabang sa Smart IO Kung mag-analisar sa mga tawag sa mga function sa smart IO (sama sa printf() o scanf() ang compiler dili kanunay makadeterminar gikan sa format nga string o makahinapos gikan sa mga argumento nga kadtong mga espesipiko sa pagkakabig nga gikinahanglan sa tawag. Kaniadto, ang compiler kanunay maghimo walay mga pangagpas ug pagsiguro nga ang fully functional IO functions nalambigit ngadto sa katapusan nga program image.Usa ka bag-ong -msmart-io-format=fmt nga opsyon ang gidugang aron ang compiler mapahibalo na hinuon sa user sa conversion specifiers nga gigamit sa smart IO mga function kansang paggamit dili klaro, nagpugong sa sobra ka taas nga mga rutina sa IO nga ma-link. (Tan-awa ang Smart-io-format Option para sa dugang nga mga detalye.)
- Pagbutang ug custom nga mga seksyon Kaniadto, ang -Wl,–section-start nga opsyon nagbutang lamang sa espesipikong seksyon sa gihangyo nga adres sa dihang ang linker script nag-define ug output nga seksyon nga adunay parehas nga ngalan. Kung dili kana mao ang kaso, ang seksyon gibutang sa usa ka adres nga gipili sa linker ug ang kapilian wala gibalewala. Karon ang kapilian pasidunggan alang sa tanan nga naandan nga mga seksyon, bisan kung ang script sa linker wala magpasabut sa seksyon. Hinumdumi, bisan pa, nga alang sa standard nga mga seksyon, ang ingon nga .text, .bss o .data , ang labing kaayo nga angay nga tighatag adunay hingpit nga pagkontrol sa ilang pagbutang, ug ang kapilian wala’y epekto. Gamita ang -Wl,-Tsection=addr nga opsyon, ingon nga gihulagway sa giya sa tiggamit.
Bersyon 2.32
- Stack Guidance Anaa sa usa ka PRO compiler license, ang stack guidance feature sa compiler mahimong gamiton sa pagbanabana sa pinakataas nga giladmon sa bisan unsang stack nga gigamit sa usa ka programa. Naghimo ug nag-analisar kini sa call graph sa usa ka programa, nagtino sa paggamit sa stack sa matag function, ug naghimo og usa ka taho, diin ang giladmon sa mga stack nga gigamit sa programa mahimong mahibal-an. Kini nga bahin mahimo pinaagi sa -mchp-stack-usage command-line nga kapilian. Usa ka summary sa paggamit sa stack giimprinta human sa pagpatuman. Ang usa ka detalyado nga stack report anaa sa map file, nga mahimong hangyoon sa naandan nga paagi.
- Ang suporta sa bag-ong device anaa alang sa mosunod nga mga bahin sa AVR: ATTINY427, ATTINY424, ATTINY426, ATTINY827, ATTINY824, ATTINY826, AVR32DB32, AVR64DB48, AVR64DB64, AVR64DB28, AVR32DB28, AVR64DB32, AVR32DB48, AVRXNUMXDBXNUMX, AVRXNUMXDBXNUMX, AVRXNUMXDBXNUMX
- Ang suporta sa gibawi nga device dili na magamit alang sa mosunod nga mga bahin sa AVR: AVR16DA28, AVR16DA32 ug, AVR16DA48.
Bersyon 2.31
Wala.
Bersyon 2.30
- Bag-ong opsyon sa pagpugong sa data initialization Ang usa ka bag-ong -mno-data-init driver nga opsyon nagpugong sa pagsugod sa data ug ang paghawan sa bss nga mga seksyon. Naglihok kini pinaagi sa pagpugong sa output sa do_clear_bss nga mga simbolo sa mga file sa asembliya, nga sa baylo makapugong sa paglakip sa mga naandan sa linker.
- Gipauswag nga mga pag-optimize Daghang mga pagpaayo sa pag-optimize ang nahimo, lakip ang pagtangtang sa mga sobra nga instruksyon sa pagbalik, ang pagtangtang sa pipila nga mga paglukso pagkahuman sa usa ka instruksyon nga skip-if-bit-is, ug gipaayo nga abstraction sa pamaagi ug ang abilidad sa pag-uli niini nga proseso.
Ang dugang nga mga kapilian anaa na karon aron makontrol ang pipila niini nga mga pag-optimize, ilabi na ang -fsection-angkla, nga nagtugot sa pag-access sa mga static nga butang nga ipahigayon kalabot sa usa ka simbolo; -mpa- iterations=n , nga nagtugot sa gidaghanon sa mga pamaagi abstraction nga mga pag-usab nga mausab gikan sa default sa 2; ug, -mpa-callcost-shortcall, nga naghimo sa mas agresibo nga pamaagi abstraction, sa paglaum nga ang linker makarelaks sa taas nga mga tawag. Kining kataposang kapilian makadugang sa gidak-on sa code kon ang nagpahiping mga pangagpas dili matuman. - Ang suporta sa bag-ong device anaa alang sa mosunod nga mga bahin sa AVR: AVR16DA28, AVR16DA32, AVR16DA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64DB128, AVR28DA128DB32, AVR128DA48, AVR128DA64, AVRXNUMXDAXNUMX VRXNUMXDBXNUMX.
- Ang gibawi nga Suporta sa device dili na magamit alang sa mosunod nga mga bahin sa AVR: ATA5272, ATA5790, ATA5790N, ATA5791, ATA5795, ATA6285, ATA6286, ATA6612C, ATA6613C, ATA6614Q, ATA6616Q, ATA6617ATA664251, ATAXNUMXQ
Bersyon 2.29 (Functional Safety Release)
- Header file para sa compiler built-in Aron masiguro nga ang compiler makauyon sa mga detalye sa pinulongan sama sa MISRA, ang , gi-update. Kini nga header naglangkob sa mga prototype alang sa tanan nga gitukod nga mga gimbuhaton, sama sa __builtin_avr_nop() ug __builtin_avr_delay_cycles() . Ang ubang mga built-in mahimong dili misunod sa MISRA; kini mahimong laktawan pinaagi sa pagdugang sa define __XC_STRICT_MISRA sa compiler command line. Ang mga built-in ug ang ilang mga deklarasyon gi-update aron magamit ang mga tipo nga adunay gibag-on nga gilapdon.
Bersyon 2.20
- Ang suporta sa bag-ong device nga Suporta anaa alang sa mosunod nga mga bahin sa AVR: ATTINY1624, ATTINY1626, ug ATTINY1627.
- Mas maayo nga best fit allocation Ang best fit allocator (BFA) sa compiler gipauswag aron ang mga seksyon ma-alokar sa usa ka han-ay nga nagtugot sa mas maayo nga pag-optimize. Gisuportahan na karon sa BFA ang gihinganlan nga mga address space ug mas maayo nga pagdumala sa data initialization.
- Gipauswag nga pamaagi sa abstraction Ang pamaagi sa abstraction optimizations gihimo na karon sa daghang mga han-ay sa code. Ang nangaging mga sitwasyon diin kini nga pag-optimize mahimo nga adunay dugang nga gidak-on sa code natubag pinaagi sa paghimo sa optimization code nga nahibal-an ang proseso sa pagkolekta sa basura sa linker.
- Kawala sa AVR Assembler Ang AVR Assembler wala na apil niini nga distribution.
Bersyon 2.19 (Functional Safety Release)
Wala.
Bersyon 2.10
- Pagsakop sa Kodigo Kini nga pagpagawas naglakip sa usa ka bahin sa pagsakup sa kodigo nga nagpadali sa pag-analisar sa gidak-on diin ang source code sa proyekto napatuman. Gamita ang opsyon -mcodecov=ram aron mahimo kini. Pagkahuman sa pagpatuman sa programa sa imong hardware, ang kasayuran sa pagsakup sa code makolekta sa aparato, ug mahimo kini ibalhin ug ipakita sa MPLAB X IDE pinaagi sa usa ka plugin sa pagsakup sa code. Tan-awa ang dokumentasyon sa IDE para makuha ang impormasyon bahin niini nga plugin.
Ang #pragma nocodecov mahimong gamiton aron dili iapil ang sunod nga mga gimbuhaton gikan sa pagtuki sa coverage. Labing maayo nga ang pragma kinahanglan idugang sa sinugdanan sa file aron dili maapil ang tibuuk nga file gikan sa pag-analisar sa sakup. Sa laing bahin, ang __attribute__((nocodecov)) mahimong gamiton aron dili iapil ang usa ka espesipikong gimbuhaton gikan sa coverage analyzis. - Mga file sa paghulagway sa device Usa ka bag-ong file sa device nga gitawag og avr_chipinfo.html nahimutang sa docs directory sa compiler distribution. Kini nga file naglista sa tanang mga himan nga gisuportahan sa compiler. Pag-klik sa usa ka ngalan sa aparato, ug kini magbukas sa usa ka panid nga nagpakita sa tanan nga gitugotan nga pag-configure nga bit setting / mga pares sa kantidad alang sa kana nga aparato, nga adunay examples.
- Procedural abstraction Ang procedural abstraction optimizations, nga mopuli sa komon nga mga bloke sa assembly code nga adunay mga tawag sa usa ka gikuha nga kopya sa maong block, gidugang ngadto sa compiler. Gihimo kini sa usa ka seperate nga aplikasyon, nga awtomatiko nga gisangpit sa compiler kung nagpili sa lebel 2, 3 o s nga pag-optimize. Kini nga mga pag-optimize makapakunhod sa gidak-on sa code, apan mahimo nilang makunhuran ang katulin sa pagpatuman ug pagka-debugability sa code. Ang abstraction sa pamaagi mahimong ma-disable sa mas taas nga lebel sa pag-optimize gamit ang opsyon -mno-pa, o mahimong ma-enable sa ubos nga lebel sa optimization (sumala sa imong lisensya) pinaagi sa paggamit -mpa. Mahimo kining ma-disable para sa usa ka object file gamit ang -mno-pa-on-file=filengalan , o disabled alang sa usa ka function pinaagi sa paggamit -mno-pa-on- function=function. Sulod sa imong source code, ang abstraction sa pamaagi mahimong ma-disable para sa usa ka function pinaagi sa paggamit sa __attribute__((nopa)) uban sa definition sa function, o pinaagi sa paggamit sa __nopa, nga molapad ngadto sa __attribute__((nopa,noinline)) ug sa ingon makapugong sa function inlining nga mahitabo. ug adunay abstraction sa inlined code.
- Suporta sa lock bit sa pragma Ang #pragma config magamit na aron itakda ang AVR lock bits ingon man ang ubang mga config bits. Susiha ang avr_chipinfo.html nga payl (gihisgotan sa ibabaw) para sa setting/value pairs nga gamiton niini nga pragma.
- Bag-ong device nga suporta Suporta anaa alang sa mosunod nga mga bahin: AVR28DA128, AVR64DA128, AVR32DA128, ug AVR48DA128.
Bersyon 2.05
- Dugang nga mga piraso alang sa imong salapi Ang macOS nga bersyon niini nga compiler ug manager sa lisensya usa na ka 64-bit nga aplikasyon. Kini makasiguro nga ang compiler mag-instalar ug modagan nga walay mga pasidaan sa bag-o nga mga bersyon sa macOS.
- Const objects sa program memory Ang compiler mahimo na nga magbutang sa const-qualified nga mga butang sa program Flash memory, kay sa ibutang kini sa RAM. Ang compiler giusab aron ang const-qualified nga global data matipigan sa program flash memory ug kini nga data mahimong direkta ug dili direkta nga ma-access gamit ang angay nga program-memory instructions. Kini nga bag-ong bahin gipalihok pinaagi sa default apan mahimong ma-disable gamit ang -mno-const-data-in-progmem nga kapilian. Alang sa avrxmega3 ug avrtiny nga mga arkitektura, kini nga bahin wala kinahanglana ug kanunay nga disabled, tungod kay ang memorya sa programa gimapa ngadto sa data address space alang niini nga mga himan.
- Ang standard alang sa libre nga Unlicensed (Libre) nga mga bersyon niini nga compiler karon nagtugot sa mga pag-optimize hangtod sa ug lakip ang lebel 2. Kini magtugot sa usa ka susama, bisan dili parehas, nga output sa kung unsa ang posible kaniadto gamit ang usa ka Standard nga lisensya.
- Welcome AVRASM2 Ang AVRASM2 assembler para sa 8-bit nga mga himan naapil na sa XC8 compiler installer. Kini nga assembler wala gigamit sa XC8 compiler, apan magamit alang sa mga proyekto nga gibase sa sinulat sa kamot nga gigikanan sa asembliya.
- Bag-ong suporta sa device Ang Suporta anaa alang sa mosunod nga mga bahin: ATMEGA1608, ATMEGA1609, ATMEGA808, ug ATMEGA809.
Bersyon 2.00
- Top-level Driver Usa ka bag-ong drayber, nga gitawag xc8-cc, karon naglingkod ibabaw sa kanhi avr-gcc driver ug sa xc8 driver, ug kini makatawag sa angay nga compiler base sa pagpili sa target device. Gidawat sa kini nga drayber ang mga kapilian nga istilo sa GCC, nga gihubad o gipasa sa compiler nga gipatuman. Gitugotan sa kini nga drayber ang usa ka parehas nga hugpong sa mga kapilian nga adunay parehas nga mga semantiko nga magamit sa bisan unsang target sa AVR o PIC ug sa ingon mao ang girekomenda nga paagi aron ma-invoke ang compiler. Kung gikinahanglan, ang daan nga drayber sa avr-gcc mahimong direktang tawagan gamit ang daan nga estilo nga mga kapilian nga gidawat niini sa mga naunang bersyon sa compiler.
- Common C Interface Kini nga compiler mahimo na nga mouyon sa MPLAB Common C Interface, nga nagtugot sa source code nga mas dali nga ma-port sa tanang MPLAB XC compiler. Ang -mext=cci nga opsyon naghangyo niini nga feature, nga makapahimo sa alternatibong syntax alang sa daghang mga extension sa pinulongan.
- Bag-ong drayber sa librarian Ang bag-ong drayber sa librarian gipahimutang sa ibabaw sa miaging librarian sa PIC ug sa librarian sa AVR avr-ar. Kini nga drayber modawat sa GCC-archiver-style nga mga opsyon, nga gihubad o gipasa ngadto sa librarian nga gipatuman. Gitugotan sa bag-ong drayber ang parehas nga hugpong sa mga kapilian nga adunay parehas nga mga semantiko nga magamit sa paghimo o pagmaniobra sa bisan unsang PIC o AVR nga file sa librarya ug sa ingon mao ang girekomenda nga paagi sa pagtawag sa librarian. Kung gikinahanglan alang sa legacy nga mga proyekto, ang miaging librarian mahimong direkta nga tawagan gamit ang daan nga estilo nga mga kapilian nga gidawat niini sa naunang mga bersyon sa compiler.
Mga Isyu sa Paglalin
Ang mosunod mao ang mga bahin nga karon gidumala sa lahi nga paagi sa compiler. Kini nga mga pagbag-o mahimong magkinahanglan ug pagbag-o sa imong gigikanan nga code kung ang pag-port code sa kini nga bersyon sa compiler. Ang numero sa bersyon sa mga subheadings nagpaila sa unang bersyon sa compiler nga mosuporta sa mga kausaban nga mosunod.
Bersyon 2.45
Wala.
Bersyon 2.41
Ang dili tukma nga mga function sa fma gikuha (XC8-2913) Ang C99 standard library ( ) wala mag-compute og multiply-add nga walay kinutuban nga katukma sa usa ka rounding, apan nag-ipon hinuon og mga sayop sa rounding sa matag operasyon. Kini nga mga gimbuhaton gikuha gikan sa gihatag nga librarya.
Bersyon 2.40
Wala.
Bersyon 2.39 (Functional Safety Release)
Wala.
Bersyon 2.36
Wala.
Bersyon 2.35
- Pagdumala sa string-to nga mga base (XC8-2420) Aron maseguro ang pagkamakanunayon sa ubang mga XC compiler, ang XC8 string-to functions, sama sa strtol() ug uban pa, dili na mosulay sa pag-convert sa input string kon ang base nga espesipiko mas dako pa sa 36 ug sa baylo ibutang . Ang sumbanan sa C wala magtino sa pamatasan sa mga gimbuhaton kung kini nga sukaranan nga kantidad nalapas.
- Dili angay nga pag-optimize sa katulin Ang mga pamaagi sa abstraction nga pag-optimize gipalihok kung nagpili sa lebel 3 nga pag-optimize (-O3). Kini nga mga pag-optimize nagpamenos sa gidak-on sa code sa gasto sa katulin sa code, mao nga dili unta mahimo. Ang mga proyekto nga naggamit niini nga lebel sa pag-optimize mahimong makakita og mga kalainan sa gidak-on sa code ug sa katulin sa pagpatuman kung gitukod uban niini nga pagpagawas.
- Functionality sa library Ang code alang sa kadaghanan sa standard C library functions karon gikan sa Microchip's Unified Standard Library, nga mahimong magpakita ug lain-laing kinaiya sa pipila ka mga kahimtang kon itandi sa gihatag sa kanhi avr-libc library. Kay exampSa ato pa, dili na kinahanglan nga mag-link sa lprintf_flt library (-lprintf_flt option) aron ma-on ang gi-format nga suporta sa IO para sa mga espesipiko sa float-format. Ang maalamon nga mga feature sa IO sa Microchip Unified Standard Library naghimo niini nga opsyon nga sobra. Dugang pa, ang paggamit sa _P suffixed routines para sa string ug memory functions (eg strcpy_P() etc..) nga naglihok sa const strings sa sh dili na kinahanglan. Ang standard nga C routines (eg strcpy() mutrabaho sa husto sa ingon nga data kung ang const-data-in-program-memory nga feature gipagana.
Bersyon 2.32
Wala.
Bersyon 2.31
Wala.
Bersyon 2.30
Wala.
Bersyon 2.29 (Functional Safety Release)
Wala.
Bersyon 2.2
Giusab nga layout sa DFP Ang compiler karon nag-asumir og lain nga layout nga gigamit sa mga DFP (Device Family Packs). Kini magpasabot nga ang usa ka mas karaan nga DFP mahimong dili magamit sa kini nga pagpagawas, ug ang mga tigulang nga compiler dili makagamit sa labing bag-ong mga DFP.
Bersyon 2.19 (Functional Safety Release)
Wala.
Bersyon 2.10
Wala
Bersyon 2.05
Const objects sa program memory Timan-i nga ang default, const-qualified nga mga butang ibutang ug ma-access sa program memory (sama sa gihulagway dinhi). Makaapektar kini sa gidak-on ug katulin sa pagpatuman sa imong proyekto, apan kinahanglan nga makunhuran ang paggamit sa RAM. Kini nga bahin mahimong ma-disable, kung gikinahanglan, gamit ang -mno-const-data-in-progmem nga kapilian.
Bersyon 2.00
- Configuration fuses Ang mga configuration fuse sa device mahimo nang maprograma gamit ang config pragma nga gisundan sa setting-value pairs aron itakda ang fuse state, eg #pragma config WDTON = SET #pragma config BODLEVEL = BODLEVEL_4V3
- Absolute nga mga butang ug mga gimbuhaton Ang mga butang ug mga gimbuhaton mahimo na nga ibutang sa piho nga adres sa memorya gamit ang CCI __at(address) specifier, alang sa example:
- #apil
int foobar __at(0x800100);
char __at(0x250) getID(int offset) { … }
Ang argumento niini nga espesipiko kinahanglan nga usa ka kanunay nga nagrepresentar sa adres diin ang unang byte o instruksyon ibutang. Ang mga adres sa RAM gipakita pinaagi sa paggamit sa usa ka offset nga 0x800000. I-enable ang CCI sa paggamit niini nga feature.
- #apil
- Bag-ong interrupt function syntax Gidawat na karon sa compiler ang CCI __interrupt(num) specifier aron ipakita nga ang C functions mga interrupt handler. Ang espesipiko mokuha ug interrupt nga numero, pananglitanample: #apil walay __interrupt(SPI_STC_vect_num) spi_Isr(walay) { … }
Giayo nga mga Isyu
Ang mosunod mao ang mga pagkorihir nga gihimo ngadto sa compiler. Mahimong ayohon niini ang mga bug sa nahimo nga code o usbon ang operasyon sa compiler sa gituyo o gitakda sa giya sa tiggamit. Ang numero sa bersyon sa mga subheading nagpaila sa unang bersyon sa compiler nga adunay mga pag-ayo alang sa mga isyu nga nagsunod. Ang (mga) bracket nga label sa titulo mao ang pag-ila sa isyu sa database sa pagsubay. Mahimong mapuslanon kini kung kinahanglan nimo nga kontakon ang suporta.
Timan-i nga ang pipila ka mga isyu nga espesipiko sa device gitul-id sa Device Family Pack (DFP) nga nalangkit sa device. Tan-awa ang MPLAB Pack Manager alang sa impormasyon sa mga pagbag-o nga gihimo sa mga DFP ug sa pag-download sa pinakabag-o nga mga pakete.
Bersyon 2.45
- Ang kapakyasan sa lisensya sa pag-roaming (XCLM-235) Ang mga lisensya sa pag-roaming napakyas sa pagtrabaho sa husto sa mga platform sa Linux gamit ang mga bersyon sa glibc pagkahuman sa 2.28.
- Internal nga sayop nga adunay mga arrays sa mga istruktura (XC8-3069) Sa diha nga ang multi-dimensional array nga mga miyembro sa usa ka istruktura giproseso, ang address space qualifier dili husto nga gipakaylap ngadto sa array. Misangpot kini sa mismatch sa address space qualifier information ug internal compiler error. Gitul-id na kini nga sitwasyon.
- Dili maayo nga pagsulat ngadto sa wala pa nasugdan nga mga sapa (ML-353, XC8-3100) Kung ang standard nga output/error streams dili klaro nga gi-setup gamit ang FDEV_SETUP_STREAM o _init_stdout/_init_stderr , ang pagsulay sa pagsulat niini miresulta sa dili matino nga kinaiya. Naapektuhan usab niini ang pagsulat gikan sa mga function sa stdlib, sama sa perror(). Ang bisan unsang pagsulat niini nga mga sapa sa wala pa kini masugdan dili na tagdon.
- Dili suportadong modifier (XC8-2505) Ang avr-libc library wala nagsuporta sa * modifier sa printf-style nga mga espesipiko sa pagkakabig, alang sa exampug “%.*f”. Kini karon gisuportahan sa pagpaila sa Microchip Unified Standard Library.
- Multiple uninitialized warnings (XC8-2409) Ang compiler nag-issue og daghang parehas nga pasidaan nga mga mensahe sa dihang makasugat og const array nga wala gisugdan. Kausa ra unta ipagawas ang mensahe, nga mao na karon ang kahimtang kung mahitabo kini nga sitwasyon.
Bersyon 2.41
- Ang mga isyu sa Dongle sa Ventura (XC8-3088) Ang mga Dongle nga gigamit sa pag-lisensya sa compiler mahimong dili maayo nga nabasa sa macOS Ventura host, nga miresulta sa mga kapakyasan sa paglilisensya. Ang mga pagbag-o sa tagdumala sa lisensya sa XCLM nagtul-id niini nga isyu.
- Sayop nga timailhan sa alokasyon sa panumduman (XC8-2925) Pagsulay sa paggahin og SIZE_MAX bytes (o usa ka bili nga duol niini) sa panumduman gamit ang standard library memory management functions (malloc() et al) nga gihangyo kon gamiton ang yano nga dynamic memory allocation nga pagpatuman. Ang usa ka NULL pointer ibalik na karon ug ang errno gibutang sa ENOMEM sa ingon nga mga sitwasyon.
- Ang dili tukma nga fma function gikuha (XC8-2913) Ang C99 standard library fma() -family functions ( ) wala mag-compute og multiply-add nga walay kinutuban nga katukma sa usa ka rounding, apan nag-ipon hinuon og mga sayop sa rounding sa matag operasyon. Kini nga mga gimbuhaton gikuha gikan sa gihatag nga librarya.
- Dili maayo nga pagdumala sa string conversion (XC8-2921, XC8-2652) Kung ang 'subject sequence' para sa conversion pinaagi sa strtod() naglangkob sa daw usa ka floating-point nga numero sa exponential format ug adunay wala damha nga karakter human sa e/E karakter, unya kung diin gihatag ang endptr, gihatagan kini usa ka adres nga nagpunting sa karakter pagkahuman sa , samtang kini kinahanglan nga nagpunting sa e//E nga karakter mismo, tungod kay wala kana nakabig. Kay example, strtod("100exx", & ep) kinahanglan ibalik ang 100.00 ug itakda ang ep aron itudlo ang "exx" nga bahin sa string, samtang ang function nagbalik sa husto nga kantidad apan nagtakda sa bahin nga "xx" sa string.
Bersyon 2.40
- Kalmado ra kaayo (XC8-2876) Kung gigamit ang kapilian nga -mrelax, ang compiler wala magbahin sa pipila ka mga seksyon nga magkauban, nga miresulta sa dili kaayo maayo nga mga gidak-on sa code. Mahimong nahitabo kini sa code nga naggamit sa bag-ong mga librarya sa MUSL o adunay huyang nga mga simbolo.
- Mapping feature dili disabled sama sa gipahayag sa warning (XC8-2875) Ang const-data-in-config-mapped-progmem feature kay nagsalig sa const-data-in-progmem feature nga gipagana. Kung ang const-data-in-config-mapped-progmem nga bahin dayag nga gipagana gamit ang opsyon ug ang const-data-in-progmem nga bahin gi-disable, ang link nga lakang napakyas, bisan pa sa usa ka pasidaan nga mensahe nga nag-ingon nga ang const-data-in Ang -config-mapped-progmem nga bahin awtomatik nga na-disable, nga dili hingpit nga husto. Ang const-data-in-config-mapped-progmem nga bahin karon bug-os nga gi-disable niini nga sitwasyon.
- Ang DFP nagbag-o aron ma-access sa husto ang NVMCTRL (XC8-2848) Ang runtime startup code nga gigamit sa AVR64EA nga mga device wala magtagad nga ang NVMCTRL register ubos sa Configuration Change Protection (CCP) ug wala makahimo sa pag-set sa IO SFR sa panid nga gigamit. pinaagi sa const-data-in-config-mapped-progmem compiler feature. Ang mga pagbag-o nga gihimo sa AVR-Ex_DFP nga bersyon 2.2.55 magtugot sa runtime startup code sa hustong pagsulat niini nga rehistro.
- Ang DFP nagbag-o aron malikayan ang flash mapping (XC8-2847) Usa ka solusyon alang sa problema sa feature sa flash-mapping device nga gitaho sa AVR128DA28/32/48/64 Silicon Errata (DS80000882) gipatuman. Ang const-data-in-config-mapped-progmem compiler feature dili gamiton nga default para sa mga naapektuhan nga device, ug kini nga kausaban makita sa AVR-Dx_DFP version 2.2.160.
- Paghimo og sayop gamit ang sinhf o coshf (XC8-2834) Ang mga pagsulay sa paggamit sa sinhf() o coshf() library functions miresulta sa usa ka link error, nga naghulagway sa usa ka undefined reference. Ang nawala nga function nga gitumong gilakip na karon sa pag-apod-apod sa compiler.
- Paghimo og mga sayop gamit ang nopa (XC8-2833) Ang paggamit sa nopa attribute nga adunay function nga adunay iyang assembler name nga espesipiko gamit ang __asm__() nag-trigger sa mga mensahe sa error gikan sa assembler. Kini nga kombinasyon dili mahimo.
- Variadic function failure uban sa pointer arguments (XC8-2755, XC8-2731) Functions with a variable number of arguments expect 24-bit (__memx type) pointers nga ipasa sa variable argument list kung ang const-data-in-progmem feature kay gipaandar. Ang mga argumento nga nagpunting sa panumduman sa datos gipasa isip 16-bit nga mga butang, hinungdan sa pagkapakyas sa code sa diha nga kini sa katapusan gibasa. Kung ang const-data-in-progmem nga bahin gipalihok, ang tanan nga 16-bit pointer argumento karon nakabig ngadto sa 24-bit pointer.
- strtoxxx library functions failing (XC8-2620) Kung ang const-data-in-progmem nga feature gi-enable, ang endptr parameter sa strtoxxx library functions wala gi-update sa husto alang sa source string arguments nga wala sa memorya sa programa.
- Mga alerto alang sa dili balido nga mga cast (XC8-2612) Ang compiler mopagawas na karon og sayop kon ang const-in-progmem nga feature ma-enable ug ang adres sa usa ka string literal nga dayag nga isalibay ngadto sa data address space (ihulog ang const qualfiier), kay example, (uint8_t *) “Hello World!” . Usa ka pasidaan ang isyu kung ang adres mahimong dili balido kung ang usa ka const data pointer tin-aw nga gihulog sa wanang sa address sa datos.
- Pagbutang sa wala pa nasugdan nga const objects (XC8-2408) Uninitialized ug const volatile objects const
wala ibutang sa memorya sa programa sa mga device nga nagmapa sa tanan o bahin sa ilang memorya sa programa ngadto sa data address space. Alang sa kini nga mga aparato, ang ingon nga mga butang gibutang karon sa memorya sa programa, nga naghimo sa ilang operasyon nga nahiuyon sa ubang mga aparato.
Bersyon 2.39 (Functional Safety Release)
Wala.
Bersyon 2.36
Sayop sa dihang nalangan (XC8-2774) Ang ginagmay nga mga kausaban sa default Free mode optimizations nakapugong sa kanunay nga pagpilo sa mga ekspresyon sa operand ngadto sa pagkalangan sa built-in nga mga function, nga miresulta sa ilang pagtratar nga dili kanunay ug nagpahinabo sa sayop: __builtin_avr_delay_cycles nagpaabot sa usa ka compile time integer makanunayon.
Bersyon 2.35
- Ang nagkadugtong nga alokasyon gamit ang __at (XC8-2653) Ang nagkadugtong nga alokasyon sa daghang mga butang mga lugar sa usa ka seksyon nga adunay parehas nga ngalan ug ang paggamit sa __at() wala molihok sa husto. Kay example:
const char arr1[] __attribute__((seksyon(“.mysec”))) __at (0x500) = {0xAB, 0xCD}; const char arr2[] __attribute__((seksyon(“.mysec”))) = {0xEF, 0xFE}; kinahanglan ibutang ang arr2 dayon pagkahuman sa arr1 - Pagtino sa mga adres sa pagsugod sa seksyon (XC8-2650) Ang -Wl,–ang opsyon sa pagsugod sa seksyon hilom nga napakyas sa pagbutang sa mga seksyon sa nominado nga adres sa pagsugod. Kini nga isyu giayo alang sa bisan unsang naandan nga ginganlan nga mga seksyon; bisan pa, dili kini magamit sa bisan unsang sukaranan nga mga seksyon, sama sa .text o .bss, nga kinahanglan ibutang gamit ang usa ka -Wl,-T nga kapilian. Ang linker nahagsa sa dihang nagpahayahay (XC8-2647) Sa dihang ang -mrelax optimization gipalihok ug adunay mga code o mga seksyon sa datos nga dili mohaum sa anaa nga memorya, ang linker nahagsa. Karon, sa ingon nga kahimtang, ang mga mensahe sa sayup gi-isyu sa baylo.
- Walay no-falling-back (XC8-2646) Ang –nofallback nga opsyon wala gipatuman sa husto, ni nadokumento. Mahimo na kini nga mapili aron masiguro nga ang compiler dili mahibalik sa usa ka ubos nga setting sa pag-optimize kung ang compiler dili lisensyado, ug sa baylo mag-isyu sa usa ka sayup.
- Ang dili angay nga pag-optimize sa katulin (XC8-2637) Ang mga pamaagi sa abstraction nga pag-optimize gipalihok kung nagpili sa lebel 3 nga pag-optimize (-O3). Kini nga mga pag-optimize nagpamenos sa gidak-on sa code sa gasto sa katulin sa code, mao nga dili unta mahimo.
- Dili maayo nga pag-access sa EEPROM (XC8-2629) Ang eeprom_read_block nga rutina wala molihok sa husto sa Xmega nga mga aparato kung ang - mconst-data-in-progmem nga kapilian gipalihok (nga mao ang default nga estado), nga miresulta sa EEPROM nga memorya nga wala mabasa sa husto.
- Dili balido nga alokasyon sa panumduman (XC8-2593, XC8-2651) Kung ang -Ttext o -Tdata linker nga kapilian (alang sa exampAng gipaagi gamit ang usa ka -Wl driver nga kapilian) gitino, ang katugbang nga teksto/data nga gigikanan sa rehiyon gi-update; bisan pa, ang katapusan nga adres wala gipasibo sumala niana, nga mahimo’g hinungdan sa rehiyon nga milabaw sa gilay-on sa memorya sa target nga aparato.
- Pag-crash nga adunay over-attributed function (XC8-2580) Ang compiler nahagsa kung ang usa ka function gideklarar gamit ang labaw sa usa sa interrupt, signal o nmi attributes, pananglitan, __attribute__((__signal__, __interrupt__)).
- Dili balido nga ATtiny interrupt code (XC8-2465) Kung nagtukod alang sa ATtiny nga mga aparato ug ang mga pag-optimize na-disable (-O0), ang mga pag-andar sa interrupt mahimo nga nagpahinabog operand nga wala sa sakup.
- Ang mga opsyon nga wala gipasa (XC8-2452) Kung gigamit ang -Wl nga kapilian nga adunay daghang, comma-separated linker nga mga kapilian, dili tanan nga linker nga mga opsyon gipasa ngadto sa linker.
- Sayop sa dili direkta nga pagbasa sa memorya sa programa (XC8-2450) Sa pipila ka mga higayon, ang compiler nagpatunghag usa ka internal nga sayop (dili mailhan nga insn ) sa dihang nagbasa sa usa ka duha ka byte nga bili gikan sa usa ka pointer ngadto sa memorya sa programa
Bersyon 2.32
Ang ikaduhang pag-access sa librarya napakyas (XC8-2381) Ang paggamit sa Windows nga bersyon sa xc8-ar.exe library archiver sa ikaduhang higayon aron maka-access sa usa ka kasamtangan nga librarya nga archive mahimong napakyas sa usa ka dili makahimo sa pag-usab sa ngalan sa mensahe sa sayop.
Bersyon 2.31
Wala masaysay nga mga kapakyasan sa compiler (XC8-2367) Kung nagdagan sa mga plataporma sa Windows nga adunay temporaryo nga direktoryo sa sistema nga gibutang sa usa ka agianan nga adunay usa ka tulbok '.' kinaiya, ang compiler mahimong napakyas sa pagpatuman.
Bersyon 2.30
- Ang global nga mga label nasaypan human sa outlining (XC8-2299) Hand-written assembly code nga nagbutang sa global nga mga label sulod sa assembly sequences nga gi-factor out pinaagi sa procedural abstraction mahimong dili hustong na-reposition.
- Usa ka makapahayahay nga pagkahagsa (XC8-2287) Ang paggamit sa -mrelax nga kapilian mahimong hinungdan nga ang linker nahagsa sa dihang ang tail jump relaxation optimizations misulay sa pagtangtang sa ret nga instruksiyon nga wala sa katapusan sa usa ka seksyon.
- Ang pag-crash sa dihang nag-optimize sa mga label isip values (XC8-2282) Code gamit ang "Labels as values" nga extension sa GNU C nga lengguwahe mahimong hinungdan sa pag-crash sa mga pamaagi sa abstraction optimizations, nga adunay usa ka range span fixup error.
- Dili kaayo const (XC8-2271) Ang mga prototype alang sa strstr() ug uban pang mga gimbuhaton gikan sa dili na ipiho ang dili standard nga kwalipikasyon sa gibalik nga mga string pointer kung ang const -mconst-data-in-progmem nga bahin gi-disable. Timan-i nga sa avrxmega3 ug avrtiny nga mga himan, kini nga bahin permanente nga gipalihok.
- Nawala nga mga initializer (XC8-2269) Kung labaw pa sa usa ka variable sa usa ka yunit sa paghubad ang gibutang sa usa ka seksyon (gamit ang __section o __attribute__((seksyon)) ), ug ang una sa ingon nga variable zero ang gi-initialize o wala’y initializer, Ang ubang mga variable sa parehas nga yunit sa paghubad nga gibutang sa parehas nga seksyon nawala.
Bersyon 2.29 (Functional Safety Release)
Wala.
Bersyon 2.20
- Sayop sa taas nga mga sugo (XC8-1983) Sa diha nga naggamit sa usa ka target sa AVR, ang compiler mahimong mihunong sa usa ka file nga wala makit-an nga sayup, kung ang command line dako kaayo ug adunay mga espesyal nga karakter sama sa mga kinutlo, backslashes, ug uban pa.
- Wala ma-assign nga rodata nga seksyon (XC8-1920) Ang AVR linker napakyas sa pag-assign sa memorya alang sa custom rodata nga mga seksyon sa dihang nagtukod alang sa avrxmega3 ug avrtiny nga mga arkitektura, nga posibleng makahimo og memory overlap errors
Bersyon 2.19 (Functional Safety Release)
Wala.
Bersyon 2.10
- Mga kapakyasan sa relokasyon (XC8-1891) Ang labing angay nga tigtagana mao ang pagbilin ug 'mga buho' sa panumduman taliwala sa mga seksyon human sa pagrelaks sa linker. Gawas sa pagkabahin sa panumduman, gipadako niini ang posibilidad nga adunay mga kapakyasan sa pagbalhin sa linker nga may kalabotan sa mga paglukso sa paryente sa pc o mga tawag nga nawala sa sakup.
- Ang mga panudlo nga wala mabag-o pinaagi sa pagpahayahay (XC8-1889) Ang pagpahuway sa linker wala mahitabo alang sa paglukso o pagtawag sa mga panudlo kansang mga target mahimong makab-ot kung relaks.
- Nawala functionality (XC8E-388) Daghang mga kahulugan gikan sa , sama sa clock_div_t ug clock_prescale_set() , wala gihubit alang sa mga himan, lakip ang ATmega324PB, ATmega328PB, ATtiny441, ug ATtiny841.
- Nawala nga mga macro Ang preprocessor macros _XC8_MODE_, __XC8_VERSION, __XC , ug __XC8 awtomatikong gihubit sa compiler. Kini anaa na karon.
Bersyon 2.05
- Sayop sa internal compiler (XC8-1822) Kung nagtukod sa ilawom sa Windows, usa ka sayup sa internal compiler mahimo’g nahimo kung gi-optimize ang code.
- Ang pag-awas sa RAM wala makita (XC8-1800, XC8-1796) Ang mga programa nga milapas sa anaa nga RAM wala mamatikdi sa compiler sa pipila ka mga sitwasyon, nga miresulta sa pagkapakyas sa runtime code.
- Giwala ang flash memory (XC8-1792) Para sa avrxmega3 ug avrtiny nga mga himan, ang mga bahin sa flash memory mahimong wala maprograma sa MPLAB X IDE.
- Ang pagkapakyas sa pag-execute sa main (XC8-1788) Sa pipila ka mga sitwasyon diin ang programa walay global variables nga gitakda, ang runtime startup code wala mogawas ug ang main() function wala gayud maabot.
- Sayop nga impormasyon sa panumduman (XC8-1787) Alang sa avrxmega3 ug avrtiny nga mga himan, ang avr-size nga programa nagreport nga ang read-only nga data nag-usik sa RAM imbes nga memorya sa programa.
- Sayop nga memorya sa programa nga gibasa (XC8-1783) Ang mga proyekto nga gihugpong para sa mga himan nga adunay memorya sa programa nga gimapa ngadto sa data address space ug nga naghubit sa mga butang gamit ang PROGMEM macro/attribute tingali nakabasa niini nga mga butang gikan sa sayop nga adres.
- Internal nga sayup nga adunay mga hiyas (XC8-1773) Usa ka internal nga sayup ang nahitabo kung imong gihubit ang mga butang sa pointer nga adunay __at() o attribute() nga mga token taliwala sa ngalan sa pointer ug dereference nga tipo, alang sa example, char * __at(0x800150) cp; Usa ka pahimangno ang gi-isyu karon kung ang ingon nga code nasugatan.
- Ang pagkapakyas sa pag-execute sa main (XC8-1780, XC8-1767, XC8-1754) Ang paggamit sa EEPROM variables o pagtino sa mga fuse gamit ang config pragma mahimong hinungdan sa sayop nga data initialization ug/o lock up program execution sa runtime startup code, sa wala pa maabot ang main( ).
- Ang sayup sa fuse nga adunay gagmay nga mga aparato (XC8-1778, XC8-1742) Ang attiny4/5/9/10/20/40 nga mga aparato adunay sayup nga gitas-on sa fuse nga gipiho sa ilang mga file sa header nga nagdala sa mga sayup sa linker sa pagsulay sa paghimo sa code nga nagtino sa mga fuse .
- Segmentation fault (XC8-1777) Usa ka intermittent segmentation fault natul-id.
- Assembler crash (XC8-1761) Ang avr-as assembler tingali nahagsa sa dihang ang compiler gipadagan ubos sa Ubuntu 18.
- Mga butang nga wala ma-clear (XC8-1752) Ang wala ma-initialized nga static nga gidugayon sa pagtipig nga mga butang mahimong wala ma-clear sa runtime startup code.
- Ang nagkasumpaki nga espesipikasyon sa aparato gibalewala (XC8-1749) Ang tigkompiler wala makamugna og sayup kung daghang mga kapilian sa pagtino sa aparato ang gigamit ug nagpakita sa lainlaing mga aparato.
- Memory corruption by heap (XC8-1748) Ang __heap_start nga simbolo kay sayop nga gibutang, nga miresulta sa posibilidad sa ordinaryo nga variables nga madaot sa heap.
- Ang linker relocation error (XC8-1739) Usa ka linker relocation error mahimo nga gipagawas kung ang code adunay usa ka rjmp o rcall nga adunay target nga eksaktong 4k bytes ang gilay-on.
Bersyon 2.00
Wala.
Nahibal-an nga mga Isyu
Ang mosunod mao ang mga limitasyon sa operasyon sa compiler. Kini mahimo nga mga kinatibuk-ang pagdili sa coding, o mga pagtipas gikan sa impormasyon nga anaa sa manwal sa tiggamit. Ang (mga) bracket nga label sa titulo mao ang pag-ila sa isyu sa database sa pagsubay. Mahimo kini nga kaayohan kung kinahanglan nimo nga kontakon ang suporta. Kadtong mga butang nga walay mga etiketa maoy mga limitasyon nga naghulagway sa modi operandi ug nga lagmit magpabilin nga epektibo.
Paghiusa sa MPLAB X IDE
- Paghiusa sa MPLAB IDE Kung ang Compiler gamiton gikan sa MPLAB IDE, kinahanglan nimo nga i-install ang MPLAB IDE sa dili pa i-install ang Compiler.
- Array debug nga impormasyon (XC8-3157) Ang debug nga impormasyon nga gihimo sa compiler dili tukma nga nagpahayag sa matang sa butang alang sa mga arrays sa __memx address space. Kini magpugong sa obserbasyon sa butang sa usa ka IDE.
Pagmugna sa Kodigo
- Ang Segfault nga adunay kapilian nga mga seksyon-angkla (XC8-3045) Programa nga nagtino sa mga gimbuhaton nga adunay mga lista sa variable nga argumento ug nga naggamit sa kapilian nga -fsection-anchors mahimo’g nagpahinabog sayup sa internal nga compiler: Pagkasayup sa segmentation
- Ang impormasyon sa pag-debug wala ma-sync (XC8-2948) Sa diha nga ang linker relaxation optimizations mokunhod sa mga instruksyon (alang sa exampAng tawag sa mga instruksyon sa pagtawag), ang linya sa tinubdan aron matubag ang mga mapping mahimong dili magpabilin sa pag-sync kung adunay labaw sa usa ka pag-urong nga operasyon nga nahitabo sa usa ka seksyon. Sa ubos nga exampOo, adunay duha ka tawag sa foo nga natapos nga relaks sa mga paryente nga tawag.
- PA memory allocation failure (XC8-2881) Kung gigamit ang mga pamaagi sa abstraction optimizers, ang linker mahimong magreport sa mga sayup sa alokasyon sa panumduman kung ang gidak-on sa code hapit sa kantidad sa magamit nga memorya sa programa sa aparato, bisan kung ang programa kinahanglan nga mohaum sa magamit. luna.
- Dili kaayo smart Smart-IO (XC8-2872) Ang feature sa smart-io sa compiler makamugna og balido apan sub-optimal nga code alang sa snprintf function kung ang const-data-in-progmem nga feature na-disable o kung ang device adunay tanan niini flash nga gimapa sa data memory.
- Bisan ang dili kaayo maalamon nga Smart-IO (XC8-2869) Ang feature sa smart-io sa compiler makamugna og balido apan sub-optimal nga kodigo kung ang -flto ug -fno-builtin nga mga opsyon pareho nga gigamit.
- Suboptimal read-only data placement (XC8-2849) Ang linker sa pagkakaron wala mahibalo sa APPCODE ug APPDATA memory nga mga seksyon, ni sa [No-] Read-While-Write divisions sa memory map. Ingon usa ka sangputanan, adunay gamay nga higayon nga ang linker mahimong maggahin sa read-only nga datos sa usa ka dili angay nga lugar sa memorya. Ang kahigayonan sa nasayop nga mga datos modako kon ang const-data-in-progmem nga bahin ma-enable, ilabi na kon ang const-data-in-config-mapped-progmem nga feature gipagana usab. Kini nga mga bahin mahimong ma-disable kung gikinahanglan.
- Object file processing order (XC8-2863) Ang han-ay sa mga object file nga iproseso sa linker mahimong magkalahi base sa paggamit sa procedural abstraction optimizations (-mpa option). Makaapektar lang kini sa code nga naghubit sa huyang nga mga gimbuhaton sa daghang mga module.
- Ang linker error nga adunay absolute (XC8-2777) Sa diha nga ang usa ka butang gihimong absolute sa usa ka adres sa pagsugod sa RAM ug ang uninitialized nga mga butang gihubit usab, usa ka linker error mahimong ma-trigger.
- Mubo nga wake-up ID (XC8-2775) Alang sa ATA5700/2 nga mga himan, ang mga rehistro sa PHID0/1 gihubit lamang nga 16 ka bit ang gilapdon, kay sa 32 ka bit ang gilapdon.
- Ang linker nahagsa kon nagtawag og simbolo (XC8-2758) Ang linker mahimong ma-crash kon ang -mrelax driver nga opsyon gamiton kon ang source code motawag og simbolo nga gitakda gamit ang – Wl,–defsym linker option.
- Sayop nga pagsugod (XC8-2679) Adunay usa ka kalainan tali sa diin ang mga inisyal nga kantidad alang sa pipila nga mga butang nga adunay gidak-on nga global/static nga byte gibutang sa memorya sa datos ug kung diin ang mga variable ma-access sa oras sa pagdagan.
- Dili diretso nga tawag sa function (XC8-2628) Sa pipila ka mga higayon, ang mga tawag sa function nga gihimo pinaagi sa usa ka pointer sa function nga gitipigan isip bahin sa usa ka istruktura mahimong mapakyas.
- Ang strtof nagbalik ug zero para sa hexadecimal floats (XC8-2626) Ang library naglihok strtof() et al ug scanf() et al, kanunay mag-convert sa hexadecimal floating-point nga numero nga wala magtino sa exponent ngadto sa zero. Kay example: srtof("0x1", &endptr); ibalik ang kantidad nga 0, dili 1.
- Dili tukma nga stack advisor messaging (XC8-2542, XC8-2541) Sa pipila ka mga higayon, ang stack advisor nga pasidaan bahin sa recursion o dili matino nga stack nga gigamit (posible pinaagi sa paggamit sa alloca()) wala ipagawas.
- Kapakyasan sa duplicate interrupt code (XC8-2421) Diin labaw sa usa ka interrupt function adunay parehas nga lawas, ang compiler mahimong adunay output alang sa usa ka interrupt function nga motawag sa lain. Kini moresulta sa tanang call-clobbered nga mga rehistro nga ma-save nga wala kinahanglana, ug ang mga interrupt ma-enable bisan sa wala pa ang epilogue sa kasamtangan nga interrupt handler modagan, nga mahimong mosangpot sa code failure.
- Dili maayo nga output nga adunay dili balido nga DFP nga agianan (XC8-2376) Kung ang compiler gihangyo nga adunay dili balido nga DFP nga agianan ug adunay usa ka 'spec' file alang sa pinili nga device, ang compiler wala magreport sa nawala nga device nga family pack ug sa baylo nagpili sa 'spec' file, nga mahimong mosangpot sa dili balido nga output. Ang 'spec' nga mga file mahimong dili pinakabag-o sa gipang-apod-apod nga mga DFP ug gituyo alang sa paggamit sa internal nga compiler testing lamang.
- Memory overlap undetected (XC8-1966) Ang compiler wala makamatikod sa memory overlap sa mga butang nga gihimong hingpit sa usa ka adres (pinaagi sa __at()) ug uban pang mga butang gamit ang __section() specifier ug nga gisumpay sa samang adres.
- Ang kapakyasan sa library functions ug __memx (XC8-1763) Gitawag nga libgcc oat functions nga adunay argumento sa __memx address space mahimong mapakyas. Timan-i nga ang mga rutina sa librarya gitawag gikan sa pipila ka mga operator sa C, busa, alang sa example, apektado ang mosunod nga code: ibalik ang regFloatVar > memxFloatVar;
- Limitado nga pagpatuman sa libgcc (AVRTC-731) Alang sa mga produkto sa ATTiny4/5/9/10/20/40, ang sumbanan nga C / Math library nga pagpatuman sa libgcc limitado kaayo o wala.
- Mga limitasyon sa memorya sa programa (AVRTC-732) Ang mga hulagway sa memorya sa programa lapas sa 128 kb gisuportahan sa toolchain; bisan pa, adunay nahibal-an nga mga higayon nga ang linker nag-abort nga wala’y pagpahayahay ug wala’y makatabang nga mensahe sa sayup kaysa paghimo sa gikinahanglan nga function stubs kung gigamit ang kapilian nga -mrelax.
- Mga limitasyon sa name space (AVRTC-733) Gisuportahan sa toolchain ang ginganlan nga mga address space, ubos sa mga limitasyon nga gihisgutan sa seksyon sa giya sa user Special Type Qualifiers.
- Mga time zone Ang Ang mga gimbuhaton sa librarya nag-angkon sa GMT ug wala nagsuporta sa mga lokal nga time zone, busa ang localtime() mobalik sa samang oras sama sa gmtime() , alang sa example.
Mga Dokumento / Mga Kapanguhaan
![]() |
MICROCHIP XC8 C Compiler Version 2.45 Release Notes para sa AVR MCU [pdf] Mga instruksiyon AVR MCU, XC8 C, XC8 C Compiler Version 2.45 Release Notes para sa AVR MCU, Compiler Version 2.45 Release Notes para sa AVR MCU, Version 2.45 Release Notes para sa AVR MCU, Release Notes para sa AVR MCU, Notes para sa AVR MCU, AVR MCU |

