MICROCHIP MPLAB XC8 C Compiler Software 

MICROCHIP MPLAB XC8 C Compiler Software

KINI NGA DOKUMENTO NAGADUNAY IMPORTANTE NGA IMPORMASYON NGA MAY KAAYOHAN SA MPLAB XC8 C COMPILER KON MAG-TARGE SA MGA MICROCHIP AVR DEVICES.
PALIHOG BASAHA KINI SA DILI PA MADAGAN KINI NGA SOFTWARE. TAN-AWA ANG MPLAB XC8 C COMPILER RELEASE NOTES PARA SA PIC DOCUMENT KUNG GIGAMIT NIMO ANG COMPILER PARA SA 8-BIT PIC DEVICES.

Mga sulod itago

Tapos naview

Pasiuna

Kini nga pagpagawas sa Microchip MPLAB® XC8 C compiler adunay daghang mga bag-ong bahin, pag-ayo sa bug, ug suporta sa bag-ong aparato.

Petsa sa Pagtukod

Ang opisyal nga petsa sa pagtukod niini nga bersyon sa compiler mao ang 3 Hulyo 2022.

Nauna nga Bersyon

Ang miaging MPLAB XC8 C compiler version kay 2.39, usa ka functional safety compiler, gitukod niadtong 27 Enero 2022. Ang kanhing standard compiler kay version 2.36, natukod niadtong 27 Enero 2022.

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 gipang-apod-apod ubos sa GNU General Public License (GPL) nga nagpasabot nga ang source code niini libre nga ipanghatag 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; ug macOS 10.15.5. Ang mga binary alang sa Windows gipirmahan sa code. Ang mga binary para sa mac OShave gipirmahan sa code ug gi-notaryo.

Kung nagdagan ka usa ka server sa lisensya sa network, ang mga kompyuter lamang nga adunay mga operating system nga gisuportahan sa mga nag-compile ang mahimong magamit sa pag-host sa server sa lisensya. Sama sa xclm nga bersyon 2.0, ang network license server mahimong ma-install sa usa ka Microsoft Windows Server platform, apan ang lisensya server dili kinahanglan nga modagan sa usa ka server nga bersyon sa operating system.

Gisuportahan ang mga lalang

Gisuportahan sa kini nga compiler ang tanan nga 8-bit AVR MCU nga mga aparato nga nahibal-an sa panahon sa pagpagawas. Tan-awa (sa doc directory sa compiler) para sa lista sa tanang gisuportahan nga device. Kini fileIlista usab ang mga setting sa configuration bit para sa matag device.

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 dili lisensyado nga compiler mahimong operahan hangtod sa hangtod nga wala’y lisensya.

Ang usa ka MPLAB XC8 Functional Safety compiler kinahanglan nga ma-activate gamit ang usa ka functional safety license 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 .exe (Windows), .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 ebalwasyon, 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. 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 magbukas sa usa ka file explorer dialog nga nagpakita niana nga direktoryo ug motugot 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.

Dokumentasyon sa Compiler
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

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:

  • Pahibalo sa copyright sa MUSL
  • Pag-instalar ug Paglisensya sa MPLAB XC C Compiler (rebisyon M)
  • Giya sa Gumagamit sa MPLAB XC8 para sa mga Embedded Engineers – AVR MCUs (rebisyon A)
  • MPLAB XC8 C Compiler User!s Guide para sa AVR MCU (rebisyon F)
  • Microchip Unified Standard Library Reference Guide (rebisyon B)

Ang Microchip Unified Standard Library Reference Guide naghulagway sa pamatasan ug interface sa mga gimbuhaton nga gihubit sa Microchip Unified Standard Library, ingon man ang gituyo nga paggamit sa mga tipo sa librarya ug mga macro. Pipila niini nga impormasyon kay naa 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 lang sa 8-bit nga mga aparato ug ang MPLAB XC8 C Compiler, ang Giya sa Gumagamit sa MPLAB® XC8! alang sa mga Embedded Engineers - AVR® MCUs (DS50003108) adunay kasayuran sa pag-set up sa mga proyekto sa MPLAB X IDE ug code sa pagsulat para sa imong unang proyekto sa MPLAB XC8 C. Kini nga giya giapod-apod na karon uban sa compiler.

Ang Hamate User's Guide gilakip sa docs directory niini nga release. Kini nga giya gituyo alang niadtong nagpadagan sa Hamate 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 subheading nagpaila sa unang bersyon sa compiler nga mosuporta sa mga feature nga mosunod.

Bersyon 2.40

Bag-ong suporta sa device Anaa na ang suporta alang sa mosunod nga mga bahin sa AVR: AT90PWM3, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR64EA28, AVR64EA32EA, ug AVR64EA48EA.
Gipauswag nga abstraction sa pamaagi Ang procedural abstraction (PA) optimization tool gipauswag aron ang code nga adunay usa ka function call instruction ( call recall ) ) mahimong ma-outline. Mahitabo lamang kini kung ang stack wala gigamit 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 monk-pa-outline-calls nga opsyon, o ang procedure abstraction mahimong hingpit nga ma-disable para sa usa ka butang. file o function pinaagi sa paggamit sa -monk-pa-on-file ug -mo.-pa-on-function matag usa, o pinaagi sa paggamit sa nipa attribute ( nipa 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 kapilian gitakda.

Opsyon sa pagreserba sa memorya Ang xc8-cc nga drayber modawat na sa -mreserve=space@start: end option kung magtukod alang sa mga target sa AVR. Kini nga opsyon nagreserba sa espesipikong han-ay sa panumduman sa data o programa sa memorya nga luna, nga nagpugong sa linker sa pagpopula sa code o mga butang niining dapita.

Mas maalamon 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 nagtagad sa %n conversion specifier ingon usa ka independente nga variant, nag-link sa vararg pop nga mga rutina kung gipangayo, gamit ang mas mubu nga mga tipo sa datos kung mahimo alang sa pagdumala sa mga argumento sa function sa IO , ug pag-factor sa komon nga code sa gilapdon sa uma ug tukma nga pagdumala. Kini mahimong moresulta sa mahinungdanon nga 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

Bag-ong suporta sa device Ang suporta 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 gipahiuli 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 mga konteksto nga itch 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 himan sa AVR DA ug AVR DB nga pamilya adunay SFR (eg FLMAP) nga nagtino kung unsang 32k nga seksyon sa memorya sa programa ang ma-mapa sa data memory. Ang bag-o nga - mconst-data-in-config-mapped-proem nga kapilian mahimong magamit aron ang linker ibutang ang tanan nga cons qualified data 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 tanan nga MPLAB XC compiler magpaambit sa usa ka Microchip Unified Standard Library, nga magamit na karon sa kini nga pagpagawas sa MPLAB XC8. Ang MPLAB® XC8 C Compiler User's Guide/o AVR® MCU wala na naglakip sa dokumentasyon para niining mga standard function. 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 Librar):'. functionality…)

Smart IO Isip kabahin sa bag-ong nahiusa nga mga librarya, ang mga function sa IO sa print ug scan nga mga pamilya kay naandan na nga namugna 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.
Ang kapilian sa tabang sa Smart IO Kung mag-analisa sa mga tawag sa smart IO functions (sama sa printf () o scanf () ), ang compiler dili kanunay makadeterminar gikan sa format string o maka-infer gikan sa mga argumento niadtong mga conversion specifier nga gikinahanglan sa tawag. Kaniadto, ang compiler kanunay nga wala maghimo mga pangagpas ug pagsiguro nga ang fully functional nga mga function sa IO nalambigit sa katapusan nga imahe sa programa. Usa ka bag-o – msmart-io-format=fmt nga opsyon ang gidugang aron ang compiler mahibaw-an hinuon sa tiggamit sa conversion specifiers nga gigamit sa smart IO functions kansang paggamit dili klaro, nga makapugong sa sobra ka taas nga IO routines nga masumpay. (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 kung ang linker script naghubit sa usa ka 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. Matikdi, hinoon, nga alang sa standard nga mga seksyon, ingon nga . text,. bss o. data, ang labing angay nga tigtagana adunay hingpit nga pagkontrol sa ilang pagbutang, ug ang kapilian walay epekto. Gamita ang -Wl, -Tsection=add option, sama sa gihulagway sa user's guide.

Bersyon 2.32

Giya sa Stack Anaa sa usa ka lisensya sa PRO compiler, ang bahin sa paggiya sa stack sa compiler mahimong magamit aron mabanabana ang labing kalalim 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 mapa file, nga mahimong hangyoon sa naandang paagi.

Bag-ong device nga suporta Suporta anaa alang sa mosunod nga mga bahin sa AVR: ATTINY 427, ATTINY 424, ATTINY 426, ATTINY827, ATTINY824, ATTINY826, AVR32DB32, AVR64DB48, AVR64DB64, AVR64DB28, AVR32DB28, AVR64DB32, AVR32DB48DB ug AVRXNUMXDBXNUMX.

Gibawi nga suporta sa device nga Suporta 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-ini t driver nga opsyon nagpugong sa pagsugod sa data ug sa paghawan sa bss nga mga seksyon. Naglihok kini pinaagi sa pagpugong sa output sa do_ copy_ data ug d o_ clear_ bss nga mga simbolo sa asembliya files, 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 -f seksyon nga mga angkla, nga nagtugot sa pag-access sa mga static nga mga butang nga ipahigayon kalabot sa usa ka simbolo; -mpai derations=n, nga nagtugot sa gidaghanon sa mga pamaagi abstraction iteration nga mausab gikan sa default sa 2; ug, -mpa- call cost- shortcall, nga naghimo sa mas agresibo nga pamaagi sa 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.

Bag-ong suporta sa device Ang suporta anaa alang sa mosunod nga mga bahin sa AVR: AVR16DA28, AVR16DA32,
AVR16DA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR128DB28, AVR128DB32, AVR128DB48, ug AVR128DB64.

Gibawi nga Suporta sa device Dili na magamit ang suporta alang sa mosunod nga mga bahin sa AVR: ATA5272, ATA5790, ATA5790N, ATA5791, ATA5795, ATA6285, ATA6286, ATA6612C, ATA6613C, ATA6614Q, ATA6616C, ATA6617C, ug 664251.

Bersyon 2.29 (Functional Safety Release)

Ulohan file alang sa compiler built-in Aron masiguro nga ang compiler makauyon sa mga detalye sa pinulongan sama sa MISRA, ang ulohan file, nga awtomatikong gilakip sa , gi-update. Kini nga header naglangkob sa mga prototypes para sa tanang in-built function, sama sa _buil tin _avrnop () ug _buil tin_ avr delay_ cycles () . Ang ubang mga built-in mahimong dili misunod sa MISRA; kini mahimong laktawan pinaagi sa pagdugang sa define _Xe_ STRICT_ MISRA sa compiler command line. Ang mga built-in ug ang ilang mga deklarasyon gi-update aron magamit ang mga tipo nga gitakda nga gilapdon.

Bersyon 2.20

Bag-ong suporta sa device Ang suporta anaa alang sa mosunod nga mga bahin sa AVR: ATTINY1624, ATTINY1626, ug ATTINY1627.

Mas maayo nga labing angay nga alokasyon Ang labing maayo nga angay nga allocator (BFA) sa compiler gipaayo aron ang mga seksyon gigahin sa usa ka order 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 abstraction sa pamaagi Ang pamaagi sa abstraction optimization 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.

Ang pagkawala sa AVR Assembler Ang AVR Assembler wala na giapil niini nga pag-apod-apod.

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 pagtuki 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 mcodecov mahimong gamiton aron dili iapil ang sunod nga mga gimbuhaton gikan sa pagtuki sa coverage. Maayo nga ang pragma kinahanglan idugang sa sinugdanan sa file aron dili iapil ang tanan file gikan sa pagtuki sa coverage. Sa laing bahin, ang attribute ( (mcodecov) ) mahimong gamiton aron dili iapil ang usa ka piho nga function gikan sa coverage analysis.

Deskripsyon sa aparato files Usa ka bag-ong device file gitawag nga avr chipinfo. html nahimutang sa docs directory sa compiler distribution. Kini file naglista sa tanang device nga gisuportahan sa compiler. Pag-klik sa usa ka ngalan sa aparato, ug kini magbukas sa usa ka panid nga nagpakita sa tanan nga gitugot nga setting sa bit sa pag-configure / pares sa kantidad alang sa kana nga aparato, nga adunay examples.

abstraction sa pamaagi Ang pamaagi nga 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 bulag nga aplikasyon, nga awtomatik nga gihangyo sa compiler kung nagpili sa lebel 2, 3 ors optimizations. Kini nga mga pag-optimize makapakunhod sa gidak-on sa code, apan mahimo nilang makunhuran ang katulin sa pagpatuman ug pagka-debug 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 (ubos sa imong lisensya) pinaagi sa paggamit -mpa. Mahimong ma-disable kini alang sa usa ka butang 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 depinisyon sa function, o pinaagi sa paggamit sa _nopa, nga mopalapad sa attribute ((nopa, noinline)) ug sa ingon makapugong sa function inlining nga mahitabo. ug adunay abstraction sa inlined code.
I-lock ang gamay nga suporta sa pragma Ang #pragma config magamit na aron itakda ang AVR lock bits ingon man ang uban pang configuration bits. Susiha ang impormasyon sa avr chip. html file (gihisgot sa ibabaw) para sa setting/value pairs nga gamiton niini nga pragma.
Bag-ong suporta sa device Ang 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 sa kini nga compiler ug manager sa lisensya karon usa 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 nga mga butang sa panumduman sa programa Ang compiler mahimo na nga magbutang sa const-qualified nga mga butang sa programa nga Flash memory, kay sa ibutang kini sa RAM. Ang compiler giusab aron ang const-qualified global data matipigan sa program flash memory ug kini nga data mahimong direkta ug dili direkta nga ma-access gamit ang tukma 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.
Standard nga libre Ang dili lisensyado (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 kaniadto nga posible gamit ang usa ka Standard nga lisensya.
Welcome AVRASM2 Ang AVRASM2 assembler alang sa 8-bit nga mga himan gilakip na sa XC8 compiler installer. Kini nga assembler wala gigamit sa XC8 compiler, apan magamit alang sa mga proyekto base 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

Taas nga lebel nga Driver Usa ka bag-ong drayber, nga gitawag xc8-cc, karon naglingkod sa ibabaw sa miaging avr-gcc drayber ug ang xc8 drayber, 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.

Komon nga C Interface Kini nga compiler mahimo na nga mahiuyon 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 librarian driver Usa ka bag-ong drayber sa librarian ang gipahimutang sa ibabaw sa miaging PIC librarian ug ang AVR avr-ar librarian. 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 librarya sa PIC o AVR file ug mao kini ang girekomendar 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 og pagbag-o sa imong source 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 aron suportahan ang mga pagbag-o nga nagsunod.

Bersyon 2.40

Wala.

Bersyon 2.39 (Functional Safety Release)

Wala.

Bersyon 2.36

Wala.

Bersyon 2.35

Pagdumala sa string-to base (XCS-2420) Aron maseguro ang pagkamakanunayon sa ubang XC compiler, ang XC8 string-to functions, sama sa strtol () ug uban pa, dili na mosulay sa pag-convert sa input string kung ang base nga gipiho mas dako pa sa 36 ug itakda hinuon ang errno sa EINVAL. Ang sumbanan sa C wala magtino sa pamatasan sa mga gimbuhaton kung kini nga sukaranan nga kantidad nalapas.

Dili angay nga pag-optimize sa tulin Ang mga pamaagi sa abstraction nga pag-optimize gipalihok sa dihang nagpili sa lebel sa 3 nga pag-optimize (-03). 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.

Pag-andar sa librarya Ang code alang sa kadaghanan sa mga standard nga C library function gikan na karon sa Microchip's Unified Standard Library, nga mahimong magpakita ug lain-laing kinaiya sa pipila ka mga kahimtang kumpara sa gihatag sa kanhi avr-libc library. Kay exampBusa, dili na kinahanglan nga mag-link sa lprintf_flt library (-print _flt option) aron ma-on ang gi-format nga suporta sa IO alang sa float-format specifiers. Ang intelihente nga mga bahin sa IO sa Microchip Unified Standard Library naghimo niini nga kapilian 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 flash 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.20

Giusab ang layout sa DFP Ang compiler karon nagbaton ug lahi 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 nga mga butang sa memorya sa programa Timan-i nga ang default, const-qualfied nga mga butang ibutang ug ma-access sa memorya sa programa (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 -mnoconst- da ta-in-progmem nga kapilian.

Bersyon 2.00

Mga piyus sa pag-configure Ang mga fuse sa configuration sa device mahimo na nga maprograma gamit ang config pragma nga gisundan sa mga set-value pairs aron matino ang fuse state, pananglitan.
#pragma config WDT0N = SET
#pragma config B0DLEVEL = B0DLEVEL_4V3
Hingpit nga mga butang ug mga gimbuhaton Ang mga butang ug mga gimbuhaton mahimo nang ibutang sa piho nga adres sa memorya gamit ang CCI _at (address) specifier, alang sa example: #apil int foobar sa(Ox800100); char at(Ox250) get ID(int offset) {… } Ang argumento niini nga specifier kinahanglang usa ka constant nga nagrepresentar sa adres diin ang unang byte o instruksiyon 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.
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 specifier nagkuha usa ka interrupt nga numero, pananglitanample: #apil walay sulod nga interrupt(SPI STC_ vect _num) spi Isr(walay sulod) { … }

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 subheadings nagpakita sa unang bersyon sa compiler nga adunay mga pag-ayo alang sa mga isyu nga nagsunod. Ang gi-bracket nga (mga) 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.40

Kalmado kaayo (XCS-2876) Kung gigamit ang -mrelax nga kapilian, ang compiler wala mag-alokar 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.
Ang feature sa pagmapa wala gi-disable sama sa gipahayag sa pasidaan (XCS-2875) Ang cost-data-in-config mappedprogmem feature nagsalig sa cost-data-in-proem feature nga gipagana. Kung ang bahin sa cost-data-ipconfig-mapped-proem klaro nga gipaandar gamit ang kapilian ug ang bahin sa cost-data-inprogmem na-disable, ang lakang sa link napakyas, bisan pa sa usa ka mensahe sa pasidaan nga nag-ingon nga ang mga cons data- in-config-mapped- Ang bahin sa proem awtomatik nga na-disable, nga dili hingpit nga husto. Ang const-data-in-config-mapped-proem nga bahin karon bug-os nga gipugngan niini nga sitwasyon.
Gibag-o sa DFP aron ma-access sa husto ang NVMCTRL (XCS-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 sa const-data-in configmapped-proem compiler bahin. 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 mga pagbag-o sa DFP aron malikayan ang flash mapping (XCS-2847) Ang usa ka work-around alang sa problema sa flash mapping device feature nga gitaho sa AVR128DA28/32/48/64 Silicon Errata (DS80000882) gipatuman. Ang const-data-in-config-mapped-proem compiler feature dili i-apply sa default para sa mga apektadong device, ug kini nga kausaban makita sa AVR-Ex_DFP version 2.2.160.
Paghimo sayop sa sinhf o coshf (XCS-2834) Ang mga pagsulay sa paggamit sa sinhf () o coshf () nga mga gimbuhaton sa librarya miresulta sa usa ka sayup sa link, nga naghulagway sa usa ka wala matino nga pakisayran. Ang nawala nga function nga gitumong gilakip na karon sa pag-apod-apod sa compiler.
Paghimo og mga sayop gamit ang nopa (XCS-2833) Ang paggamit sa hiyas sa nopa nga adunay usa ka function nga adunay gitakda nga ngalan sa assembler gamit ang () nag-trigger sa mga mensahe sa sayup gikan sa assembler. Kini nga kombinasyon dili mahimo.
Variadic function failure uban sa pointer arguments (XCS-2755, XCS-2731) Ang mga gimbuhaton nga adunay lainlain nga gidaghanon sa mga argumento nagpaabut sa 24-bit (_memo type) nga mga pointer nga ipasa sa variable nga lista sa argumento kung ang bahin sa cost-data-in-proem gipagana. 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. Sa diha nga ang cons data-in-proem nga bahin gipagana, ang tanan nga 16-bit pointers argumento karon nakabig ngadto sa 24-bit pointers. strtoxxx library functions failing (XCS-2620) Sa dihang ang const-data-in-proem nga feature gi-enable, ang enter parameter sa strtoxxx library functions wala gi-update sa hustong paagi para sa source string arguments nga wala sa memorya sa programa.
Mga alerto alang sa dili balido nga mga cast (XCS-2612) Ang compiler karon mag-isyu og usa ka sayup kung ang cost-in-proem nga feature ma-enable ug ang address sa usa ka string literal nga klarong ihulog ngadto sa data address space (paghulog sa const qualifier), alang sa 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 (XCS-2408) Ang wala'y una nga const ug const v olatile nga mga butang 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 (XCS-2774) Ang ginagmay nga mga kausaban sa default Free mode optimizations nakapugong sa kanunay nga pagpilo sa mga operand nga mga ekspresyon ngadto sa pagkalangan sa built-in nga mga function, nga miresulta sa ilang pagtagad ingon nga dili kontak ug nagpahinabo sa sayop: _buil tin avr delay_ cycles expects ac ompile kanunay nga integer sa oras.

Bersyon 2.35

Nagkadugtong nga alokasyon gamit ang _at (XCS-2653) Ang nagkadugtong nga alokasyon sa daghang mga butang nga mga lugar sa usa ka seksyon nga adunay parehas nga ngalan ug paggamit sa () wala molihok sa husto. Kay example: constchararrl [ ] ug tri butte ((sect on(“.misses”))) sa (Ox50 0 ) = {Oxo , Ox CD} ; gasto char arr2 [ ] ug tri butte ((seksyon(“.my s eke”))) = {Oxen, Ox FE }; dapat gibutang dayon ang arr2 pagkahuman sa aril.
Pagtino sa mga adres sa pagsugod sa seksyon (XCS-2650) Ang -Wal, -section-start nga opsyon hilom nga napakyas sa pagbutang sa mga seksyon sa nominado nga adres sa pagsugod. Kini nga isyu naayo na para sa bisan unsang custom-ngalan nga mga seksyon; bisan pa niana, dili kini magamit sa bisan unsang standard nga mga seksyon, sama sa . text o . bss, nga kinahanglan ibutang gamit ang -Wl, -T nga kapilian.
Ang linker nahagsa kon nagpahayahay (XCS-2647) Sa diha nga ang -relax optimization nahimo 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.
Dili maayo nga EEPROM access (XCS-2629) Ang leproma _read_ block nga rutina wala molihok sa husto sa Mega device sa dihang ang -monist-data-in-proem nga opsyon gipagana (nga mao ang default nga estado), nga miresulta sa EEPROM nga memorya nga wala mabasa sa husto.
Dili balido nga alokasyon sa memorya (XCS-2593, XCS-2651) Kung ang -Text o -Tata linker nga kapilian (alang sa exampAng gipasa gamit ang usa ka -Wl driver nga kapilian) gitakda, 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.
Dili balido nga ATtiny interrupt code (XCS-2465) Kung ang pagtukod alang sa mga aparato sa Tatin ug ang mga pag-optimize na-disable (-00), ang mga pag-andar sa paghunong mahimo’g nag-trigger sa operand gikan sa mga mensahe sa assembler.
Mga opsyon nga dili mapasa (XCS-2452) Kung gigamit ang -Wl nga kapilian nga adunay daghang mga kapilian nga linker nga gibulag sa koma, dili tanan nga kapilian sa linker gipasa sa linker.
Sayop sa dili direkta nga pagbasa sa memorya sa programa (XCS-2450) Sa pipila ka mga higayon, ang compiler naghimo sa usa ka internal nga sayup (dili mailhan nga insn) kung nagbasa sa usa ka duha ka byte nga kantidad gikan sa usa ka pointer hangtod sa memorya sa programa.

Bersyon 2.32

Ang ikaduhang pag-access sa librarya napakyas (XCS-2381) Pagtawag sa Windows nga bersyon sa xc8-ar. exe library archiver sa ikaduha nga higayon sa pag-access sa usa ka kasamtangan nga librarya archive mahimong napakyas sa usa ka dili makahimo sa pag-usab sa ngalan sa sayop nga mensahe.

Bersyon 2.31

Wala mahibal-an nga mga kapakyasan sa compiler (XCS-2367) Kung nagdagan sa mga platform 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 mga global nga label nasaypan human sa outlining (XCS-2299) Ang sinulat sa kamot nga kodigo sa asembliya nga nagbutang sa mga global nga label sulod sa mga han-ay sa asembliya nga gi-factor sa pamaagi nga abstraction mahimong dili hustong na-reposition.
Usa ka makapahayahay nga pagkahagsa (XCS-2287) Ang paggamit sa -merlad 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.
Pag-crash kung gi-optimize ang mga label ingon mga kantidad (XCS-2282) Ang code gamit ang "Labels as values" nga extension sa GNU C nga lengguwahe mahimong hinungdan nga ang pamaagi sa abstraction optimizations nahagsa, nga adunay Outlined VMA range span fixup error.
Dili kaayo const (XCS-2271) Ang mga prototype para sa pagsugod () ug uban pang mga gimbuhaton gikan sa dili na ipiho ang non-standard cost qualifier sa gibalik nga mga string pointer kung ang -monist-data inprogmem feature gi-disable. Timan-i nga sa avrxmega3 ug avertin nga mga himan, kini nga bahin permanente nga gipagana.
Nawala nga mga inisyal (XCS-2269) Kung labaw pa sa usa ka variable sa usa ka yunit sa paghubad ang gibutang sa usa ka seksyon (gamit ang seksyon o attribute ((seksyon))), ug ang una sa ingon nga variable mao ang zero nga na-initialize o wala adunay usa ka initializer, ang mga inisyal alang sa ubang mga variable sa parehas nga yunit sa paghubad nga gibutang sa samang seksyon nawala.

Bersyon 2.29 (Functional Safety Release)

Wala.

Bersyon 2.20

Sayop sa taas nga mga sugo (XCS-1983) Kung mogamit usa ka target sa AVR, ang compiler mahimong mihunong sa usa ka file 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 matudlo nga seksyon sa rodata (XCS-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 pagbalhin (XCS-1891) Ang labing angay nga tigtagana mao ang pagbilin ug 'mga lungag' sa panumduman taliwala sa mga seksyon pagkahuman sa pag-relaks 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.
Mga instruksiyon nga wala mausab pinaagi sa pagpahayahay (XCS-1889) Ang pagpahuway sa linker wala mahitabo alang sa paglukso o pagtawag sa mga instruksyon kansang mga target mahimong makab-ot kung relaks.
Nawala gamit (XCSE-388) Pipila ka 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 ang mga macro Ang preprocessor macros_ xcs _MODE_, _xcs VERSION, _xc, ug xcs dili awtomatik nga gihubit sa compiler. Kini anaa na karon.

Bersyon 2.05

Sayop sa internal compiler (XCS-1822) Kung nagtukod sa ilawom sa Windows, usa ka sayup sa internal nga compiler mahimo’g nahimo kung gi-optimize ang code.
Wala makit-an ang pag-awas sa RAM (XCS-1800, XCS-1796) Ang mga programa nga milapas sa anaa nga RAM wala mamatikdi sa compiler sa pipila ka mga sitwasyon, nga miresulta sa usa ka runtime code failure.
Giwala ang flash memory (XCS-1792) Alang sa avrxmega3 ug avrtiny nga mga himan, ang mga bahin sa flash memory mahimong wala maprograma sa MPLAB X IDE.
Pagkapakyas sa pagpatuman sa panguna (XCS-1788) Sa pipila ka mga sitwasyon diin ang programa walay global variables nga gihubit, ang runtime startup code wala mogawas ug ang main () function wala gayud maabot.
Sayop nga impormasyon sa memorya (XCS-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 pagbasa sa memorya sa programa (XCS-1783) Ang mga proyekto nga gihugpong para sa mga device 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 sayop nga adunay mga hiyas (XCS-1773) Usa ka internal nga sayup ang nahitabo kung imong gihubit ang mga butang sa pointer gamit ang
_at () o attribute() token sa taliwala sa pointer name ug dereferenced type, alang sa example, char *
_sa ( 0x80015 0) cp; Usa ka pahimangno ang gi-isyu karon kung ang ingon nga code nasugatan.
Pagkapakyas sa pagpatuman sa panguna (XCS-1780, XCS-1767, XCS-1754) Ang paggamit sa mga variable sa EEPROM o pagtino sa mga piyus gamit ang config pragma mahimong hinungdan sa dili husto nga pag-initialize sa datos ug/o pag-lock sa pagpatuman sa programa sa runtime startup code, sa wala pa maabot ang main ().
Sayop sa fuse sa gagmay nga mga himan (XCS-1778, XCS-1742) Ang attiny4/5/9/10/20/40 nga mga himan adunay sayop nga gitas-on sa fuse nga gipiho sa ilang ulohan files nga modala ngadto sa linker mga sayop sa diha nga misulay sa pagtukod sa code nga gihubit piyus.
Segmentation nga sayup (XCS-1777) Gitul-id ang usa ka intermittent segmentation fault.
Assembler nahagsa (XCS-1761) Ang avr-as assembler tingali nahagsa sa dihang ang compiler gipadagan ubos sa Ubuntu 18.
Wala ma-clear ang mga butang (XCS-1752) Ang wala ma-initialized nga static nga gidugayon sa pagtipig nga mga butang mahimo nga wala ma-clear sa runtime startup code.
Ang nagkasumpaki nga detalye sa aparato gibaliwala (XCS-1749) Ang compiler wala makamugna og sayop sa dihang gigamit ang daghang mga opsyon sa espesipikasyon sa device ug nagpakita sa lain-laing mga device.
Pagkadaot sa memorya pinaagi sa tapok (XCS-1748) Ang heap_ start nga simbolo sayop nga gibutang, nga miresulta sa posibilidad sa ordinaryo nga mga variable nga madaot sa heap.
Sayop sa pagbalhin sa linker (XCS-1739) Ang usa ka linker relokasyon nga sayup mahimo nga gipagawas kung ang code adunay usa ka rjmp o rcall nga adunay target nga eksakto nga 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 kinatibuk-ang pagdili sa coding, o
mga pagtipas gikan sa impormasyon nga anaa sa manwal sa user. Ang gi-bracket nga (mga) 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 label mga limitasyon nga naghulagway sa mode operandi ug nga lagmit magpabilin sa epekto sa permanente.

Paghiusa sa MPLAB X IDE

Paghiusa sa MPLAB IDE Kung ang Compiler gamiton gikan sa MPLAB IDE, nan kinahanglan nimo nga i-install ang MPLAB IDE sa wala pa i-install ang Compiler.

Pagmugna sa Kodigo

PA memory allocation failure (XCS-2881) Kung gigamit ang mga pamaagi sa abstraction optimizer, 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 nga wanang.
Dili kaayo maalamon Smart-IO (XCS-2872) Ang feature sa smart-io sa compiler makamugna og balido apan sub optimal nga code para sa sprint function kung ang coast-data-in-proem feature na-disable o kung ang device adunay tanan nga flash nga na-map sa data memory.
Bisan dili kaayo maalamon nga Smart-IO (XCS-2869) Ang feature sa smart-io sa compiler makamugna og balido apan suboptimal nga code kung ang -floe ug -fno-buil nga mga opsyon sa lata pareho nga gigamit.
Suboptimal read-only data placement (XCS-2849) Ang linker sa pagkakaron wala mahibalo sa APPCODE ug APPDATA nga mga seksyon sa memorya, ni sa [Wala-]Read-While-Write nga mga dibisyon 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 misplaced data modako kon ang coast-data-in-pragma feature ma-enable, ilabi na kung ang coast-data-in-config-mapped-proem feature gi-enable usab. Kini nga mga bahin mahimong ma-disable kung gikinahanglan.
butang file order sa pagproseso (XCS-2863) Ang han-ay sa mga butang files iproseso sa linker mahimong magkalahi base sa paggamit sa pamaagi sa abstraction optimizations (-mpa opsyon). Kini makaapekto lamang sa code nga naghubit sa huyang nga mga gimbuhaton sa daghang mga module.
Kasaypanan sa linker nga adunay hingpit (XCS-2777) Kung ang usa ka butang gihimo nga hingpit sa usa ka adres sa pagsugod sa RAM ug ang mga butang nga wala nahibal-an usab gihubit, ang usa ka sayup sa linker mahimong ma-trigger.
Mubo nga wake-up ID (XCS-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 sa dihang nagtawag sa simbolo (XCS-2758) Ang linker mahimong ma-crash kung ang -merlad driver nga kapilian gigamit kung ang source code nagtawag sa usa ka simbolo nga gihubit gamit ang -Wl, -defsym linker nga kapilian.
Sayop nga pagsugod (XCS-2679) Adunay usa ka kalainan tali kung diin ang mga inisyal nga kantidad alang sa pipila nga mga butang nga adunay kadak-an nga global/static nga byte gibutang sa memorya sa datos ug kung diin ang mga variable ma-access sa oras sa pagdagan.
nagsugod sayop nga gibutang nga walay sulod (XCS-2652) Sa mga higayon diin ang usa ka hugpong sa hilisgutan alang sa pagkakabig pinaagi sa gipahayag nga () adunay kung unsa ang makita nga usa ka floating-point nga numero sa exponential format ug adunay usa ka wala damha nga karakter pagkahuman sa usa ka e nga karakter, unya ang walay sulod nga adres, kung gihatag, magtudlo sa karakter pagkahuman. ang e ug dili ang e mismo. Kay example: gipahayag("hooey", walay sulod); moresulta sa walay sulod nga pagtudlo sa x nga karakter.
Dili maayo nga dili direkta nga mga tawag sa function (XCS-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 mibalik og zero para sa hexadecimal floats (XCS-2626) Ang library functions strtof () et al ug scanf () et al, kanunay mag-convert sa usa ka hexadecimal floating-point nga numero nga wala magtino sa exponent ngadto sa
sero. Kay example: stator("Owl", &walay sulod); ibalik ang kantidad nga 0, dili 1.
Dili tukma nga stack advisor messaging (XCS-2542, XCS-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.
Pagkapakyas sa duplicate nga interrupt code (XCS-2421) Diin labaw pa sa usa ka interrupt function adunay parehas nga lawas, ang compiler mahimong adunay output alang sa usa ka interrupt function nga tawagan ang 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.
Const nga mga butang wala sa memorya sa programa (XCS-2408) Alang sa mga proyekto sa avrxmega3 ug avertins nga wala'y ideya nga mga butang nga const gibutang sa panumduman sa datos, bisan kung ang usa ka pasidaan nagsugyot nga kini gibutang sa memorya sa programa. Dili kini makaapekto sa mga himan nga walay memorya sa programa nga gimapa ngadto sa luna sa memorya sa datos, ni makaapekto sa bisan unsang butang nga gisugdan.
Dili maayo nga output nga adunay dili balido nga agianan sa DFP (XCS-2376) Kung ang compiler gigamit nga adunay dili balido nga agianan sa DFP ug usa ka 'spec' file anaa alang sa pinili nga device, ang compiler wala magreport sa nawala nga device nga family pack ug hinoon gipili ang 'spec' file, nga mahimong mosangpot sa dili balido nga output. Ang 'spec' files mahimong dili pinakabag-o sa gipang-apod-apod nga mga DFP ug gituyo alang sa paggamit sa internal nga compiler testing lamang.
Ang memory overlap wala mamatikdi (XCS-1966) Ang compiler wala makamatikod sa memory overlap sa mga butang nga gihimong hingpit sa usa ka adres (pinaagi sa ()) ug uban pang mga butang gamit ang seksyon () specifier ug nga nalambigit sa samang adres.
Pagkapakyas sa mga gimbuhaton sa librarya ug _meme (XCS-1763) Ang gitawag nga limbic float function nga adunay argumento sa _memo 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;
Limbic nga pagpatuman (AVRTC-731) Alang sa ATTiny4/5/9/10/20/40 nga mga produkto, ang standard nga C / Math library nga pagpatuman sa limbic limitado kaayo o wala.
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 -relax.
Mga limitasyon sa wanang sa ngalan (AVRTC-733) Ang gihinganlan nga mga luna sa adres gisuportahan sa toolchain, ubos sa mga limitasyon nga gihisgotan 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 lokal nga oras () mobalik sa parehas nga oras sa gummite (), alang sa example.

SUPORTA SA KUSTOMER

file:///Applications/microehip/xc8/v 2 .40/docs/Read me_X C 8_ para sa A VR. htm

Mga Dokumento / Mga Kapanguhaan

MICROCHIP MPLAB XC8 C Compiler Software [pdf] Manwal sa Tag-iya
MPLAB XC8 C, MPLAB XC8 C Compiler Software, Compiler Software, Software

Mga pakisayran

Pagbilin ug komento

Ang imong email address dili mamantala. Ang gikinahanglan nga mga natad gimarkahan *